]> SALOME platform Git repositories - modules/adao.git/commitdiff
Salome HOME
Nettoyage code
authorAndré Ribes <andre.ribes@edf.fr>
Tue, 22 Feb 2011 09:19:30 +0000 (10:19 +0100)
committerAndré Ribes <andre.ribes@edf.fr>
Tue, 22 Feb 2011 09:19:30 +0000 (10:19 +0100)
- Utilisation du adao_logger
- Suppression de l'ancien heritage vers le logiciel Eficas

configure.ac
src/daSalome/daGUI/ADAOGUI.py
src/daSalome/daGUI/daEficasWrapper/Makefile.am
src/daSalome/daGUI/daEficasWrapper/eficasWrapper.py [new file with mode: 0644]
src/daSalome/daGUI/daEficasWrapper/eficasWrapper.py.in [deleted file]
src/daSalome/daGUI/daGuiImpl/ADAOGUI_impl.py
src/daSalome/daGUI/daGuiImpl/adaoGuiManager.py

index 5b617541cf685f804469cf26c5490bc83ebcce11..9c226c8ed26ecbe4bfce09e0980ac02fdb7e3b98 100644 (file)
@@ -117,7 +117,6 @@ AC_CONFIG_FILES([
         src/daSalome/daGUI/Makefile
         src/daSalome/daGUI/daGuiImpl/Makefile
         src/daSalome/daGUI/daEficasWrapper/Makefile
-        src/daSalome/daGUI/daEficasWrapper/eficasWrapper.py
         src/daSalome/daGUI/daGuiComponent/Makefile
         src/tests/Makefile
         src/tests/daSalome/Makefile
index 0c7b9f1ada09204fed863010609539a45aed40d4..24ae044285151a84a48edf23d91ff026302632d1 100644 (file)
@@ -30,48 +30,66 @@ reasons:
 """
 
 from daGuiImpl import ADAOGUI_impl as GuiImpl
+from daGuiImpl import adaoLogger
 
+adaoLogger.debug("Import ADAOGUI")
 
 # called when module is initialized
 # perform initialization actions
 def initialize():
-    GuiImpl.initialize()
+  adaoLogger.debug("initialize")
+  GuiImpl.initialize()
 
 # called when module is initialized
 # return map of popup windows to be used by the module
 def windows():
-    return GuiImpl.windows()
+  adaoLogger.debug("windows")
+  return GuiImpl.windows()
+
+def views():
+  adaoLogger.debug("views")
+  return GuiImpl.views()
 
 # called when module is initialized
 # export module's preferences
 def createPreferences():
-    GuiImpl.createPreferences()
+  adaoLogger.debug("createPreferences")
+  GuiImpl.createPreferences()
 
 # called when module is activated
 # returns True if activating is successfull and False otherwise
 def activate():
-    return GuiImpl.activate()
+  adaoLogger.debug("activate")
+  return GuiImpl.activate()
 
 # called when module is deactivated
 def deactivate():
-    GuiImpl.deactivate()
+  adaoLogger.debug("deactivate")
+  GuiImpl.deactivate()
 
 # called when active study is changed
 # active study ID is passed as parameter
 def activeStudyChanged( studyID ):
-    GuiImpl.activeStudyChanged( studyID )
+  adaoLogger.debug("activeStudyChanged")
+  GuiImpl.activeStudyChanged( studyID )
 
 # called when popup menu is invoked
 # popup menu and menu context are passed as parameters
 def createPopupMenu( popup, context ):
-    GuiImpl.createPopupMenu(popup, context )
+  adaoLogger.debug("createPopupMenu")
+  GuiImpl.createPopupMenu(popup, context )
 
 # called when GUI action is activated
 # action ID is passed as parameter
 def OnGUIEvent(commandID) :
-    GuiImpl.OnGUIEvent(commandID)
+  adaoLogger.debug("OnGUIEvent")
+  GuiImpl.OnGUIEvent(commandID)
 
 # called when module's preferences are changed
 # preference's resources section and setting name are passed as parameters
 def preferenceChanged( section, setting ):
-    GuiImpl.preferenceChanged( section, setting )
+  adaoLogger.debug("preferenceChanged")
+  GuiImpl.preferenceChanged( section, setting )
+
+def activeViewChanged(toto, myView):
+  adaoLogger.debug("activeViewChanged")
index 2450e5a6483d7a8c48b0f6d50e27d8b4152fed48..eebc5df2aefffc101def91f1bcf988a7ad0249bb 100644 (file)
@@ -27,7 +27,3 @@ mypkgpython_PYTHON = \
                     adaoEficasWrapper.py \
                     adaoWrapperUtils.py
 
-EXTRA_DIST = eficasWrapper.py.in
-
-
-
diff --git a/src/daSalome/daGUI/daEficasWrapper/eficasWrapper.py b/src/daSalome/daGUI/daEficasWrapper/eficasWrapper.py
new file mode 100644 (file)
index 0000000..c5b792a
--- /dev/null
@@ -0,0 +1,83 @@
+# -*- coding: iso-8859-1 -*-
+#  Copyright (C) 2010 EDF R&D
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+
+__author__="aribes/gboulant"
+
+from daGuiImpl import adaoLogger
+
+class DevelException(Exception):
+    def __init__(self, message):
+        """Canonical constructor"""
+        Exception.__init__(self,message)
+
+#
+# ==============================================================================
+# Interface of an eficas observer (for implementing the subject/observer pattern)
+# ==============================================================================
+#
+from daGuiImpl.enumerate import Enumerate
+class EficasObserver:
+    """
+    This class specifies the interface of an eficas observer. See example at the
+    bottom of this file.
+    """
+    def processEficasEvent(self, eficasWrapper, eficasEvent):
+        """
+        This function should be implemented in the concrete Observer.
+        @param eficasWrapper the instance of the source EficasWrapper
+        @param eficasEvent the emitted event (instance of EficasEvent)
+        """
+        raise DevelException("processEficasEvent not implemented yet")
+
+class EficasEvent:
+    EVENT_TYPES=Enumerate([
+        'CLOSE',
+        'SAVE',
+        'DESTROY',
+        'OPEN',
+        'REOPEN',
+        'NEW'
+    ])
+
+    def __init__(self,eventType,callbackId=None):
+        """
+        Creates an eficas event to be used by an EficasWrapper to notify an
+        EficasObserver.
+
+        The eventType depends of the context of creation. It specify the nature
+        of the event inside EficasWrapper that triggers the creation of this instance.
+
+        The callbackId is an object used by the EficasObserver to map the
+        notification (this received event) with the initial event (callback)
+        This object can be anything and has to be defined through a convention
+        that both the EficasWrapper and the EficasObserver can understand.
+        Typically, the eficas observer set the callback id to the eficas wrapper
+        before running the asynchronous show. Then, when an event is raised by
+        the eficas wrapper toward its observer, it embeds the callback id so that
+        the observer can match the received event to the initial trigger context.
+
+        @param the eventType to be choosen in the EVENT_TYPES
+        @param callbackId an arbitrary data object
+        """
+        if not self.EVENT_TYPES.isValid(eventType):
+            raise DevelException("The event type "+str(eventType)+" is not defined")
+
+        self.eventType = eventType
+        self.callbackId = callbackId
diff --git a/src/daSalome/daGUI/daEficasWrapper/eficasWrapper.py.in b/src/daSalome/daGUI/daEficasWrapper/eficasWrapper.py.in
deleted file mode 100644 (file)
index b7c547c..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-#  Copyright (C) 2010 EDF R&D
-#
-#  This library is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU Lesser General Public
-#  License as published by the Free Software Foundation; either
-#  version 2.1 of the License.
-#
-#  This library is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  Lesser General Public License for more details.
-#
-#  You should have received a copy of the GNU Lesser General Public
-#  License along with this library; if not, write to the Free Software
-#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-#
-#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-#
-
-__author__="aribes/gboulant"
-
-# HACK - Pour l'instant
-import logging
-logging.basicConfig(level=logging.DEBUG, format='%(levelname)-8s %(message)s')
-logger = logging.getLogger()
-
-class DevelException(Exception):
-    def __init__(self, message):
-        """Canonical constructor"""
-        Exception.__init__(self,message)
-
-#
-# ==============================================================================
-# Interface of an eficas observer (for implementing the subject/observer pattern)
-# ==============================================================================
-#
-from daGuiImpl.enumerate import Enumerate
-class EficasObserver:
-    """
-    This class specifies the interface of an eficas observer. See example at the
-    bottom of this file.
-    """
-    def processEficasEvent(self, eficasWrapper, eficasEvent):
-        """
-        This function should be implemented in the concrete Observer.
-        @param eficasWrapper the instance of the source EficasWrapper
-        @param eficasEvent the emitted event (instance of EficasEvent)
-        """
-        raise DevelException("processEficasEvent not implemented yet")
-
-class EficasEvent:
-    EVENT_TYPES=Enumerate([
-        'CLOSE',
-        'SAVE',
-        'DESTROY',
-        'OPEN',
-        'REOPEN',
-        'NEW'
-    ])
-
-    def __init__(self,eventType,callbackId=None):
-        """
-        Creates an eficas event to be used by an EficasWrapper to notify an
-        EficasObserver.
-
-        The eventType depends of the context of creation. It specify the nature
-        of the event inside EficasWrapper that triggers the creation of this instance.
-        
-        The callbackId is an object used by the EficasObserver to map the
-        notification (this received event) with the initial event (callback)
-        This object can be anything and has to be defined through a convention
-        that both the EficasWrapper and the EficasObserver can understand.
-        Typically, the eficas observer set the callback id to the eficas wrapper
-        before running the asynchronous show. Then, when an event is raised by
-        the eficas wrapper toward its observer, it embeds the callback id so that
-        the observer can match the received event to the initial trigger context.
-        
-        @param the eventType to be choosen in the EVENT_TYPES
-        @param callbackId an arbitrary data object
-        """
-        if not self.EVENT_TYPES.isValid(eventType):
-            raise DevelException("The event type "+str(eventType)+" is not defined")
-
-        self.eventType = eventType
-        self.callbackId = callbackId
-
-#
-# ==============================================================================
-# Definition of an Eficas wrapper for integration to the SALOME framework
-# This wrapper is not specific to the OMA context and is intended not to be.
-# ==============================================================================
-#
-eficasPath = '@EFICAS_DIR@'
-import os
-if os.environ.has_key( "EFICAS_ROOT"):
-    eficasPath = os.environ["EFICAS_ROOT"]
-import sys
-sys.path[:0]=[eficasPath,
-              os.path.join( eficasPath,'Editeur'),
-              os.path.join( eficasPath,'UiQT4'),
-             ]
-
-import Editeur
-from InterfaceQT4 import qtEficas
-
-class EficasWrapper(qtEficas.Appli):
-
-    def __init__(self, parent, code , fichier=None, module="Eficas", version=None, salome=0):
-
-        self.__codetype = code
-        self.__jdc = None
-        self.__salome = salome
-        self.__parent = parent
-
-        # variables for the notification procedure
-        self.__observer  = None
-        self.__callbackId = None
-
-        # The convention is that the python pref associated to the code are in
-        # a folder whose name is the code name with lower letters but the
-        # first that is in capital letter.
-        pathCode=code[0]+code[1:].lower()
-        sys.path[:0]=[os.path.join(eficasPath,pathCode)]
-
-        if Editeur.__dict__.has_key( 'session' ):
-            from Editeur import session
-            eficasArg = []
-            eficasArg += sys.argv
-            if fichier:
-                eficasArg += [ fichier ]
-            if version:
-                eficasArg += [ "-c", version ]
-            else :
-                print "noversion"
-            session.parse( eficasArg )
-
-    #    qtEficas.Appli.__init__( self,code=code,salome=salome,parent=parent)
-    def init_gui(self):
-      import InterfaceQT4.readercata
-      if hasattr(InterfaceQT4.readercata,'reader') :
-         del InterfaceQT4.readercata.reader
-      qtEficas.Appli.__init__( self,code=self.__codetype,salome=self.__salome,parent=self.__parent)
-
-    def setCodeType(self,code):
-        self.__codetype = code
-
-    def setJdc(self, value, name=None):
-        self.__jdc = value
-        if self.__jdc is None:
-            editor = self.viewmanager.getEditor()
-            editor.fichier = os.path.abspath(unicode("/tmp/eficasfile.comm"))
-        else:
-            fichier = os.path.abspath(unicode("/tmp/eficasfile.comm"))
-            f = open(fichier,'w')
-            f.write(self.__jdc)
-            f.close()
-            editor=self.viewmanager.getEditor( fichier,units=None)
-
-        # _TODO_ set the name and indicate that it's not used to ask a filename
-        #index=self.viewmanager.myQtab.currentIndex()
-        #self.viewmanager.myQtab.setTabText(index,fileName)
-
-    def getJdc(self):
-        # First update the jdc attribute and return the value
-        self.__jdc = self.__getJdcText()
-        return self.__jdc
-
-    # ==========================================================================
-    # Function for the notification interface between an EficasWrapper an an
-    # EficasObserver.
-    #
-    def addObserver(self, observer):
-        """
-        In fact, only one observer may be defined for the moment.
-        """
-        try:
-            observer.processEficasEvent
-        except:
-            raise DevelException("the argument should implement the function processEficasEvent")
-        self.__observer = observer
-
-    def notifyObserver(self, eventType, callbackId=None):
-      if eventType != EficasEvent.EVENT_TYPES.NEW and eventType != EficasEvent.EVENT_TYPES.OPEN:
-        if callbackId is None :
-          eficasEvent = EficasEvent(eventType, self.getCallbackId())
-        else:
-          eficasEvent = EficasEvent(eventType, callbackId)
-      else:
-        eficasEvent = EficasEvent(eventType)
-      self.__observer.processEficasEvent(self, eficasEvent)
-
-    def setCallbackId(self, callbackId):
-        """
-        This function should be used to define the callback identifier that
-        will be used by the observer to map the notifcation event with the source
-        event.
-        @param callbackId Any object to be used in the notification interface
-        """
-        self.__callbackId = callbackId
-
-    def getCallbackId(self):
-        return self.__callbackId
-
-    # ==========================================================================
-    # Functions to handle the Eficas callback functions
-    #
-    def closeEvent(self,event):
-        """
-        This method is a notification function called at the end of the eficas
-        processes quit/exit.
-        This close event has to be overload to handle the management of data
-        saving process, and to prevent the application from bug when reopen
-        eficas after a first close operation inside SALOME.
-        @overload
-        """
-        # Get the data and notify the observers of the event
-        # _TODO_ get data
-        #self.notifyObserver(EficasEvent.EVENT_TYPES.CLOSE)
-        self.fileCloseAll()
-
-        # This is to prevent from bug when reopen eficas after a first close
-        # operation inside SALOME.
-        import InterfaceQT4.readercata
-        if hasattr(InterfaceQT4.readercata,'reader') :
-           del InterfaceQT4.readercata.reader
-        event.accept()
-
-    def fileNew(self):        
-        """
-        @overload
-        """
-        logger.debug("This is my fileNew")
-        qtEficas.Appli.fileNew(self)
-        # Notify the observers of the event - after to be able to handled with editor
-        # If needed
-        self.notifyObserver(EficasEvent.EVENT_TYPES.NEW)
-
-    def fileSave(self):
-        """
-        @overload
-        """
-        logger.debug("This is my fileSave")
-        # Notify the observers of the event
-        self.notifyObserver(EficasEvent.EVENT_TYPES.SAVE)
-
-        qtEficas.Appli.fileSave(self)
-
-
-    def fileSaveAs(self):
-        """
-        @overload
-        """
-        logger.debug("This is my fileSaveAs")
-        self.fileSave()
-
-    def fileClose(self):
-        """
-        @overload
-        """
-        logger.debug("This is my fileClose")
-        qtEficas.Appli.fileClose(self)
-
-    def fileCloseAll(self):
-        """
-        @overload
-        """
-        logger.debug("This is my fileCloseAll")
-        qtEficas.Appli.fileCloseAll(self)
-
-    # ==========================================================================
-    # helper functions
-    #
-    def __getJdcText(self):
-        """
-        This function returns the current jdc in text format.
-        """
-        index=self.viewmanager.myQtab.currentIndex()
-        if index < 0 : return
-
-        editor=self.viewmanager.dict_editors[index]
-        format = self.format_fichier
-        strSource = str( editor.get_text_JDC(format) )
-        return strSource
-
-    def displayNew(self):
-        self.fileNew()
-        self.show()
-
-    # ==========================================================================
-    # Test functions ...
-    #
-    def __displayData(self, textjdc):
-        index=self.viewmanager.myQtab.currentIndex()
-        if index < 0 : return
-
-        editor=self.viewmanager.dict_editors[index]
-
-        jdc=editor.readercata.cata[0].JdC(procedure=textjdc,appli=editor,cata=editor.readercata.cata,cata_ord_dico=editor.readercata.cata_ordonne_dico,nom="JDC name",rep_mat=editor.CONFIGURATION.rep_mat)
-        self.viewmanager.getEditor("toto.com",jdc)
-
-
index 8168608acc9fc36bf1a6ec5470bd04ee58a1ef29..8ff7d13cc43506aa9247b33e4ccf2b8552125ba0 100644 (file)
@@ -80,7 +80,8 @@ def windows():
 # called when module is initialized
 # return list of 2d/3d views to be used ny the module
 def views():
-    return []
+  print "views"
+  return []
 
 def createPreferences():
     """
@@ -125,6 +126,7 @@ def OnGUIEvent(actionId) :
     toolbar button). The actionId value is the ID associated to the item.
     """
     pass
+    print "OnGUIEvent", actionId
     ctx = _setContext( sgPyQt.getStudyId() )
     ctx.actionImpl.processAction(actionId)
 
@@ -136,7 +138,8 @@ def preferenceChanged( section, setting ):
 # called when active view is changed
 # view ID is passed as parameter
 def activeViewChanged( viewID ):
-    pass
+  print "activeViewChanged", viewID
+  pass
 
 # called when active view is cloned
 # cloned view ID is passed as parameter
index 128a2b8fdfd4c8a91eb3257b3faf7c34917080ee..de020bc0922ed9412ab147a8ef375f832ab7ebb9 100644 (file)
@@ -52,6 +52,7 @@ UI_ELT_IDS = Enumerate([
         'NEW_ADAOCASE_ID',
         'OPEN_ADAOCASE_ID',
         'SAVE_ADAOCASE_ID',
+        'SAVE_AS_ADAOCASE_ID',
         'CLOSE_ADAOCASE_ID',
 
         'EDIT_ADAOCASE_POP_ID',
@@ -62,6 +63,7 @@ ACTIONS_MAP={
     UI_ELT_IDS.NEW_ADAOCASE_ID:"newAdaoCase",
     UI_ELT_IDS.OPEN_ADAOCASE_ID:"openAdaoCase",
     UI_ELT_IDS.SAVE_ADAOCASE_ID:"saveAdaoCase",
+    UI_ELT_IDS.SAVE_AS_ADAOCASE_ID:"saveasAdaoCase",
     UI_ELT_IDS.CLOSE_ADAOCASE_ID:"closeAdaoCase",
 
     UI_ELT_IDS.EDIT_ADAOCASE_POP_ID:"editAdaoCase",
@@ -95,6 +97,9 @@ class AdaoGuiUiComponentBuilder:
         a = sgPyQt.createAction( UI_ELT_IDS.SAVE_ADAOCASE_ID, "Save case", "Save case", "Save an adao case", "" )
         sgPyQt.createMenu(a, mid)
         sgPyQt.createTool(a, tid)
+        a = sgPyQt.createAction( UI_ELT_IDS.SAVE_AS_ADAOCASE_ID, "Save as case", "Save as case", "Save an adao case as", "" )
+        sgPyQt.createMenu(a, mid)
+        sgPyQt.createTool(a, tid)
         a = sgPyQt.createAction( UI_ELT_IDS.CLOSE_ADAOCASE_ID, "Close case", "Close case", "Close an adao case", "" )
         sgPyQt.createMenu(a, mid)
         sgPyQt.createTool(a, tid)
@@ -280,6 +285,11 @@ class AdaoGuiActionImpl(EficasObserver):
       adaoLogger.debug("saveAdaoCase")
       global __cases__
 
+    def saveasAdaoCase(self):
+
+      adaoLogger.debug("saveasAdaoCase")
+      global __cases__
+
     def exportCaseToYACS(self):
 
       adaoLogger.debug("exportCaseToYACS")