1 # Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
22 # File : salomedsgui.py
23 # Author : Paul RASCLE, EDF
26 #--------------------------------------------------------------------------
34 Study (SALOMEDS) interface from python gui (ex: IAPP embedded PyQt GUI)
36 _myStudyManager = None
43 self._myStudyManager = salome.myStudyManager
44 self._myStudy = salome.myStudy
45 self._myBuilder = self._myStudy.NewBuilder()
47 def enregistre(self,myModule):
48 if self._father is None:
49 father = self._myStudy.FindComponent(myModule)
51 father = self._myBuilder.NewComponent(myModule)
52 A1 = self._myBuilder.FindOrCreateAttribute(father,"AttributeName")
53 FName = A1._narrow(SALOMEDS.AttributeName)
54 FName.SetValue(myModule)
56 self._component = myModule
57 return self._father.GetID()
59 def createItemInStudy(self,fatherId,objectName):
61 if self._component is not None:
62 listSO = self._myStudy.FindObjectByName(objectName,self._component)
64 father = self._myStudy.FindObjectID(fatherId)
65 newObj = self._myBuilder.NewObject(father)
66 A1= self._myBuilder.FindOrCreateAttribute(newObj,"AttributeName")
67 FName = A1._narrow(SALOMEDS.AttributeName)
68 FName.SetValue(objectName)
69 objId = newObj.GetID()
71 objId = listSO[0].GetID()
74 def getReference(self,objectId):
75 mySO = self._myStudy.FindObjectID(objectId)
76 boo,RefSO = mySO.ReferencedObject()
78 objectId=RefSO.GetID()
81 def addReference(self,fatherId,refId):
82 father = self._myStudy.FindObjectID(fatherId)
83 ref = self._myStudy.FindObjectID(refId)
84 newObj = self._myBuilder.NewObject(father)
85 A1 = self._myBuilder.FindOrCreateAttribute(ref,"AttributeName")
86 FName = A1._narrow(SALOMEDS.AttributeName)
87 Name_ref = FName.Value()
88 path_father , none = string.split(self._myStudy.GetObjectPath(ref),Name_ref)
89 path_father , none = os.path.split(path_father)
90 #print "salomedsgui::addReference : path_father_ref = ",path_father
91 #print "salomedsgui::addReference : Path_father = ",self._myStudy.GetObjectPath(father)
92 if self._myStudy.GetObjectPath(father) != path_father :
93 self._myBuilder.Addreference(newObj,ref)
95 def setExternalFileAttribute(self,objectId,filetype,filename):
96 mySO = self._myStudy.FindObjectID(objectId)
97 A1 = self._myBuilder.FindOrCreateAttribute(mySO,"AttributeExternalFileDef")
98 AFileName = A1._narrow(SALOMEDS.AttributeExternalFileDef)
99 AFileName.SetValue(filename)
101 A2 = self._myBuilder.FindOrCreateAttribute(mySO,"AttributeFileType")
102 AFileType = A2._narrow(SALOMEDS.AttributeFileType)
104 AFileType.SetValue(filetype)
107 def getExternalFileAttribute(self,filetype, objectId):
110 mySO = self._myStudy.FindObjectID(objectId)
111 boo,RefSO = mySO.ReferencedObject()
117 boo,attr = self._myBuilder.FindAttribute(mySO,"AttributeFileType")
118 print "AttributeFileType ",boo
124 boo,attr = self._myBuilder.FindAttribute(mySO,"AttributeExternalFileDef")
129 return (boo,attribute)
131 def getNameAttribute(self, objectId):
132 mySO = self._myStudy.FindObjectID(objectId)
133 boo,RefSO = mySO.ReferencedObject()
136 boo,attr = self._myBuilder.FindAttribute(mySO,"AttributeName")
144 def getChildren(self, objectId):
146 mySO = self._myStudy.FindObjectID(objectId)
147 boo,RefSO = mySO.ReferencedObject()
150 it = self._myStudy.NewChildIterator(mySO)
153 children.append(CSO.GetID())