]> SALOME platform Git repositories - tools/eficas.git/blobdiff - Editeur/compomacro.py
Salome HOME
PN
[tools/eficas.git] / Editeur / compomacro.py
index 2c7d3c08957d68cd6430b9852718471052f7125c..543391d67023e9eb493e8ea8d9a56d97727f62f4 100644 (file)
@@ -34,11 +34,10 @@ import convert
 from widgets import askopenfilename
 from widgets import Fenetre,FenetreYesNo
 from widgets import showinfo,showerror
-from Ihm import CONNECTOR
 
 #
 __version__="$Name:  $"
-__Id__="$Id: compomacro.py,v 1.21 2005/06/01 15:18:15 eficas Exp $"
+__Id__="$Id: compomacro.py,v 1.24 2005/11/03 09:03:48 eficas Exp $"
 #
 
 class MACROPanel(panels.OngletPanel):
@@ -70,6 +69,8 @@ class MACROPanel(panels.OngletPanel):
     self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
     nb.tab('Mocles').focus_set()
     nb.setnaturalsize()
+    self.enlevebind()
+    self.creebind()
     self.affiche()
 
   def makeFichierPage(self,page):
@@ -164,7 +165,8 @@ class MACROPanel(panels.OngletPanel):
   def annule_fichier_init(self,event=None):
     """ Restaure dans self.entry le nom de fichier_init"""
     self.entry.delete(0,Tkinter.END)
-    self.entry.insert(0,self.node.item.object.fichier_ini)
+    if self.node.item.object.fichier_ini:
+       self.entry.insert(0,self.node.item.object.fichier_ini)
 
   def browse_fichier_init(self,event=None):
     """ 
@@ -176,6 +178,9 @@ class MACROPanel(panels.OngletPanel):
       self.entry.delete(0,Tkinter.END)
       self.entry.insert(0,file)
     
+  def update_panel(self):
+    if hasattr(self,"entry"):
+       self.annule_fichier_init()
     
 class MACROTreeItem(compooper.EtapeTreeItem):
   """ Cette classe hérite d'une grande partie des comportements
@@ -202,23 +207,16 @@ class INCLUDETreeItemBase(MACROTreeItem):
     #print "makeEdit",self.object.jdc_aux,self.object.jdc_aux.nom
     #print "makeEdit",self.object.jdc_aux.context_ini
     if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
-         showerror("Include vide","L'include doit etre correctement initialisé avant d'etre édité")
-         return
-    self.parent_node=node
+       #L'include n'est pas initialise
+       self.object.build_include(None,"")
     # On cree un nouvel onglet dans le bureau
     appli.bureau.ShowJDC(self.object.jdc_aux,self.object.jdc_aux.nom,
                              label_onglet=None,
                              JDCDISPLAY=macrodisplay.MACRODISPLAY)
-    self.myjdc=appli.bureau.JDCDisplay_courant
-    self.myjdc.fichier=self.object.fichier_ini
-
-  def onClose(self):
-    #print "onClose",self
-    self.appli.bureau.closeJDCDISPLAY(self.myjdc)
 
   def makeView(self,appli,node):
     if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
-         showerror("Include vide","L'include doit etre correctement initialisé avant d'etre édité")
+         showerror("Include vide","L'include doit etre correctement initialisé pour etre visualisé")
          return
     nom=self.object.nom
     if hasattr(self.object,'fichier_ini'):
@@ -227,20 +225,14 @@ class INCLUDETreeItemBase(MACROTreeItem):
        else:
           nom=nom+' '+self.object.fichier_ini
     macdisp=macrodisplay.makeMacroDisplay(appli,self,nom)
-    CONNECTOR.Connect(self.object.jdc_aux,"close",self.onCloseView,(macdisp,))
-
-  def onCloseView(self,macdisp):
-    #print "onCloseView",self,macdisp
-    macdisp.quit()
 
 class INCLUDEPanel(MACROPanel):
   def makeFichierPage(self,page):
     """
     Affiche la page d'onglet correspondant au changement du fichier INCLUDE
     """
-    if self.node.item["UNITE"] is None:
-       # Le numero de l'INCLUDE n'est pas defini
-       titre = Tkinter.Label(page,text="Le numero de l'INCLUDE doit etre defini avec le mot cle UNITE" )
+    if not hasattr(self.node.item.object,'fichier_ini'):
+       titre = Tkinter.Label(page,text="L'INCLUDE n'a pas de fichier associé\nIl faut d'abord choisir un numero d'unité " )
        titre.place(relx=0.5,rely=0.5,anchor='center')
     else:
        MACROPanel.makeFichierPage(self,page)
@@ -248,7 +240,29 @@ class INCLUDEPanel(MACROPanel):
 class INCLUDETreeItem(INCLUDETreeItemBase):
    panel=INCLUDEPanel
 
-class POURSUITETreeItem(INCLUDETreeItemBase): pass
+class POURSUITETreeItem(INCLUDETreeItemBase): 
+  def makeEdit(self,appli,node):
+    if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
+       #La poursuite n'est pas initialisee
+       text="""DEBUT()
+FIN()"""
+       self.object.build_poursuite(None,text)
+    # On cree un nouvel onglet dans le bureau
+    appli.bureau.ShowJDC(self.object.jdc_aux,self.object.jdc_aux.nom,
+                             label_onglet=None,
+                             JDCDISPLAY=macrodisplay.MACRODISPLAY)
+
+  def makeView(self,appli,node):
+    if not hasattr(self.object,"jdc_aux") or self.object.jdc_aux is None:
+         showerror("Poursuite vide","Une POURSUITE doit etre correctement initialisée pour etre visualisée")
+         return
+    nom=self.object.nom
+    if hasattr(self.object,'fichier_ini'):
+       if self.object.fichier_ini is None:
+          nom=nom+' '+"Fichier non défini"
+       else:
+          nom=nom+' '+self.object.fichier_ini
+    macdisp=macrodisplay.makeMacroDisplay(appli,self,nom)
 
 class INCLUDE_MATERIAUTreeItem(INCLUDETreeItemBase):
   rmenu_specs=[("View","makeView"),