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
# 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
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"
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"
}