Salome HOME
Merge multi-study removal branch.
[samples/pyhello.git] / src / PYHELLOGUI / PYHELLOGUI.py
index 887d43d4ebdd37a26a99801e424105a1e1d7a3a3..d352ddf85b90e0506f8f264e0bc04d51637608ea 100644 (file)
@@ -31,6 +31,8 @@ from qtsalome import *
 
 from PYHELLO_utils import *
 
+import salome
+
 ################################################
 # GUI context class
 # Used to store actions, menus, toolbars, etc...
@@ -107,10 +109,6 @@ class GUIcontext:
 # Global variables
 ################################################
 
-# study-to-context map
-__study2context__   = {}
-# current context
-__current_context__ = None
 # object counter
 __objectid__ = 0
 
@@ -130,27 +128,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:
@@ -160,25 +143,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 not __study2context__.has_key(studyID):
-        __study2context__[studyID] = GUIcontext()
-        pass
-    __current_context__ = __study2context__[studyID]
-    return __current_context__
-
 ###
 # increment object counter in the map
 ###
@@ -194,7 +158,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
 
@@ -205,7 +169,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 )
@@ -218,7 +182,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[SalomePyQt.WT_ObjectBrowser] = Qt.LeftDockWidgetArea
     wm[SalomePyQt.WT_PyConsole]     = Qt.BottomDockWidgetArea
@@ -227,13 +191,13 @@ 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()
+    if verbose() : print "PYHELLOGUI.createPreferences()"
     gid = sgPyQt.addPreference( "General" )
     gid = sgPyQt.addPreference( "Object creation", gid )
     pid = sgPyQt.addPreference( "Default name",  gid, SalomePyQt.PT_String,   "PYHELLO", "def_obj_name" )
@@ -255,28 +219,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:
@@ -473,25 +428,24 @@ def CreateObject():
         name = "%s %d" % ( default_name, __objectid__ )
         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
 
@@ -499,10 +453,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:
@@ -516,30 +469,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",
@@ -550,7 +501,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