X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FKERNEL_PY%2Fsalome_iapp.py;h=dda9b81661429c0771d152a317e7c2d4bab18409;hb=47f252a5e474e7d231641ab49e234cf6e11337ed;hp=8606495391b60c39433e05befa81dc2451f39646;hpb=63414a08d9492c25c206579c1953ec6f390679fd;p=modules%2Fkernel.git diff --git a/src/KERNEL_PY/salome_iapp.py b/src/KERNEL_PY/salome_iapp.py index 860649539..dda9b8166 100644 --- a/src/KERNEL_PY/salome_iapp.py +++ b/src/KERNEL_PY/salome_iapp.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -26,26 +26,28 @@ # Module : SALOME # $Header$ ## @package salome_iapp -# Module salome gives access to Salome GUI ressources (if GUI has been launched). +# Module salome gives access to Salome GUI resources (if GUI has been launched). # import salome_ComponentGUI #-------------------------------------------------------------------------- -IN_SALOME_GUI=0 +IN_SALOME_GUI=None -def ImportComponentGUI(ComponentName): +def ImportComponentGUI(ComponentName, updateOB=True): if IN_SALOME_GUI: libName = "lib" + ComponentName + "_Swig" command = "from " + libName + " import *" - exec ( command ) + exec (command, globals()) constructor = ComponentName + "_Swig()" + if not updateOB : + constructor = ComponentName + "_Swig( False )" command = "gui = " + constructor - exec ( command ) - return gui + exec (command, globals()) + return gui # @UndefinedVariable else: - print "Warning: ImportComponentGUI(",ComponentName,") outside GUI !" - print "calls to GUI methods may crash..." + print("Warning: ImportComponentGUI(",ComponentName,") outside GUI !") + print("calls to GUI methods may crash...") return salome_ComponentGUI #-------------------------------------------------------------------------- @@ -71,90 +73,85 @@ class SalomeOutsideGUI(object): Provides a replacement for class SalomeGUI outside GUI process. Do almost nothing """ - global myStudyId, myStudyName + global myStudyName def hasDesktop(self): """Indicate if GUI is running""" return False - def updateObjBrowser(self, bid): + def updateObjBrowser(self): """update the GUI object browser""" - print "SalomeOutsideGUI: no objectBrowser update outside GUI" + print("SalomeOutsideGUI: no objectBrowser update outside GUI") pass - def getActiveStudyId(self): - """Get the active study id""" - print "SalomeOutsideGUI.getActiveStudyId: avoid use outside GUI" - return myStudyId - - def getActiveStudyName(self): - """Get the active study name""" - print "SalomeOutsideGUI.getActiveStudyName: avoid use outside GUI" + def getStudyName(self): + """Get the study name""" + print("SalomeOutsideGUI.getStudyName: avoid use outside GUI") return myStudyName def SelectedCount(self): """Get the number of active selections""" - print "SalomeOutsideGUI: no selection mecanism available outside GUI" + print("SalomeOutsideGUI: no selection mechanism available outside GUI") return 0 def getSelected(self, i): """Get the selection number i """ - print "SalomeOutsideGUI: no selection mecanism available outside GUI" - return none + print("SalomeOutsideGUI: no selection mechanism available outside GUI") + return None def AddIObject(self, Entry): """Add an entry""" - print "SalomeOutsideGUI.AddIOObject: not available outside GUI" + print("SalomeOutsideGUI.AddIOObject: not available outside GUI") pass def RemoveIObject(self, Entry): """Remove an entry""" - print "SalomeOutsideGUI.REmoveIOObject: not available outside GUI" + print("SalomeOutsideGUI.REmoveIOObject: not available outside GUI") pass def ClearIObjects(self): """Clear entries""" - print "SalomeOutsideGUI.ClearIOObject: not available outside GUI" + print("SalomeOutsideGUI.ClearIOObject: not available outside GUI") pass def Display(self, Entry): """Display an entry""" - print "SalomeOutsideGUI.Display: not available outside GUI" + print("SalomeOutsideGUI.Display: not available outside GUI") pass def DisplayOnly(self, Entry): """Display only an entry""" - print "SalomeOutsideGUI.DisplayOnly: not available outside GUI" + print("SalomeOutsideGUI.DisplayOnly: not available outside GUI") pass def Erase(self, Entry): """Erase en entry""" - print "SalomeOutsideGUI.Erase: not available outside GUI" + print("SalomeOutsideGUI.Erase: not available outside GUI") pass def DisplayAll(self): """Display all""" - print "SalomeOutsideGUI.Erase: not available outside GUI" + print("SalomeOutsideGUI.Erase: not available outside GUI") pass def EraseAll(self): """Erase all""" - print "SalomeOutsideGUI.EraseAll: not available outside GUI" + print("SalomeOutsideGUI.EraseAll: not available outside GUI") pass def IsInCurrentView(self, Entry): """Indicate if an entry is in current view""" - print "SalomeOutsideGUI.IsIncurentView: not available outside GUI" + print("SalomeOutsideGUI.IsIncurrentView: not available outside GUI") return False def getComponentName(self, ComponentUserName ): """Get component name from component user name""" - print "SalomeOutsideGUI.getComponentName: not available outside GUI" + print("SalomeOutsideGUI.getComponentName: not available outside GUI") return "" def getComponentUserName( self, ComponentName ): """Get component user name from component name""" - print "SalomeOutsideGUI.getComponentUserName: not available outside GUI" + print("SalomeOutsideGUI.getComponentUserName: not available outside GUI") return "" #-------------------------------------------------------------------------- @@ -174,9 +171,31 @@ def salome_iapp_init(embedded): # create a SALOMEGUI_Swig instance sg = SalomeGUI() - IN_SALOME_GUI = sg.hasDesktop() + inSalomeGUI = sg.hasDesktop() else: # Not embedded in GUI sg=SalomeOutsideGUI() - IN_SALOME_GUI=0 + inSalomeGUI=0 + if IN_SALOME_GUI is None: + IN_SALOME_GUI = inSalomeGUI return sg + +def salome_iapp_close(): + global salome_iapp_initial + salome_iapp_initial=1 + pass + + +def register_module_in_study(name, syncCall=True): + try: + import salome + salome.salome_init() + session_server = salome.naming_service.Resolve("/Kernel/Session") + if session_server: + message = "register_module_in_study/"+name + if syncCall: + session_server.emitMessage(message) + else: + session_server.emitMessageOneWay(message) + except: + pass