Salome HOME
CCAR: correction edition include avec fichier inexistant
[tools/eficas.git] / Editeur / jdcdisplay.py
index 3669b498545b628064427dc4cc9ff2d4d881eaaf..863c5b61024944fa1f38712ddb27693b706ecdb2 100644 (file)
@@ -25,6 +25,7 @@
 """
 # Modules Python
 import types
+import traceback
 import Tkinter
 import Pmw
 
@@ -109,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)
@@ -128,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):
       """
@@ -157,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"):
@@ -197,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):
       """
@@ -231,6 +237,7 @@ class JDCDISPLAY:
       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
@@ -240,12 +247,19 @@ class JDCDISPLAY:
              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()
+         #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"