1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
\r
3 <!-- hennerik CVSweb $Revision$ -->
\r
4 <TITLE>Example</TITLE></HEAD>
\r
5 <BODY BGCOLOR="#eeeeee">
\r
6 <HR noshade><PRE>Methods : GetAvailableUndos, ChangeValue, FindOrCreateAttribute, SaveAs, GetAvailableRedos, Undo, FindComponent, Redo, FindAttribute, Open, CommitCommand, NewCommand
\r
9 dir= os.getenv("TmpDir")
\r
11 dir = "/tmp"
\r
13 batchmode_geompy.myBuilder._set_UndoLimit(20)
\r
15 # 1st transaction -----------------------------------------
\r
16 batchmode_geompy.myBuilder.NewCommand()
\r
17 # create AttributeSequenceOfInteger
\r
18 #=========================================================
\r
19 A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger")
\r
21 raise RuntimeError, "Can't create AttributeSequenceOfInteger attribute"
\r
22 A = A._narrow(SALOMEDS.AttributeSequenceOfInteger)
\r
24 raise RuntimeError, "Can't create AttributeSequenceOfInteger attribute"
\r
31 print "First transaction goes on : HasOpenCommand() = ", batchmode_geompy.myBuilder.HasOpenCommand()
\r
32 batchmode_geompy.myBuilder.CommitCommand() #--------------
\r
34 # 2nd transaction ------------------------------------------
\r
35 batchmode_geompy.myBuilder.NewCommand()
\r
37 A.ChangeValue(4,500)
\r
38 batchmode_geompy.myBuilder.CommitCommand() #--------------
\r
40 if batchmode_geompy.myBuilder.GetAvailableUndos() == 0:
\r
41 raise RuntimeError, "GetAvailableUndos() = 0 but must not !"
\r
44 print "Wrong length of SequenceOfInteger"
\r
45 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 500:
\r
46 raise RuntimeError, "Wrong value of AttributeSequenceOfInteger"
\r
48 file1 = dir + "/test1.hdf"
\r
49 batchmode_geompy.myStudyManager.SaveAs(file1, batchmode_geompy.myStudy)
\r
51 # 1st Undo ---------------------------------------
\r
52 batchmode_geompy.myBuilder.Undo()
\r
53 res, A = batchmode_geompy.myBuilder.FindAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger")
\r
55 raise RuntimeError, "After first 'undo' can't find AttributeSequenceOfInteger"
\r
57 print "Wrong length of SequenceOfInteger"
\r
58 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 500 or A.Value(4) != 400 or A.Value(5) != 700:
\r
59 print A.Value(1), A.Value(2), A.Value(3), A.Value(4), A.Value(5)
\r
60 raise RuntimeError, "Wrong value of AttributeSequenceOfInteger after the first 'undo'!"
\r
62 file2 = dir + "/test2.hdf"
\r
63 batchmode_geompy.myStudyManager.SaveAs(file2, batchmode_geompy.myStudy)
\r
64 #-------------------------------------------------
\r
65 # 2nd Undo ---------------------------------------
\r
66 batchmode_geompy.myBuilder.Undo()
\r
67 res, attr = batchmode_geompy.myBuilder.FindAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger")
\r
68 if res !=0 or attr != None :
\r
69 raise RuntimeError, "After the second 'undo' AttributeSequenceOfInteger exists but must not!"
\r
70 file3 = dir + "/test3.hdf"
\r
71 batchmode_geompy.myStudyManager.SaveAs(file3, batchmode_geompy.myStudy)
\r
72 #-------------------------------------------------
\r
74 #make redo twice ---------------------------------
\r
75 if batchmode_geompy.myBuilder.GetAvailableRedos() == 0:
\r
76 raise RuntimeError, "GetAvailableRedos() = 0 but must not !"
\r
77 batchmode_geompy.myBuilder.Redo()
\r
78 batchmode_geompy.myBuilder.Redo()
\r
79 res, A = batchmode_geompy.myBuilder.FindAttribute(batchmode_geompy.father, "AttributeSequenceOfInteger")
\r
80 if res ==0 or A== None :
\r
81 raise RuntimeError, "AttributeSequenceOfInteger is not found but must be!"
\r
83 print "Wrong length of SequenceOfInteger"
\r
84 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 500:
\r
85 raise RuntimeError, "Wrong value of AttributeSequenceOfInteger"
\r
88 #----------------------------------------------------------------------
\r
89 openedStudy=batchmode_geompy.myStudyManager.Open(file1);
\r
91 if openedStudy == None:
\r
92 raise RuntimeError, "Can't open saved study!"
\r
95 father = openedStudy.FindComponent("GEOM")
\r
97 raise RuntimeError, "Geom component is not found! Wrong study is opened."
\r
100 # find AttributeSequenceOfInteger
\r
101 #======================================
\r
103 res,A=father.FindAttribute("AttributeSequenceOfInteger")
\r
104 if res == 0 or A == None:
\r
105 raise RuntimeError, "Error: not found AttributeSequenceOfInteger"
\r
107 A = A._narrow(SALOMEDS.AttributeSequenceOfInteger)
\r
109 if A.Length() != 4:
\r
110 print "Wrong length of SequenceOfInteger"
\r
111 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 400 or A.Value(4) != 500:
\r
112 print "Wrong value of AttributeSequenceOfInteger"
\r
113 #----------------------------------------------------------------------
\r
114 openedStudy=batchmode_geompy.myStudyManager.Open(file2);
\r
116 if openedStudy == None:
\r
117 raise RuntimeError, "Can't open saved study!"
\r
120 father = openedStudy.FindComponent("GEOM")
\r
122 raise RuntimeError, "Geom component is not found! Wrong study is opened."
\r
125 # find AttributeSequenceOfInteger
\r
126 #======================================
\r
128 res,A=father.FindAttribute("AttributeSequenceOfInteger")
\r
129 if res == 0 or A == None:
\r
130 raise RuntimeError, "Error: not found AttributeSequenceOfInteger"
\r
132 A = A._narrow(SALOMEDS.AttributeSequenceOfInteger)
\r
134 if A.Length() != 5:
\r
135 print "Wrong length of SequenceOfInteger"
\r
136 if A.Value(1) != 100 or A.Value(2) != 300 or A.Value(3) != 500 or A.Value(4) != 400 or A.Value(5) != 700:
\r
137 raise RuntimeError, "Wrong value of AttributeSequenceOfInteger after the first 'undo'!"
\r
139 #----------------------------------------------------------------------
\r
140 openedStudy=batchmode_geompy.myStudyManager.Open(file3);
\r
142 if openedStudy == None:
\r
143 raise RuntimeError, "Can't open saved study!"
\r
146 father = openedStudy.FindComponent("GEOM")
\r
148 raise RuntimeError, "Geom component is not found! Wrong study is opened."
\r
151 # find AttributeSequenceOfInteger
\r
152 #======================================
\r
154 res,A=father.FindAttribute("AttributeSequenceOfInteger")
\r
156 if res!=0 or A != None:
\r
157 raise RuntimeError, " AttributeSequenceOfInteger is found but must not!"
\r