Salome HOME
ENV: Windows porting.
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_AttributeTreeNode_i.cxx
1 //  File   : SALOMEDS_AttributeTreeNode_i.cxx
2 //  Author : Sergey RUIN
3 //  Module : SALOME
4
5
6 #include "SALOMEDS_AttributeTreeNode_i.hxx"
7 #include "utilities.h"
8 #include "SALOMEDS.hxx"
9 #include <TDocStd_Document.hxx>
10 #include <TDF_Attribute.hxx>
11 #include <TDF_Tool.hxx>
12 #include <TDF_Data.hxx>
13
14 using namespace std;
15
16 static Handle(SALOMEDSImpl_AttributeTreeNode) GetNode(SALOMEDS::AttributeTreeNode_ptr value,
17                                                       const Handle(SALOMEDSImpl_AttributeTreeNode)& aNode) 
18 {
19   Handle(SALOMEDSImpl_AttributeTreeNode) aResult = new SALOMEDSImpl_AttributeTreeNode;
20   TCollection_AsciiString anEntry = value->Label();
21   TDF_Label aLabel;
22   TDF_Tool::Label(aNode->Label().Data(), anEntry, aLabel);
23   if (aLabel.IsNull()) {
24     MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such label")
25     MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such label")
26     return aResult;
27   }
28   if (!aLabel.FindAttribute(aNode->ID(), aResult)) {
29     MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such attribute")
30     MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such attribute")
31   }
32   return aResult;
33 }
34
35 void SALOMEDS_AttributeTreeNode_i::SetFather(SALOMEDS::AttributeTreeNode_ptr value) 
36 {
37   SALOMEDS::Locker lock;
38   CheckLocked();
39   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
40   aNode->SetFather(GetNode(value, aNode));
41 }
42
43 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFather() 
44 {
45   SALOMEDS::Locker lock;
46   return Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl)->HasFather();
47 }
48
49 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFather() 
50 {
51   SALOMEDS::Locker lock;
52   SALOMEDS_AttributeTreeNode_i* aFather;
53   aFather = new SALOMEDS_AttributeTreeNode_i(Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl)->GetFather(), _orb);
54 #ifndef WNT
55   return aFather->POA_SALOMEDS::AttributeTreeNode::_this();
56 #else
57   return aFather->AttributeTreeNode::_this();
58 #endif
59 }
60
61 void SALOMEDS_AttributeTreeNode_i::SetPrevious(SALOMEDS::AttributeTreeNode_ptr value) 
62 {
63   SALOMEDS::Locker lock;
64   CheckLocked();
65   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
66   aNode->SetPrevious(GetNode(value, aNode));
67 }
68
69 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasPrevious() 
70 {
71   SALOMEDS::Locker lock;
72   return Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl)->HasPrevious();
73 }
74
75 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetPrevious() 
76 {
77   SALOMEDS::Locker lock;
78   SALOMEDS_AttributeTreeNode_i* aPrevious;
79   aPrevious=new SALOMEDS_AttributeTreeNode_i(Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl)->GetPrevious(), _orb);
80 #ifndef WNT
81   return aPrevious->POA_SALOMEDS::AttributeTreeNode::_this();
82 #else
83   return aPrevious->AttributeTreeNode::_this();
84 #endif
85 }
86
87 void SALOMEDS_AttributeTreeNode_i::SetNext(SALOMEDS::AttributeTreeNode_ptr value) 
88 {
89   SALOMEDS::Locker lock;
90   CheckLocked();
91   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
92   aNode->SetNext(GetNode(value, aNode));
93 }
94
95 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasNext() 
96 {
97   SALOMEDS::Locker lock;
98   return Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl)->HasNext();
99 }
100
101 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetNext() 
102 {
103   SALOMEDS::Locker lock;
104   SALOMEDS_AttributeTreeNode_i* aNext;
105   aNext = new SALOMEDS_AttributeTreeNode_i(Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl)->GetNext(), _orb);
106 #ifndef WNT
107   return aNext->POA_SALOMEDS::AttributeTreeNode::_this();
108 #else
109   return aNext->AttributeTreeNode::_this();
110 #endif
111 }
112
113 void SALOMEDS_AttributeTreeNode_i::SetFirst(SALOMEDS::AttributeTreeNode_ptr value) 
114 {
115   SALOMEDS::Locker lock;
116   CheckLocked();
117   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
118   aNode->SetFirst(GetNode(value, aNode));
119 }
120
121 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFirst() 
122 {
123   SALOMEDS::Locker lock;
124   return Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl)->HasFirst();
125 }
126
127 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFirst() 
128 {
129   SALOMEDS::Locker lock;
130   SALOMEDS_AttributeTreeNode_i* aFirst;
131   aFirst = new SALOMEDS_AttributeTreeNode_i(Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl)->GetFirst(), _orb);
132 #ifndef WNT
133   return aFirst->POA_SALOMEDS::AttributeTreeNode::_this();
134 #else
135   return aFirst->AttributeTreeNode::_this();
136 #endif
137 }
138
139 void SALOMEDS_AttributeTreeNode_i::SetTreeID(const char* value) 
140 {
141   SALOMEDS::Locker lock;
142   CheckLocked();
143   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
144   aNode->SetTreeID(Standard_GUID(aNode->ID()));
145 }
146
147 char* SALOMEDS_AttributeTreeNode_i::GetTreeID() 
148 {
149   SALOMEDS::Locker lock;
150   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
151   char aGUID[40];
152   aNode->ID().ToCString(aGUID);
153   return CORBA::String_var(CORBA::string_dup(aGUID))._retn();
154 }
155
156 void SALOMEDS_AttributeTreeNode_i::Append(SALOMEDS::AttributeTreeNode_ptr value) 
157 {
158   SALOMEDS::Locker lock;
159   CheckLocked();
160   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
161   aNode->Append(GetNode(value, aNode));
162 }
163
164 void SALOMEDS_AttributeTreeNode_i::Prepend(SALOMEDS::AttributeTreeNode_ptr value) 
165 {
166   SALOMEDS::Locker lock;
167   CheckLocked();
168   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
169   aNode->Prepend(GetNode(value, aNode));
170 }
171
172 void SALOMEDS_AttributeTreeNode_i::InsertBefore(SALOMEDS::AttributeTreeNode_ptr value) 
173 {
174   SALOMEDS::Locker lock;
175   CheckLocked();
176   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
177   aNode->InsertBefore(GetNode(value, aNode));
178 }
179
180 void SALOMEDS_AttributeTreeNode_i::InsertAfter(SALOMEDS::AttributeTreeNode_ptr value) 
181 {
182   SALOMEDS::Locker lock;
183   CheckLocked();
184   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
185   aNode->InsertAfter(GetNode(value, aNode));
186 }
187
188 void SALOMEDS_AttributeTreeNode_i::Remove() 
189 {
190   SALOMEDS::Locker lock;
191   CheckLocked();
192   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
193   aNode->Remove();
194 }
195
196 CORBA::Long SALOMEDS_AttributeTreeNode_i::Depth() 
197 {
198   SALOMEDS::Locker lock;
199   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
200   return aNode->Depth();
201 }
202
203 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsRoot() 
204 {
205   SALOMEDS::Locker lock;
206   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
207   return aNode->IsRoot();
208 }
209
210 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsDescendant(SALOMEDS::AttributeTreeNode_ptr value) 
211 {
212   SALOMEDS::Locker lock;
213   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
214   return aNode->IsDescendant(GetNode(value, aNode));
215 }
216
217 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsFather(SALOMEDS::AttributeTreeNode_ptr value) 
218 {
219   SALOMEDS::Locker lock;
220   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
221   return aNode->IsFather(GetNode(value, aNode));
222 }
223
224 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsChild(SALOMEDS::AttributeTreeNode_ptr value) 
225 {
226   SALOMEDS::Locker lock;
227   Handle(SALOMEDSImpl_AttributeTreeNode) aNode = Handle(SALOMEDSImpl_AttributeTreeNode)::DownCast(_impl);
228   return aNode->IsChild(GetNode(value, aNode));
229 }
230
231 char* SALOMEDS_AttributeTreeNode_i::Label() 
232 {
233   SALOMEDS::Locker lock;
234   TCollection_AsciiString aLabelName;
235   TDF_Tool::Entry(_impl->Label(),aLabelName);
236   return CORBA::String_var(CORBA::string_dup(aLabelName.ToCString()))._retn();
237 }
238