Salome HOME
Finalisation
[modules/adao.git] / src / daSalome / daGUI / daGuiImpl / adaoModuleHelper.py
1 # -*- coding: utf-8 -*-
2 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
3 #
4 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 #
7 #  This library is free software; you can redistribute it and/or
8 #  modify it under the terms of the GNU Lesser General Public
9 #  License as published by the Free Software Foundation; either
10 #  version 2.1 of the License.
11 #
12 #  This library is distributed in the hope that it will be useful,
13 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 #  Lesser General Public License for more details.
16 #
17 #  You should have received a copy of the GNU Lesser General Public
18 #  License along with this library; if not, write to the Free Software
19 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
20 #
21 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 #
23
24 __all__ = [
25     "moduleID",
26     "objectID",
27     "unknownID",
28     "componentName",
29     "modulePixmap",
30     "verbose",
31     "getORB",
32     "getNS",
33     "getLCC",
34     "getStudyManager",
35     "getEngine",
36     "getEngineIOR",
37     "findOrCreateComponent",
38     "getObjectID",
39     ]
40
41 from omniORB import CORBA
42 from SALOME_NamingServicePy import SALOME_NamingServicePy_i
43 from LifeCycleCORBA import LifeCycleCORBA
44 import SALOMEDS
45 import SALOMEDS_Attributes_idl
46
47 #import OMA_ORB
48
49 ###
50 # Get OMA module's ID
51 ###
52 def moduleID():
53     MODULE_ID = 6100
54     return MODULE_ID
55
56 ###
57 # Get OMA object's ID
58 ###
59 def objectID():
60     OBJECT_ID = 6110
61     return OBJECT_ID
62
63 ###
64 # Get unknown ID
65 ###
66 def unknownID():
67     FOREIGN_ID = -1
68     return FOREIGN_ID
69
70 def componentName():
71     """
72     This provide the name of the module component to be associated to the study.
73     """
74     # Note that this name should be (i) the name used for the class implementing
75     # the component CORBA interface and (ii) the name used to declare the component
76     # in the catalog of the module.
77     return "ADAO"
78
79 # _MEM_ we use here the tr() translation methode to manage constant parameters
80 # in the application. We could have specified instead constant values directly
81 # in the code below. It's a matter of convenience.
82 from PyQt4.QtCore import QObject
83 QObjectTR=QObject()
84
85 def componentUserName():
86     return "ADAO"
87
88 def modulePixmap():
89     """
90     Get the reference pixmap for this module.
91     """
92     return "ADAO_small.png"
93
94 def studyItemPixmapOk():
95     """
96     Get the reference pixmap for items of this module.
97     """
98     return "ADAO_small_vert.png"
99
100 def studyItemPixmapNOk():
101     """
102     Get the reference pixmap for items of this module.
103     """
104     return "ADAO_small_rouge.png"
105
106 __verbose__ = None
107 def verbose():
108     global __verbose__
109     if __verbose__ is None:
110         try:
111             __verbose__ = int( os.getenv( 'SALOME_VERBOSE', 0 ) )
112         except:
113             __verbose__ = 0
114             pass
115         pass
116     return __verbose__
117
118 ###
119 # Get ORB reference
120 ###
121 __orb__ = None
122 def getORB():
123     global __orb__
124     if __orb__ is None:
125         __orb__ = CORBA.ORB_init( [''], CORBA.ORB_ID )
126         pass
127     return __orb__
128
129 ###
130 # Get naming service instance
131 ###
132 __naming_service__ = None
133 def getNS():
134     global __naming_service__
135     if __naming_service__ is None:
136         __naming_service__ = SALOME_NamingServicePy_i( getORB() )
137         pass
138     return __naming_service__
139
140 ##
141 # Get life cycle CORBA instance
142 ##
143 __lcc__ = None
144 def getLCC():
145     global __lcc__
146     if __lcc__ is None:
147         __lcc__ = LifeCycleCORBA( getORB() )
148         pass
149     return __lcc__
150
151 ##
152 # Get study manager
153 ###
154 __study_manager__ = None
155 def getStudyManager():
156     global __study_manager__
157     if __study_manager__ is None:
158         obj = getNS().Resolve( '/myStudyManager' )
159         __study_manager__ = obj._narrow( SALOMEDS.StudyManager )
160         pass
161     return __study_manager__
162
163 ###
164 # Get OMA engine
165 ###
166 __engine__ = None
167 def getEngine():
168     global __engine__
169     if __engine__ is None:
170         __engine__ = getLCC().FindOrLoadComponent( "FactoryServer", componentName() )
171         pass
172     return __engine__
173
174 ###
175 # Get OMA engine IOR
176 ###
177 def getEngineIOR():
178     IOR = ""
179     if getORB() and getEngine():
180         IOR = getORB().object_to_string( getEngine() )
181         pass
182     return IOR
183
184 ###
185 # Find or create OMA component object in a study
186 ###
187 def findOrCreateComponent( study ):
188     father = study.FindComponent( componentName() )
189     if father is None:
190         builder = study.NewBuilder()
191         father = builder.NewComponent( componentName() )
192         attr = builder.FindOrCreateAttribute( father, "AttributeName" )
193         attr.SetValue( componentName() )
194         attr = builder.FindOrCreateAttribute( father, "AttributePixMap" )
195         attr.SetPixMap( modulePixmap() )
196         attr = builder.FindOrCreateAttribute( father, "AttributeLocalID" )
197         attr.SetValue( moduleID() )
198         try:
199             builder.DefineComponentInstance( father, getEngine() )
200             pass
201         except:
202             pass
203         pass
204     return father
205
206 ###
207 # Get object's ID
208 ###
209 def getObjectID( study, entry ):
210     ID = unknownID()
211     if study and entry:
212         sobj = study.FindObjectID( entry )
213         if sobj is not None:
214             test, anAttr = sobj.FindAttribute( "AttributeLocalID" )
215             if test: ID = anAttr._narrow( SALOMEDS.AttributeLocalID ).Value()
216             pass
217         pass
218     return
219