--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>\r
+<HEAD>\r
+<!-- hennerik CVSweb $Revision$ -->\r
+<TITLE>Exemple</TITLE></HEAD>\r
+<BODY BGCOLOR="#eeeeee">\r
+<HR noshade><PRE>\r
+#^SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, NewCommand, GetProperties, Open, CommitCommand, NewBuilder^\r
+#^Attribute methods : SetLocked, IsLocked, GetCreationMode, SetCreationDate, IsModified, GetUserName, Value, SetUserName, SetValue, GetCreationDate^\r
+\r
+batchmode_geompy.myBuilder._set_UndoLimit(20)\r
+\r
+#--------------------------------------------------------------------------\r
+# create AttributeReal \r
+#===============================================\r
+A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeReal")\r
+if A == None :\r
+ raise RuntimeError, "Can't create AttributeReal attribute"\r
+A = A._narrow(SALOMEDS.AttributeReal)\r
+A.SetValue(0.0001)\r
+if A.Value() != 0.0001:\r
+ raise RuntimeError, "Error : wrong value of AttributeReal"\r
+\r
+# create AttributeStudyProperties\r
+#================================================\r
+A = batchmode_geompy.myStudy.GetProperties()\r
+if A == None :\r
+ raise RuntimeError, "Can't create AttributeStudyProperties attribute"\r
+A = A._narrow(SALOMEDS.AttributeStudyProperties)\r
+\r
+batchmode_geompy.myBuilder.NewCommand();\r
+print "A.GetUserName()= ", A.GetUserName()\r
+res,mm,hh,dd,mnth,yy=A.GetCreationDate()\r
+print "A.GetCreationDate() = ", mm,hh,dd,mnth,yy\r
+print "A.GetCreationMode() = ", A.GetCreationMode()\r
+print "A.IsModified() = ", A.IsModified()\r
+print "A.IsLocked() = ", A.IsLocked()\r
+if A.IsLocked() == 0 :\r
+ A.SetUserName("tester"); print 'A.SetUserName("tester"), A.GetUserName() = ', A.GetUserName()\r
+ A.SetCreationDate(11,11,11,11,2002); print 'A.SetCreationDate(11,11,11,11,2002), A.GetCreationDate() =', A.GetCreationDate()\r
+ print "A.IsModified() = ", A.IsModified()\r
+A.SetLocked(1)\r
+\r
+#check the transaction result \r
+batchmode_geompy.myBuilder.CommitCommand()\r
+if A.GetUserName() != "tester":\r
+ print 'Control after transaction close : A.GetUserName() = ', A.GetUserName()\r
+ raise RuntimeError, "Field 'UserName' was not modified but had to!"\r
+\r
+# try to make some changes wrapped by transaction \r
+#================================================\r
+batchmode_geompy.myBuilder.NewCommand()\r
+A = batchmode_geompy.myBuilder.FindOrCreateAttribute(batchmode_geompy.father, "AttributeInteger")\r
+\r
+if A == None :\r
+ raise RuntimeError, "Can't create AttributeInteger attribute"\r
+A = A._narrow(SALOMEDS.AttributeInteger)\r
+A.SetValue(1000000)\r
+\r
+exception_was = None\r
+try : batchmode_geompy.myBuilder.CommitCommand()\r
+except Exception: exception_was = 1\r
+\r
+if exception_was is None:\r
+ raise RuntimeError, "Study was locked for changes but CommitCommand did not generate an exception !"\r
+\r
+# save / restore study \r
+\r
+#================================================\r
+str= os.getenv("TmpDir")\r
+if str == None:\r
+ str = "/tmp"\r
+file = str+"/test.hdf"\r
+\r
+print " ------- We will save to", file, "-----------"\r
+\r
+batchmode_geompy.myStudyManager.SaveAs(file, batchmode_geompy.myStudy)\r
+\r
+\r
+#--------------------------------------------------------------------------#\r
+#--------------------------- Open file ------------------------------------# \r
+#--------------------------------------------------------------------------#\r
+\r
+print" -------------- Open " + file + "-------------- " \r
+\r
+openedStudy = batchmode_geompy.myStudyManager.Open(file)\r
+if openedStudy == None:\r
+ raise RuntimeError, "Can't open saved study!"\r
+\r
+father = openedStudy.FindComponent("GEOM")\r
+if father is None:\r
+ raise RuntimeError, "Geom component is not found! Wrong study is opened." \r
+\r
+\r
+#1. find AttributeReal\r
+#================================================\r
+\r
+res,A=father.FindAttribute("AttributeReal")\r
+if res == 0 or A == None:\r
+ raise RuntimeError, "Error: not found AttributeReal"\r
+\r
+A = A._narrow(SALOMEDS.AttributeReal)\r
+if A.Value() != 0.0001:\r
+ raise RuntimeError, "Error : wrong value of AttributeReal"\r
+ \r
+\r
+#2. find AttributeStudyProperties\r
+#=================================================\r
+A=openedStudy.GetProperties()\r
+if res == 0 or A == None:\r
+ raise RuntimeError, "Error: not found AttributeStudyProperties"\r
+\r
+A = A._narrow(SALOMEDS.AttributeStudyProperties)\r
+if A.IsLocked() == 0 :\r
+ raise RuntimeError, "Error : AttributeStudyProperties must have Locked flag but have no!"\r
+\r
+#get the builder\r
+myBuilder = openedStudy.NewBuilder()\r
+\r
+#3. try to make some changes wrapped by transaction \r
+#==================================================\r
+exception_was = None\r
+try : \r
+ myBuilder.NewCommand()\r
+ A = myBuilder.FindOrCreateAttribute(father, "AttributeInteger")\r
+\r
+ if A == None :\r
+ raise RuntimeError, "Can't create AttributeInteger attribute"\r
+ A = A._narrow(SALOMEDS.AttributeInteger)\r
+ A.SetValue(1000000)\r
+ myBuilder.CommitCommand()\r
+except Exception: exception_was = 1\r
+\r
+if exception_was is None:\r
+ raise RuntimeError, "Study was locked for changes but CommitCommand did not generate an exception !"\r
+\r
+\r
+myBuilder.NewCommand()\r
+A=openedStudy.GetProperties()\r
+A = A._narrow(SALOMEDS.AttributeStudyProperties)\r
+A.SetLocked(0)\r
+myBuilder.CommitCommand()\r
+\r
+#4.\r
+myBuilder.NewCommand()\r
+A.SetLocked(0);\r
+print "A.GetUserName()= ", A.GetUserName()\r
+print "A.GetCreationDate() = ", A.GetCreationDate()\r
+print "A.GetCreationMode() = ", A.GetCreationMode()\r
+print "A.IsModified() = ", A.IsModified()\r
+myBuilder.CommitCommand()\r
+\r
+#5.\r
+myBuilder.NewCommand()\r
+A.SetUserName("tester1")\r
+myBuilder.CommitCommand()\r
+print "A.GetUserName()= ", A.GetUserName()\r
+\r
+#remove the document file\r
+os.remove(file)\r
+</PRE>
\ No newline at end of file