1 // File : SALOMEDSImpl_AttributeTreeNode.hxx
2 // Author : Sergey RUIN
5 #ifndef _SALOMEDSImpl_AttributeTreeNode_HeaderFile
6 #define _SALOMEDSImpl_AttributeTreeNode_HeaderFile
8 #include <Standard_DefineHandle.hxx>
9 #include <TDF_Attribute.hxx>
10 #include <Standard_GUID.hxx>
11 #include <TDF_Label.hxx>
12 #include <TDF_AttributeDelta.hxx>
13 #include <TCollection_AsciiString.hxx>
14 #include "SALOMEDSImpl_GenericAttribute.hxx"
16 class Handle_TDF_DataSet;
17 class Handle(TDF_Attribute);
18 class Handle(TDF_RelocationTable);
19 class SALOMEDSImpl_ChildNodeIterator;
21 DEFINE_STANDARD_HANDLE( SALOMEDSImpl_AttributeTreeNode, SALOMEDSImpl_GenericAttribute )
23 class SALOMEDSImpl_AttributeTreeNode : public SALOMEDSImpl_GenericAttribute
27 Standard_EXPORT const static Standard_GUID& GetDefaultTreeID();
28 Standard_EXPORT static Handle_SALOMEDSImpl_AttributeTreeNode Set(const TDF_Label& L, const Standard_GUID& ID);
30 Standard_EXPORT SALOMEDSImpl_AttributeTreeNode();
31 Standard_EXPORT void SetFather(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
32 Standard_EXPORT void SetPrevious(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
33 Standard_EXPORT void SetNext(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
34 Standard_EXPORT void SetFirst(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
35 Standard_EXPORT void SetTreeID(const Standard_GUID& value);
37 Standard_EXPORT Standard_Boolean Append(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
38 Standard_EXPORT Standard_Boolean Prepend(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
39 Standard_EXPORT Standard_Boolean Remove();
40 Standard_EXPORT Standard_Boolean InsertBefore(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
41 Standard_EXPORT Standard_Boolean InsertAfter(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
43 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) GetFather() { return myFather; }
44 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) GetPrevious() { return myPrevious; }
45 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) GetNext() { return myNext; }
46 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) GetFirst() { return myFirst; }
48 Standard_EXPORT Standard_Boolean HasFather() { return (!myFather.IsNull()); }
49 Standard_EXPORT Standard_Boolean HasPrevious() { return (!myPrevious.IsNull()); }
50 Standard_EXPORT Standard_Boolean HasNext() {return (!myNext.IsNull()); }
51 Standard_EXPORT Standard_Boolean HasFirst() { return (!myFirst.IsNull()); }
52 Standard_EXPORT const Standard_GUID& GetTreeID() { return ID(); }
53 Standard_EXPORT Standard_Integer Depth() const;
54 Standard_EXPORT Standard_Boolean IsRoot() const ;
55 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) Root() const;
56 Standard_EXPORT Standard_Boolean IsAscendant (const Handle(SALOMEDSImpl_AttributeTreeNode)& ofTN) const;
57 Standard_EXPORT Standard_Boolean IsDescendant(const Handle(SALOMEDSImpl_AttributeTreeNode)& value) const;
58 Standard_EXPORT Standard_Boolean IsFather(const Handle(SALOMEDSImpl_AttributeTreeNode)& value) const;
59 Standard_EXPORT Standard_Boolean IsChild(const Handle(SALOMEDSImpl_AttributeTreeNode)& value) const;
61 Standard_EXPORT virtual TCollection_AsciiString Save();
62 Standard_EXPORT virtual void Load(const TCollection_AsciiString&);
63 Standard_EXPORT virtual TCollection_AsciiString Type();
65 Standard_EXPORT virtual void AfterAddition() ;
66 Standard_EXPORT virtual void BeforeForget() ;
67 Standard_EXPORT virtual void AfterResume() ;
68 Standard_EXPORT virtual Standard_Boolean BeforeUndo(const Handle(TDF_AttributeDelta)& anAttDelta,
69 const Standard_Boolean forceIt = Standard_False) ;
70 Standard_EXPORT virtual Standard_Boolean AfterUndo(const Handle(TDF_AttributeDelta)& anAttDelta,
71 const Standard_Boolean forceIt = Standard_False) ;
72 Standard_EXPORT const Standard_GUID& ID() const;
73 Standard_EXPORT void Restore(const Handle(TDF_Attribute)& with) ;
74 Standard_EXPORT void Paste(const Handle(TDF_Attribute)& into,const Handle(TDF_RelocationTable)& RT) const;
75 Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const;
76 Standard_EXPORT void References(const Handle(TDF_DataSet)& aDataSet) const;
77 Standard_EXPORT ~SALOMEDSImpl_AttributeTreeNode() {}
80 DEFINE_STANDARD_RTTI( SALOMEDSImpl_AttributeTreeNode )
84 Standard_GUID myTreeID;
85 Handle(SALOMEDSImpl_AttributeTreeNode) myFather;
86 Handle(SALOMEDSImpl_AttributeTreeNode) myPrevious;
87 Handle(SALOMEDSImpl_AttributeTreeNode) myNext;
88 Handle(SALOMEDSImpl_AttributeTreeNode) myFirst;
90 friend class SALOMEDSImpl_ChildNodeIterator;