X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Editeur%2Fjdcdisplay.py;h=863c5b61024944fa1f38712ddb27693b706ecdb2;hb=3399156799eaae0440b876af5d08ec2ef69f4462;hp=da4d1ac82486a5c00b079de03517698e74d470a2;hpb=037f82b0d1d67228855680cab1d0a0f233c3393e;p=tools%2Feficas.git diff --git a/Editeur/jdcdisplay.py b/Editeur/jdcdisplay.py index da4d1ac8..863c5b61 100644 --- a/Editeur/jdcdisplay.py +++ b/Editeur/jdcdisplay.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -24,13 +25,14 @@ """ # Modules Python import types +import traceback import Tkinter import Pmw # Modules Eficas import panels from treeitemincanvas import TREEITEMINCANVAS -from tkMessageBox import showinfo,showerror +from widgets import showinfo,showerror class CONFIG: isdeveloppeur='NON' @@ -108,13 +110,13 @@ class JDCDISPLAY: # 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) @@ -127,12 +129,13 @@ class JDCDISPLAY: """ if node is not self.node_selected : self.create_panel(node) - # on conserve la trace du noeud sélectionné et de celui d'avant - if self.node_selected : - self.ancien_node = self.node_selected - self.node_selected = node - else: - self.ancien_node = self.node_selected = node + self.node_selected = node + ## on conserve la trace du noeud sélectionné et de celui d'avant + #if self.node_selected : + #self.ancien_node = self.node_selected + #self.node_selected = node + #else: + #self.ancien_node = self.node_selected = node def create_panel(self,node): """ @@ -156,6 +159,9 @@ class JDCDISPLAY: z.show_stats() z.show_cycles() + if node is None: + self.panel_courant=None + return self.panel_courant if node.item.isactif(): if hasattr(node.item,"panel"): @@ -196,9 +202,10 @@ class JDCDISPLAY: else: self.init_modif() node.delete() - if nom_sd: - child.item.nomme_sd(nom_sd) - child.update() + #if nom_sd: + #child.item.nomme_sd(nom_sd) + child.select() + #child.update() def doCut(self): """ @@ -227,82 +234,32 @@ class JDCDISPLAY: Lance la copie de l'objet placé dans self.appli.noeud_a_editer Ne permet que la copie d'objets de type Commande ou MCF """ - objet_a_copier = self.appli.noeud_a_editer.item.get_copie_objet() - if objet_a_copier.__class__.__name__ in ('ETAPE','PROC_ETAPE','MACRO_ETAPE','FORM_ETAPE'): - self.doPaste_Commande(objet_a_copier) - elif objet_a_copier.__class__.__name__ == "MCFACT": - self.doPaste_MCF(objet_a_copier) - else: - showinfo("Copie impossible", - "Vous ne pouvez copier que des commandes ou des mots-clés facteurs !") - return + try: + child=self.appli.noeud_a_editer.doPaste(self.node_selected) + except: + traceback.print_exc() + showinfo("Action de coller impossible", + "L'action de coller apres un tel objet n'est pas permise") + return - def doPaste_Commande(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument qui est nécessairement - une commande - """ - # il faut vérifier que le noeud sélectionné (noeud courant) est bien - # une commande ou un JDC sinon la copie est impossible ... - if self.node_selected.item.isCommande() : - child = self.node_selected.append_brother(objet_a_copier,retour='oui') - elif self.node_selected.item.isJdc() : - child = self.node_selected.append_child(objet_a_copier,pos='first', - retour='oui') - else: - showinfo("Copie impossible", - "Vous ne pouvez coller la commande copiée à ce niveau de l'arborescence !") - self.appli.affiche_infos("Copie refusée") - return - # il faut déclarer le JDCDisplay_courant modifié - self.init_modif() - # suppression éventuelle du noeud sélectionné - if self.edit == "couper": - self.appli.noeud_a_editer.delete() if child == 0: - # la copie est impossible if self.appli.message != '': - showerror("Copie refusée",self.appli.message) - self.appli.message = '' - self.appli.affiche_infos("Copie refusée") - # on rend la copie à nouveau possible en libérant le flag edit - self.edit="copier" - - def doPaste_MCF(self,objet_a_copier): - """ - Réalise la copie de l'objet passé en argument qui est nécessairement un MCF - """ - if self.node_selected.item.isCommande() : - # le noeud courant est une ETAPE - child = self.node_selected.append_child(objet_a_copier,retour='oui') - elif self.node_selected.item.isMCList() : - # le noeud courant est une MCList - child = self.node_selected.parent.append_child(objet_a_copier,pos='first',retour='oui') - elif self.node_selected.item.isMCFact(): - # le noeud courant est un MCFACT - if self.node_selected.parent.item.isMCList(): - # le noeud selectionne est un MCFACT dans une MCList - child = self.node_selected.parent.append_child(objet_a_copier, - pos=self.node_selected.item, - retour='oui') - else: - # le noeud MCFACT selectionne n'est pas dans une MCList - child = self.node_selected.parent.append_child(objet_a_copier,retour='oui') - else: - showinfo("Copie impossible", - "Vous ne pouvez coller le mot-clé facteur copié à ce niveau de l'arborescence !") + showerror("Copie refusée",self.appli.message) + self.appli.message = '' self.appli.affiche_infos("Copie refusée") return + # il faut déclarer le JDCDisplay_courant modifié self.init_modif() # suppression éventuelle du noeud sélectionné + # si possible on renomme l objet comme le noeud couper if self.edit == "couper": - self.appli.noeud_a_editer.delete() - if child == 0: - if self.appli.message != '': - showerror("Copie refusée",self.appli.message) - self.appli.message = '' - self.appli.affiche_infos("Copie refusée") + #nom = self.appli.noeud_a_editer.item.object.sd.nom + item=self.appli.noeud_a_editer.item + self.appli.noeud_a_editer.delete() + child.item.update(item) + #test,mess = child.item.nomme_sd(nom) + child.select() # on rend la copie à nouveau possible en libérant le flag edit self.edit="copier"