1 // SALOME SALOMEDS : data structure of SALOME and sources of Salome data server
3 // Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License.
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 // See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
24 // File : SALOMEDS_AttributeTreeNode_i.cxx
25 // Author : Yves FRICAUD
29 #include "SALOMEDS_AttributeTreeNode_i.hxx"
30 #include "SALOMEDS_SObject_i.hxx"
31 #include "utilities.h"
34 static Handle(TDataStd_TreeNode) GetNode(SALOMEDS::AttributeTreeNode_ptr value,
35 const Handle(TDataStd_TreeNode)& aNode) {
36 Handle(TDataStd_TreeNode) aResult = new TDataStd_TreeNode;
37 CORBA::String_var aString = CORBA::string_dup(value->Label());
39 TDF_Tool::Label(aNode->Label().Data(), TCollection_AsciiString(aString), aLabel, 0);
40 if (aLabel.IsNull()) {
41 MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such label")
42 MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such label")
45 if (!aLabel.FindAttribute(aNode->ID(), aResult)) {
46 MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such attribute")
47 MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such attribute")
52 void SALOMEDS_AttributeTreeNode_i::SetFather(SALOMEDS::AttributeTreeNode_ptr value) {
54 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
55 aNode->SetFather(GetNode(value, aNode));
58 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFather() {
59 return Handle(TDataStd_TreeNode)::DownCast(_myAttr)->HasFather();
62 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFather() {
63 SALOMEDS_AttributeTreeNode_i* aFather = new SALOMEDS_AttributeTreeNode_i(Handle(TDataStd_TreeNode)::DownCast(_myAttr)->Father(), _myOrb);
64 return aFather->POA_SALOMEDS::AttributeTreeNode::_this();
67 void SALOMEDS_AttributeTreeNode_i::SetPrevious(SALOMEDS::AttributeTreeNode_ptr value) {
69 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
70 aNode->SetPrevious(GetNode(value, aNode));
73 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasPrevious() {
74 return Handle(TDataStd_TreeNode)::DownCast(_myAttr)->HasPrevious();
77 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetPrevious() {
78 SALOMEDS_AttributeTreeNode_i* aPrevious = new SALOMEDS_AttributeTreeNode_i(Handle(TDataStd_TreeNode)::DownCast(_myAttr)->Previous(), _myOrb);
79 return aPrevious->POA_SALOMEDS::AttributeTreeNode::_this();
82 void SALOMEDS_AttributeTreeNode_i::SetNext(SALOMEDS::AttributeTreeNode_ptr value) {
84 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
85 aNode->SetNext(GetNode(value, aNode));
88 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasNext() {
89 return Handle(TDataStd_TreeNode)::DownCast(_myAttr)->HasNext();
92 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetNext() {
93 SALOMEDS_AttributeTreeNode_i* aNext = new SALOMEDS_AttributeTreeNode_i(Handle(TDataStd_TreeNode)::DownCast(_myAttr)->Next(), _myOrb);
94 return aNext->POA_SALOMEDS::AttributeTreeNode::_this();
97 void SALOMEDS_AttributeTreeNode_i::SetFirst(SALOMEDS::AttributeTreeNode_ptr value) {
99 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
100 aNode->SetFirst(GetNode(value, aNode));
103 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFirst() {
104 return Handle(TDataStd_TreeNode)::DownCast(_myAttr)->HasFirst();
107 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFirst() {
108 SALOMEDS_AttributeTreeNode_i* aFirst = new SALOMEDS_AttributeTreeNode_i(Handle(TDataStd_TreeNode)::DownCast(_myAttr)->First(), _myOrb);
109 return aFirst->POA_SALOMEDS::AttributeTreeNode::_this();
112 void SALOMEDS_AttributeTreeNode_i::SetTreeID(const char* value) {
114 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
115 aNode->SetTreeID(Standard_GUID(aNode->ID()));
118 char* SALOMEDS_AttributeTreeNode_i::GetTreeID() {
119 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
121 aNode->ID().ToCString(aGUID);
122 return CORBA::String_var(CORBA::string_dup(aGUID))._retn();
125 void SALOMEDS_AttributeTreeNode_i::Append(SALOMEDS::AttributeTreeNode_ptr value) {
127 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
128 aNode->Append(GetNode(value, aNode));
131 void SALOMEDS_AttributeTreeNode_i::Prepend(SALOMEDS::AttributeTreeNode_ptr value) {
133 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
134 aNode->Prepend(GetNode(value, aNode));
137 void SALOMEDS_AttributeTreeNode_i::InsertBefore(SALOMEDS::AttributeTreeNode_ptr value) {
139 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
140 aNode->InsertBefore(GetNode(value, aNode));
143 void SALOMEDS_AttributeTreeNode_i::InsertAfter(SALOMEDS::AttributeTreeNode_ptr value) {
145 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
146 aNode->InsertAfter(GetNode(value, aNode));
149 void SALOMEDS_AttributeTreeNode_i::Remove() {
151 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
155 CORBA::Long SALOMEDS_AttributeTreeNode_i::Depth() {
156 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
157 return aNode->Depth();
160 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsRoot() {
161 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
162 return aNode->IsRoot();
165 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsDescendant(SALOMEDS::AttributeTreeNode_ptr value) {
166 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
167 return aNode->IsDescendant(GetNode(value, aNode));
170 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsFather(SALOMEDS::AttributeTreeNode_ptr value) {
171 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
172 return aNode->IsFather(GetNode(value, aNode));
175 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsChild(SALOMEDS::AttributeTreeNode_ptr value) {
176 Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
177 return aNode->IsChild(GetNode(value, aNode));
180 char* SALOMEDS_AttributeTreeNode_i::Label() {
181 TCollection_AsciiString aLabelName;
182 TDF_Tool::Entry(_myAttr->Label(),aLabelName);
183 return CORBA::String_var(CORBA::string_dup(aLabelName.ToCString()))._retn();