Salome HOME
Merge Python 3 porting.
[samples/pyhello.git] / src / PYHELLOGUI / PYHELLOGUI.py
index 69b1f5343c77a893e2c6e2b346cc7dda46d52af8..9ded024f0c4499faff5c3bd3740dac7288654d99 100644 (file)
@@ -40,6 +40,8 @@ import libSALOME_Swig
 
 logger = Logger(moduleName(), color=termcolor.RED_FG)
 
+import salome
+
 ################################################
 # GUI context class
 # Used to store actions, menus, toolbars, etc...
@@ -116,10 +118,6 @@ class GUIcontext:
 # Global variables
 ################################################
 
-# study-to-context map
-__study2context__   = {}
-# current context
-__current_context__ = None
 # object counter
 __objectid__ = 0
 
@@ -137,27 +135,12 @@ sg = libSALOME_Swig.SALOMEGUI_Swig()
 # Internal methods
 ################################################
 
-###
-# get active study ID
-###
-def _getStudyId():
-    return sgPyQt.getStudyId()
-
-###
-# get active study
-###
-def _getStudy():
-    studyId = _getStudyId()
-    study = getStudyManager().GetStudyByID( studyId )
-    return study
-
 ###
 # returns True if object has children
 ###
 def _hasChildren( sobj ):
     if sobj:
-        study = _getStudy()
-        iter  = study.NewChildIterator( sobj )
+        iter  = salome.myStudy.NewChildIterator( sobj )
         while iter.More():
             name = iter.Value().GetName()
             if name:
@@ -167,25 +150,6 @@ def _hasChildren( sobj ):
         pass
     return False
 
-###
-# get current GUI context
-###
-def _getContext():
-    global __current_context__
-    return __current_context__
-
-###
-# set and return current GUI context
-# study ID is passed as parameter
-###
-def _setContext( studyID ):
-    global __study2context__, __current_context__
-    if studyID not in __study2context__:
-        __study2context__[studyID] = GUIcontext()
-        pass
-    __current_context__ = __study2context__[studyID]
-    return __current_context__
-
 ###
 # increment object counter in the map
 ###
@@ -201,7 +165,7 @@ def _getSelection():
     selcount = sg.SelectedCount()
     seltypes = {}
     for i in range( selcount ):
-        _incObjToMap( seltypes, getObjectID( _getStudy(), sg.getSelected( i ) ) )
+        _incObjToMap( seltypes, getObjectID( sg.getSelected( i ) ) )
         pass
     return selcount, seltypes
 
@@ -212,7 +176,7 @@ def _getSelection():
 # called when module is initialized
 # perform initialization actions
 def initialize():
-    if verbose() : print("PYHELLOGUI.initialize() : study : %d" % _getStudyId())
+    if verbose() : print("PYHELLOGUI.initialize()")
     # set default preferences values
     if not sgPyQt.hasSetting( "PYHELLO", "def_obj_name"):
         sgPyQt.addSetting( "PYHELLO", "def_obj_name", GUIcontext.DEFAULT_NAME )
@@ -225,7 +189,7 @@ def initialize():
 # called when module is initialized
 # return map of popup windows to be used by the module
 def windows():
-    if verbose() : print("PYHELLOGUI.windows() : study : %d" % _getStudyId())
+    if verbose() : print("PYHELLOGUI.windows()")
     wm = {}
     wm[WT_ObjectBrowser] = Qt.LeftDockWidgetArea
     wm[WT_PyConsole] = Qt.BottomDockWidgetArea
@@ -234,14 +198,14 @@ def windows():
 # called when module is initialized
 # return list of 2d/3d views to be used ny the module
 def views():
-    if verbose() : print("PYHELLOGUI.views() : study : %d" % _getStudyId())
+    if verbose() : print("PYHELLOGUI.views()")
     return []
 
 # called when module is initialized
 # export module's preferences
 def createPreferences():
     if verbose():
-        print("PYHELLOGUI.createPreferences() : study : %d" % _getStudyId())
+        print("PYHELLOGUI.createPreferences()")
     gid = sgPyQt.addPreference("General")
     gid = sgPyQt.addPreference("Object creation", gid)
     sgPyQt.addPreference("Default name", gid, PT_String, "PYHELLO", "def_obj_name")
@@ -257,28 +221,19 @@ def createPreferences():
 # called when module is activated
 # returns True if activating is successfull and False otherwise
 def activate():
-    if verbose() : print("PYHELLOGUI.activate() : study : %d" % _getStudyId())
-    ctx = _setContext( _getStudyId() )
+    if verbose() : print("PYHELLOGUI.activate()")
+    GUIcontext()
     return True
 
 # called when module is deactivated
 def deactivate():
-    if verbose() : print("PYHELLOGUI.deactivate() : study : %d" % _getStudyId())
-    pass
-
-# called when active study is changed
-# active study ID is passed as parameter
-def activeStudyChanged( studyID ):
-    if verbose() : print("PYHELLOGUI.activeStudyChanged(): study : %d" % studyID)
-    ctx = _setContext( _getStudyId() )
+    if verbose() : print("PYHELLOGUI.deactivate()")
     pass
 
 # called when popup menu is invoked
 # popup menu and menu context are passed as parameters
 def createPopupMenu( popup, context ):
     if verbose() : print("PYHELLOGUI.createPopupMenu(): context = %s" % context)
-    ctx = _setContext( _getStudyId() )
-    study = _getStudy()
     selcount, selected = _getSelection()
     if verbose() : print(selcount, selected)
     if selcount == 1:
@@ -478,25 +433,24 @@ def CreateObject():
         pass
     if not name:
         return
-    getEngine().createObject(_getStudy(), name)
-    sg.updateObjBrowser(True)
+    getEngine().createObject( name)
+    sg.updateObjBrowser()
     pass
 
 ###
 # Delete all objects
 ###
 def DeleteAll():
-    study = _getStudy()
-    father = study.FindComponent( moduleName() )
+    father = salome.myStudy.FindComponent( moduleName() )
     if father:
-        iter = study.NewChildIterator( father )
-        builder = study.NewBuilder()
+        iter = salome.myStudy.NewChildIterator( father )
+        builder = salome.myStudy.NewBuilder()
         while iter.More():
             sobj = iter.Value()
             iter.Next()
             builder.RemoveObjectWithChildren( sobj )
             pass
-        sg.updateObjBrowser( True )
+        sg.updateObjBrowser()
         pass
     pass
 
@@ -504,10 +458,9 @@ def DeleteAll():
 # Show object's name
 ###
 def ShowMe():
-    study = _getStudy()
     entry = sg.getSelected( 0 )
     if entry != '':
-        sobj = study.FindObjectID( entry )
+        sobj = salome.myStudy.FindObjectID( entry )
         if ( sobj ):
             test, attr = sobj.FindAttribute( "AttributeName" )
             if test:
@@ -521,30 +474,28 @@ def ShowMe():
 # Delete selected object(s)
 ###
 def Delete():
-    study = _getStudy()
-    builder = study.NewBuilder()
+    builder = salome.myStudy.NewBuilder()
     if sg.SelectedCount() <= 0: return
     for i in range( sg.SelectedCount() ):
         entry = sg.getSelected( i )
         if entry != '':
-            sobj = study.FindObjectID( entry )
+            sobj = salome.myStudy.FindObjectID( entry )
             if ( sobj ):
                 builder.RemoveObject( sobj )
                 pass
             pass
         pass
-    sg.updateObjBrowser( True )
+    sg.updateObjBrowser()
     pass
 
 ###
 # Rename selected object
 ###
 def Rename():
-    study = _getStudy()
-    builder = study.NewBuilder()
+    builder = salome.myStudy.NewBuilder()
     entry = sg.getSelected( 0 )
     if entry != '':
-        sobj = study.FindObjectID( entry )
+        sobj = salome.myStudy.FindObjectID( entry )
         if ( sobj ):
             name, ok = QInputDialog.getText( sgPyQt.getDesktop(),
                                              "Object name",
@@ -555,7 +506,7 @@ def Rename():
             if not ok or not name: return
             attr = builder.FindOrCreateAttribute( sobj, "AttributeName" )
             attr.SetValue( name )
-            sg.updateObjBrowser( True )
+            sg.updateObjBrowser()
             pass
         pass
     pass