+# -*- coding: utf-8 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
"""
# 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'
# 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)
"""
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):
"""
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"):
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):
"""
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"