]> SALOME platform Git repositories - modules/adao.git/commitdiff
Salome HOME
Bouton Close ok
authorAndré Ribes <andre.ribes@edf.fr>
Wed, 23 Feb 2011 17:09:59 +0000 (18:09 +0100)
committerAndré Ribes <andre.ribes@edf.fr>
Wed, 23 Feb 2011 17:09:59 +0000 (18:09 +0100)
src/daSalome/daGUI/daEficasWrapper/adaoEficasWrapper.py
src/daSalome/daGUI/daGuiImpl/adaoGuiManager.py
src/daSalome/daGUI/daUtils/adaoEficasEvent.py

index b4770869568e0aa698c0425692e4dd3d7495923d..b724a933e02535566c80d39a429bf0e1cde542ca 100644 (file)
@@ -118,6 +118,21 @@ class AdaoEficasWrapper(eficasSalome.MyEficas):
           adao_case.eficas_editor = self.viewmanager.dict_editors[index]
           self.notifyObserver(EficasEvent.EVENT_TYPES.OPEN, callbackId=adao_case)
 
+    def adaoFileClose(self, adao_case):
+
+        index = self.viewmanager.myQtab.currentIndex()
+        close_editor = self.viewmanager.dict_editors[index]
+        res = self.viewmanager.handleClose(self)
+        if res != 2: # l utilsateur a annule
+          if close_editor.fichier is None:
+            # Cas fichier vide
+            print "cas fichier vide"
+            self.notifyObserver(EficasEvent.EVENT_TYPES.CLOSE, callbackId=close_editor)
+          else:
+            # Cas fichier existant
+            print "cas fichier existant"
+            self.notifyObserver(EficasEvent.EVENT_TYPES.CLOSE, callbackId=close_editor)
+
 #######
 #
 # Méthodes auxiliares de gestion du GUI Eficas pour synchronisation
index 4d9e5254536a6b8ccf50f00de0ac9959cde17c1f..88c0caf485ba78e47d173c527b51e55f1d7f2aa9 100644 (file)
@@ -254,6 +254,35 @@ class AdaoCaseManager(EficasObserver):
     # Ajout du cas
     self.cases[adao_case.name] = adao_case
 
+#######
+#
+# Gestion de la fermeture d'un cas
+# 1: la fonction closeAdaoCase est appelée par le GUI SALOME
+# 2: la fonction _processEficasCloseEvent est appelée par le manager EFICAS
+#
+#######
+
+  def closeAdaoCase(self):
+    adaoLogger.debug("Fermeture d'un cas")
+    # A priori, l'utilisateur s'attend à sauvegarder le cas qui est ouvert
+    # dans le GUI d'Eficas
+    self.harmonizeSelectionFromEficas()
+    salomeStudyItem = adaoGuiHelper.getSelectedItem()
+    for case_name, adao_case in self.cases.iteritems():
+      if adao_case.salome_study_item.GetID() == salomeStudyItem.GetID():
+        self.eficas_manager.adaoFileClose(adao_case)
+        break
+
+  def _processEficasCloseEvent(self, eficasWrapper, eficasEvent):
+    editor = eficasEvent.callbackId
+    # Recuperation du cas
+    adao_case = self.cases[editor]
+    # Suppression de l'objet dans l'étude
+    adaoStudyEditor.removeItem(adao_case.salome_study_id, adao_case.salome_study_item)
+    adaoGuiHelper.refreshObjectBrowser()
+    # Suppression du cas
+    del self.cases[editor]
+
 #######
 #
 # Méthodes secondaires permettant de rediriger les évènements
@@ -266,7 +295,7 @@ class AdaoCaseManager(EficasObserver):
       EficasEvent.EVENT_TYPES.CLOSE      : "_processEficasCloseEvent",
       EficasEvent.EVENT_TYPES.SAVE       : "_processEficasSaveEvent",
       EficasEvent.EVENT_TYPES.NEW        : "_processEficasNewEvent",
-      EficasEvent.EVENT_TYPES.DESTROY    : "_processEficasDestroyEvent",
+      EficasEvent.EVENT_TYPES.CLOSE      : "_processEficasCloseEvent",
       EficasEvent.EVENT_TYPES.OPEN       : "_processEficasOpenEvent",
       EficasEvent.EVENT_TYPES.TABCHANGED : "_processEficasTabChanged",
       EficasEvent.EVENT_TYPES.REOPEN     : "_processEficasReOpenEvent"
@@ -543,7 +572,6 @@ class AdaoGuiActionImpl(EficasObserver):
         EficasEvent.EVENT_TYPES.CLOSE   : "_processEficasCloseEvent",
         EficasEvent.EVENT_TYPES.SAVE    : "_processEficasSaveEvent",
         EficasEvent.EVENT_TYPES.NEW     : "_processEficasNewEvent",
-        EficasEvent.EVENT_TYPES.DESTROY : "_processEficasDestroyEvent",
         EficasEvent.EVENT_TYPES.OPEN    : "_processEficasOpenEvent",
         EficasEvent.EVENT_TYPES.REOPEN  : "_processEficasReOpenEvent"
         }
index f16ced47c5392ba54e0ea0b5d806cd032f369dd8..f73925300466c76a71ed223db9e82cf39bc11e6d 100644 (file)
@@ -49,7 +49,7 @@ class EficasEvent:
     EVENT_TYPES=Enumerate([
         'CLOSE',
         'SAVE',
-        'DESTROY',
+        'CLOSE',
         'OPEN',
         'REOPEN',
         'NEW',