Version: 8.3.0
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
example18

AttributeTreeNode interface(creations/saving/restoring)
SALOMEDS methods : FindOrCreateAttribute, NewObject
Attribute methods : HasFirst, HasFather, SetPrevious, Next, InsertAfter, GetFather, HasNext, SetValue, Append, NewStudy, Label, IsRoot, Prepend, SetFather, Depth, HasPrevious

child1 = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child1,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N1")
N1 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child1, "AttributeTreeNode")
if N1 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child2 = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child2,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N2")
N2 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child2, "AttributeTreeNode")
if N2 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child3 = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child3,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N3")
N3 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child3, "AttributeTreeNode")
if N3 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child11 = batchmode_geompy.myBuilder.NewObject(child1)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child11,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N11")
N11 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child11, "AttributeTreeNode")
if N11 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child111 = batchmode_geompy.myBuilder.NewObject(child11)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child111, "AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N111")
N111 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child111, "AttributeTreeNode")
if N111 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child31 = batchmode_geompy.myBuilder.NewObject(child3)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child31,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N31")
N31 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child31, "AttributeTreeNode")
if N31 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child32 = batchmode_geompy.myBuilder.NewObject(child3)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child32,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N32")
N32 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child32, "AttributeTreeNode")
if N32 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child321 = batchmode_geompy.myBuilder.NewObject(child32)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child321,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N321")
N321 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child321, "AttributeTreeNode")
if N321 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child33 = batchmode_geompy.myBuilder.NewObject(child3)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child33,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N33")
N33 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child33, "AttributeTreeNode")
if N33 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child34 = batchmode_geompy.myBuilder.NewObject(child3)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child34,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N34")
N34 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child34, "AttributeTreeNode")
if N34 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
#Create links between tree nodes.
# -| root
# --N1 __
# | N11__
# | N111
# --N2
# |
# --N3__
# N31
# N32__
# N321
# N33
# N34
N11.SetFather(N1)
N11.Append(N111)
N3.SetPrevious(N1)
N3.Prepend(N2)
N32.SetFather(N3)
N32.Prepend(N31)
N33.InsertAfter(N32)
N33.Append(N34)
print "------------- ", N1, " ------------- "
print "N1.Label() = ", N1.Label() , "IsRoot() = ", N1.IsRoot(), "Depth() = ", N1.Depth()
print "N11.Label() = ", N11.Label() , "IsRoot() = ", N11.IsRoot(), "Depth() = ", N11.Depth()
print "N111.Label() = ", N111.Label() , "IsRoot() = ", N111.IsRoot(), "Depth() = ", N111.Depth()
print "N2.Label() = ", N2.Label() , "IsRoot() = ", N2.IsRoot(), "Depth() = ", N2.Depth()
print "N3.Label() = ", N3.Label() , "IsRoot() = ", N3.IsRoot(), "Depth() = ", N3.Depth()
print "N31.Label() = ", N31.Label() , "IsRoot() = ", N31.IsRoot(), "Depth() = ", N31.Depth()
print "N32.Label() = ", N32.Label() , "IsRoot() = ", N32.IsRoot(), "Depth() = ", N32.Depth()
print "N321.Label() = ", N321.Label() , "IsRoot() = ", N321.IsRoot(), "Depth() = ", N321.Depth()
print "N33.Label() = ", N33.Label() , "IsRoot() = ", N33.IsRoot(), "Depth() = ", N33.Depth()
print "N34.Label() = ", N34.Label() , "IsRoot() = ", N34.IsRoot(), "Depth() = ", N34.Depth()
print "N1.IsRoot()=", N1.IsRoot()
print "N1.HasNext() = ",N1.HasNext()
if N1.HasNext():
print N1.Next().Label()
print "N32.HasPrevious() = ",N32.HasPrevious()
if N32.HasPrevious():
print N32.GetPrevious().Label()
print "N111.HasFirst()=",N111.HasFirst()
print "N111.HasFather()=",N111.HasFather()
if N111.HasFather() :
print "N111.GetFather().Label()=",N111.GetFather().Label()