X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Editeur%2Fpanels.py;h=61b142c9fabd22604aa7aa94cc737c1a311c26c3;hb=fca34723f901f24c7050606374fe286480231f8e;hp=413a34021aadd7c460ad833a33dac3ab665c8013;hpb=e095b1796f3b02388823f3334f68218169855104;p=tools%2Feficas.git diff --git a/Editeur/panels.py b/Editeur/panels.py index 413a3402..61b142c9 100644 --- a/Editeur/panels.py +++ b/Editeur/panels.py @@ -21,9 +21,13 @@ import string import os from Tkinter import * import Pmw +import tkMessageBox +import time from widgets import ListeChoix +from widgets import ListeChoixParGroupes import prefs +import options SEPARATEUR = '-'*30 @@ -34,6 +38,9 @@ class Panel(Frame) : Elle est toujours dérivée. """ def __init__(self,parent,panneau,node) : + # Le parent d'un panel est un objet de la classe JDCDISPLAY ou derivee + # ou un objet qui a les attributs : appli (de classe APPLI ou derivee), + # modified et la methode init_modif self.parent=parent self.panneau = panneau self.node=node @@ -188,8 +195,8 @@ class Panel(Frame) : """ Suppression du noeud courant """ + # On signale au parent du panel (le JDCDisplay) une modification if self.parent.modified == 'n' : self.parent.init_modif() - pere = self.node.parent self.node.delete() def affiche(self): @@ -254,11 +261,24 @@ class OngletPanel(Panel) : self._any.focus() except: pass + elif page == 'Commande': + try: + self.command_entry.component('entry').focus() + except: + pass + def affiche(self): page=self.nb.getcurselection() self.nb.page(page).focus_set() - if page == 'Concept':self._any.component('entry').focus_set() + if page == 'Concept': + try: +# _any est un pointeur sur entry +# component est une methode de pmw +# a priori, jamais ok + self._any.component('entry').focus_set() + except: + pass self.tkraise() # ------------------------------------------------------------------------ @@ -284,7 +304,7 @@ class OngletPanel(Panel) : self._any.focus() # aide associée au panneau bulle_aide="""Tapez dans la zone de saisie le nom que vous voulez donner - au concept retoruné par l'opérateur courant et pressez pour valider""" + au concept retounré par l'opérateur courant et pressez pour valider""" page.bind("", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) page.bind("",self.parent.appli.efface_aide) @@ -316,18 +336,30 @@ class OngletPanel(Panel) : but_apres.grid(column = 1,row =3) def makeCommandePage(self,page): + """ + Cree l'onglet + """ frame1 = Frame(page,height = 20) frame1.pack(side='top',fill='x') label = Label(frame1,text ="La commande choisie sera ajoutée\n APRES la commande courante") label.pack(side='top') frame2 = Frame(page) frame2.pack(side='top',fill='both',expand=1) - liste_cmd = self.get_liste_cmd() liste_commandes = (("",self.selectCmd), ("",self.deselectCmd), ("",self.defCmd)) - Liste = ListeChoix(self,frame2,liste_cmd,liste_commandes = liste_commandes,filtre='oui',titre = "Commandes") + if options.affichage_commandes == "alphabetic": + liste_cmd = self.get_liste_cmd() + Liste = ListeChoix(self,frame2,liste_cmd,liste_commandes = liste_commandes, + filtre='oui',titre = "Commandes") + else: + liste_groupes=self.node.item.object.niveau.definition.liste_groupes + dict_groupes=self.node.item.object.niveau.definition.dict_groupes + Liste = ListeChoixParGroupes(self,frame2,liste_groupes,dict_groupes, + liste_commandes = liste_commandes, + filtre='oui',titre = "Commandes") Liste.affiche_liste() + self.command_entry=Liste.entry # aide associée au panneau bulle_aide="""Double-cliquez sur la commande que vous voulez ajouter au jeu de commandes""" Liste.MCbox.bind("", lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) @@ -337,11 +369,19 @@ class OngletPanel(Panel) : """ Crée la page correspondant à un objet de type JDC """ - liste_cmd = self.get_liste_cmd() liste_commandes = (("",self.selectCmd), ("",self.deselectCmd), ("",self.defCmdFirst)) - Liste = ListeChoix(self,page,liste_cmd,liste_commandes = liste_commandes,filtre='oui',titre = "Commandes") + if options.affichage_commandes == "alphabetic": + liste_cmd = self.get_liste_cmd() + Liste = ListeChoix(self,page,liste_cmd,liste_commandes = liste_commandes, + filtre='oui',titre = "Commandes") + else: + liste_groupes=self.node.item.object.niveau.definition.liste_groupes + dict_groupes=self.node.item.object.niveau.definition.dict_groupes + Liste = ListeChoixParGroupes(self,page,liste_groupes,dict_groupes, + liste_commandes = liste_commandes, + filtre='oui',titre = "Commandes") Liste.affiche_liste() # aide associée au panneau bulle_aide="""Double-cliquez sur la commande que vous voulez ajouter au jeu de commandes""" @@ -428,7 +468,6 @@ class OngletPanel(Panel) : command = self.comment_commande).place(relx=0.5,rely=0.5,anchor='center') def deselectMC(self,name): - #EFICAS.affiche_infos('') self.parent.appli.affiche_infos('') def get_liste_cmd_old(self): @@ -440,7 +479,6 @@ class OngletPanel(Panel) : return listeCmd def deselectCmd(self,name): - #EFICAS.affiche_infos('') self.parent.appli.affiche_infos('') def execConcept(self): @@ -457,7 +495,6 @@ class OngletPanel(Panel) : # Pourquoi node.etape ??? #test,mess = self.node.etape.item.nomme_sd(nom) test,mess = self.node.item.nomme_sd(nom) - #EFICAS.affiche_infos(mess) self.parent.appli.affiche_infos(mess) self.node.racine.update() @@ -468,10 +505,14 @@ class OngletPanel(Panel) : """ Cette méthode a pour but de commentariser la commande pointée par self.node """ - commande_comment = self.node.item.get_objet_commentarise() - #XXX il faudrait ici aussi eviter l'appel à EFICAS - self.parent.appli.bureau.JDCDisplay_courant.ReplaceObjectNode(self.node,commande_comment,None) - #EFICAS.JDCDisplay_courant.ReplaceObjectNode(self.node,commande_comment,None) + # On traite par une exception le cas où l'utilisateur final cherche à désactiver + # (commentariser) un commentaire. + try : + commande_comment = self.node.item.get_objet_commentarise() + self.parent.appli.bureau.JDCDisplay_courant.ReplaceObjectNode(self.node,commande_comment,None) + except Exception,e: + tkMessageBox.showerror("TOO BAD",str(e)) + return class Panel_Inactif(Panel): """ @@ -499,3 +540,4 @@ class Panel_Inactif(Panel): self.bouton_sup.place(relx=0.5,rely=0.8,anchor='center') +if __name__ == "__main__" : pass