X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Editeur%2Fmacrodisplay.py;h=f6b35d6f6d5455c3a18fae6798bcadd9b91b06f8;hb=cc581400dd47a296c9ff28fc00da9d151e43c3fa;hp=3795961557ba70ffd0bbaaad45605c7b73ec1a7a;hpb=860a50d7df32b5c86f9ab536178d030ea882cae5;p=tools%2Feficas.git diff --git a/Editeur/macrodisplay.py b/Editeur/macrodisplay.py index 37959615..f6b35d6f 100644 --- a/Editeur/macrodisplay.py +++ b/Editeur/macrodisplay.py @@ -30,9 +30,12 @@ import Tkinter,Pmw import images import tooltip import Objecttreeitem +import compojdc +import treewidget from widgets import Fenetre -class MACRO2TreeItem(Objecttreeitem.ObjectTreeItem): +#class MACRO2TreeItem(Objecttreeitem.ObjectTreeItem): +class MACRO2TreeItem(compojdc.JDCTreeItem): def IsExpandable(self): return 1 @@ -72,17 +75,18 @@ class MACRO2TreeItem(Objecttreeitem.ObjectTreeItem): return self.object.get_l_noms_etapes() class MacroDisplay: - def __init__(self,appli,jdc,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.jdc=jdc + 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.jdc.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") @@ -93,13 +97,13 @@ class MacroDisplay: self.canvas=self.mainPart.component('canvas') 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,jdc) + 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() 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'): @@ -129,20 +133,69 @@ class MacroDisplay: # On a une chaine avec & en tete => on cree un radiobouton try: command=getattr(node.item,method[1:]) - menu.add_radiobutton(label=label,command=lambda a=self.appli,c=command:c(a)) + menu.add_radiobutton(label=label,command=lambda a=self.appli,c=command,n=node:c(a,n)) if radio == None:radio=number_item except:pass else: try: command=getattr(node.item,method) - menu.add_command(label=label,command=lambda a=self.appli,c=command:c(a)) + menu.add_command(label=label,command=lambda a=self.appli,c=command,n=node:c(a,n)) except:pass # Si au moins un radiobouton existe on invoke le premier if radio:menu.invoke(radio) def quit(self): + try: + self.macroitem.views.remove(self) + except: + pass self.fenetre.destroy() -def makeMacroDisplay(appli,jdc,nom_jdc): - return MacroDisplay(appli,jdc,nom_jdc) +def makeMacroDisplay(appli,macroitem,nom_item): + return MacroDisplay(appli,macroitem,nom_item) + +class TREEITEMINCANVAS: + def __init__(self,object,nom="",parent=None,appli=None,sel=None,rmenu=None): + print "TREEITEMINCANVAS",object + self.object=object + self.nom=nom + self.appli=appli + self.parent=parent + + self.item=MACRO2TreeItem(self.appli,self.nom,self.object) + self.canvas=Pmw.ScrolledCanvas(self.parent,borderframe=1,canvas_background='gray95') + self.canvas.pack(padx=10,pady=10,fill = 'both', expand = 1) + if not sel: + def sel(event=None): + return + 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 + self.jdc=jdc + self.nom_jdc=nom_jdc + self.fichier=None + self.panel_courant=None + self.appli=appli + self.parent=parent + self.node_selected = None + self.modified='n' + + self.pane=Pmw.PanedWidget(self.parent,orient='horizontal') + self.pane.add('treebrowser',min=0.4,size=0.5) + self.pane.add('selected',min=0.4) + self.pane.pack(expand=1,fill='both') + self.tree=TREEITEMINCANVAS(jdc,nom_jdc,self.pane.pane('treebrowser'), + self.appli,self.select_node,self.make_rmenu)