Salome HOME
PR : merge branch V1_2c dans branche principale pour V1_3_0_b1
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_AttributeTreeNode_i.cxx
1 //  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
5 // 
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. 
10 // 
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. 
15 // 
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 
19 // 
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : SALOMEDS_AttributeTreeNode_i.cxx
25 //  Author : Yves FRICAUD
26 //  Module : SALOME
27 //  $Header: 
28
29 using namespace std;
30 #include "SALOMEDS_AttributeTreeNode_i.hxx"
31 #include "SALOMEDS_SObject_i.hxx"
32 #include "utilities.h"
33
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());
38   TDF_Label aLabel;
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")
43     return aResult;
44   }
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")
48   }
49   return aResult;
50 }
51
52 void SALOMEDS_AttributeTreeNode_i::SetFather(SALOMEDS::AttributeTreeNode_ptr value) {
53   CheckLocked();
54   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
55   aNode->SetFather(GetNode(value, aNode));
56 }
57
58 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFather() {
59   return Handle(TDataStd_TreeNode)::DownCast(_myAttr)->HasFather();
60 }
61
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();
65 }
66
67 void SALOMEDS_AttributeTreeNode_i::SetPrevious(SALOMEDS::AttributeTreeNode_ptr value) {
68   CheckLocked();
69   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
70   aNode->SetPrevious(GetNode(value, aNode));
71 }
72
73 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasPrevious() {
74   return Handle(TDataStd_TreeNode)::DownCast(_myAttr)->HasPrevious();
75 }
76
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();
80 }
81
82 void SALOMEDS_AttributeTreeNode_i::SetNext(SALOMEDS::AttributeTreeNode_ptr value) {
83   CheckLocked();
84   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
85   aNode->SetNext(GetNode(value, aNode));
86 }
87
88 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasNext() {
89   return Handle(TDataStd_TreeNode)::DownCast(_myAttr)->HasNext();
90 }
91
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();
95 }
96
97 void SALOMEDS_AttributeTreeNode_i::SetFirst(SALOMEDS::AttributeTreeNode_ptr value) {
98   CheckLocked();
99   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
100   aNode->SetFirst(GetNode(value, aNode));
101 }
102
103 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFirst() {
104   return Handle(TDataStd_TreeNode)::DownCast(_myAttr)->HasFirst();
105 }
106
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();
110 }
111
112 void SALOMEDS_AttributeTreeNode_i::SetTreeID(const char* value) {
113   CheckLocked();
114   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
115   aNode->SetTreeID(Standard_GUID(aNode->ID()));
116 }
117
118 char* SALOMEDS_AttributeTreeNode_i::GetTreeID() {
119   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
120   char aGUID[40];
121   aNode->ID().ToCString(aGUID);
122   return CORBA::String_var(CORBA::string_dup(aGUID))._retn();
123 }
124
125 void SALOMEDS_AttributeTreeNode_i::Append(SALOMEDS::AttributeTreeNode_ptr value) {
126   CheckLocked();
127   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
128   aNode->Append(GetNode(value, aNode));
129 }
130
131 void SALOMEDS_AttributeTreeNode_i::Prepend(SALOMEDS::AttributeTreeNode_ptr value) {
132   CheckLocked();
133   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
134   aNode->Prepend(GetNode(value, aNode));
135 }
136
137 void SALOMEDS_AttributeTreeNode_i::InsertBefore(SALOMEDS::AttributeTreeNode_ptr value) {
138   CheckLocked();
139   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
140   aNode->InsertBefore(GetNode(value, aNode));
141 }
142
143 void SALOMEDS_AttributeTreeNode_i::InsertAfter(SALOMEDS::AttributeTreeNode_ptr value) {
144   CheckLocked();
145   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
146   aNode->InsertAfter(GetNode(value, aNode));
147 }
148
149 void SALOMEDS_AttributeTreeNode_i::Remove() {
150   CheckLocked();
151   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
152   aNode->Remove();
153 }
154
155 CORBA::Long SALOMEDS_AttributeTreeNode_i::Depth() {
156   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
157   return aNode->Depth();
158 }
159
160 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsRoot() {
161   Handle(TDataStd_TreeNode) aNode = Handle(TDataStd_TreeNode)::DownCast(_myAttr);
162   return aNode->IsRoot();
163 }
164
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));
168 }
169
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));
173 }
174
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));
178 }
179
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();
184 }