X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=Editeur%2Fpanels.py;h=61b142c9fabd22604aa7aa94cc737c1a311c26c3;hb=fca34723f901f24c7050606374fe286480231f8e;hp=5999c6c9d143bc3a99dc5225c0fd51f277f87e02;hpb=243fbe08b8fbc49d4ae0a5374069e9133b7b4b31;p=tools%2Feficas.git diff --git a/Editeur/panels.py b/Editeur/panels.py index 5999c6c9..61b142c9 100644 --- a/Editeur/panels.py +++ b/Editeur/panels.py @@ -21,8 +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 @@ -33,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 @@ -187,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): @@ -201,10 +209,9 @@ class Panel(Frame) : texte_infos = '' for e in cmd.entites.keys() : if e == name : - texte_infos=cmd.entites[e].fr + texte_infos=getattr(cmd.entites[e],prefs.lang) break if texte_infos == '' : texte_infos="Pas d'infos disponibles" - #EFICAS.affiche_infos(texte_infos) self.parent.appli.affiche_infos(texte_infos) def defMC(self,name): @@ -219,9 +226,8 @@ class Panel(Frame) : def selectCmd(self,name): """ On retrouve la commande sous le curseur pour affichage du fr """ if name != 'COMMENTAIRE' and name != SEPARATEUR: - #EFICAS.affiche_infos(self.parent.appli.cataitem.d_fils[name].fr) - #self.parent.appli.affiche_infos(self.parent.appli.cataitem.d_fils[name].fr) - self.parent.appli.affiche_infos(self.parent.jdc.get_cmd(name).fr) + texte_infos=getattr(self.parent.jdc.get_cmd(name),prefs.lang) + self.parent.appli.affiche_infos(texte_infos) def defCmd(self,name): """ @@ -255,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() # ------------------------------------------------------------------------ @@ -285,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) @@ -317,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)) @@ -338,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""" @@ -429,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): @@ -441,7 +479,6 @@ class OngletPanel(Panel) : return listeCmd def deselectCmd(self,name): - #EFICAS.affiche_infos('') self.parent.appli.affiche_infos('') def execConcept(self): @@ -458,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() @@ -469,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): """ @@ -500,3 +540,4 @@ class Panel_Inactif(Panel): self.bouton_sup.place(relx=0.5,rely=0.8,anchor='center') +if __name__ == "__main__" : pass