des sous commandes d'une macro sous forme d'arbre
"""
# Modules Python
-import types
+import types,sys
import Tkinter,Pmw
# Modules EFICAS
import compojdc
import treewidget
from widgets import Fenetre
+from Ihm import CONNECTOR
-#class MACRO2TreeItem(Objecttreeitem.ObjectTreeItem):
class MACRO2TreeItem(compojdc.JDCTreeItem):
- def IsExpandable(self):
- return 1
-
- def GetText(self):
- return " "
-
- def GetIconName(self):
- if self.object.isvalid():
- return "ast-green-square"
- else:
- return "ast-red-square"
-
- def keys(self):
- return range(len(self.object.etapes))
-
- def GetSubList(self):
- sublist=[]
- for key in self.keys():
- liste = self.object.etapes
- try:
- value = liste[key]
- except KeyError:
- continue
- def setfunction(value, key=key, object=liste):
- object[key] = value
- item = self.make_objecttreeitem(self.appli,value.ident() + " : ", value, setfunction)
- sublist.append(item)
- return sublist
-
- def verif_condition_bloc(self):
- # retourne la liste des sous-items dont la condition est valide
- # sans objet pour le JDC
- return [],[]
-
- def get_l_noms_etapes(self):
- """ Retourne la liste des noms des étapes de self.object"""
- return self.object.get_l_noms_etapes()
+ pass
class MacroDisplay:
- def __init__(self,appli,objet,nom_jdc):
+ def __init__(self,appli,macroitem,nom_jdc):
self.fenetre = Tkinter.Toplevel()
self.fenetre.configure(width = 800,height=500)
self.fenetre.protocol("WM_DELETE_WINDOW", self.quit)
self.fenetre.title("Visualisation Macro_Etape")
- self.objet=objet
- self.jdc=objet.jdc_aux
+ self.macroitem=macroitem
+ self.jdc=macroitem.object.jdc_aux
self.nom_jdc=nom_jdc
self.appli=appli
self.barre=Tkinter.Frame(self.fenetre,relief="ridge",bd=2)
self.barre.pack(expand=1,fill=Tkinter.X)
- if self.objet.fichier_text is not None:
+ if self.macroitem.object.fichier_text is not None:
b=Tkinter.Button(self.barre,image=images.get_image("Zoom24"),command=self.visufile)
b.pack(side='left')
tp=tooltip.TOOLTIP(b,"View file")
Pmw.Color.changecolor(self.canvas,background='gray95')
self.mainPart.pack(padx=10,pady=10,fill = 'both', expand = 1)
self.item=MACRO2TreeItem(self.appli,nom_jdc,self.jdc)
- import treewidget
self.tree = treewidget.Tree(self.appli,self.item,self.mainPart,command=None,rmenu=self.make_rmenu)
self.tree.draw()
+ CONNECTOR.Connect(self.jdc,"close",self.onCloseView,())
+
+ def onCloseView(self):
+ self.quit()
def visufile(self):
- Fenetre(self.appli,titre="Source du fichier inclus",texte=self.jdc.fichier_text)
+ Fenetre(self.appli,titre="Source du fichier inclus",texte=self.macroitem.object.fichier_text)
def make_rmenu(self,node,event):
if hasattr(node.item,'rmenu_specs'):
if radio:menu.invoke(radio)
def quit(self):
+ #print "quit",self
+ self.tree.supprime()
+ self.tree=None
self.fenetre.destroy()
-def makeMacroDisplay(appli,jdc,nom_jdc):
- return MacroDisplay(appli,jdc,nom_jdc)
+ #def __del__(self):
+ # print "__del__",self
+
+def makeMacroDisplay(appli,macroitem,nom_item):
+ return MacroDisplay(appli,macroitem,nom_item)
+
+import treeitemincanvas
-class TREEITEMINCANVAS:
+class TREEITEMINCANVAS(treeitemincanvas.TREEITEMINCANVAS):
def __init__(self,object,nom="",parent=None,appli=None,sel=None,rmenu=None):
- print "TREEITEMINCANVAS",object
+ #print "TREEITEMINCANVAS",object
self.object=object
self.nom=nom
self.appli=appli
self.tree=treewidget.Tree(self.appli,self.item,self.canvas,command=sel,rmenu=rmenu)
self.tree.draw()
- def mainloop(self):
- self.parent.mainloop()
-
- def update(self):
- """Cette methode est utilisee pour signaler une mise a jour des objets associes"""
- self.tree.update()
-
import jdcdisplay
class MACRODISPLAY(jdcdisplay.JDCDISPLAY):
def __init__(self,jdc,nom_jdc,appli=None,parent=None):
- print "MACRODISPLAY",jdc
+ #print "MACRODISPLAY",jdc
self.jdc=jdc
self.nom_jdc=nom_jdc
self.fichier=None