+# -*- coding: utf-8 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
nb.pack(fill = 'both', expand = 1)
self.nb=nb
- nb.add('Concept', tab_text='Nommer concept')
nb.add('Mocles', tab_text='Nouveau mot-clé')
+ nb.add('Concept', tab_text='Nommer concept')
nb.add('Commande', tab_text='Nouvelle Commande')
nb.add('Commentaire',tab_text='Paramètre/Commentaire')
panneau=Pmw.PanedWidget(nb.page("Mocles"),
self.makeReglesPage(panneau.pane('right'))
#self.makeCommentairePage(nb.page("Commentaire"))
self.makeParamCommentPage_for_etape(nb.page("Commentaire"))
- #nb.tab('Mocles').focus_set()
- nb.tab('Concept').focus_set()
+ nb.tab('Mocles').focus_set()
nb.setnaturalsize()
self.affiche()
except:
traceback.print_exc()
+import treewidget
+class Node(treewidget.Node):
+ def doPaste(self,node_selected):
+ """
+ Déclenche la copie de l'objet item avec pour cible
+ l'objet passé en argument : node_selected
+ """
+ objet_a_copier = self.item.get_copie_objet()
+ child=node_selected.doPaste_Commande(objet_a_copier)
+ return child
+
+ def doPaste_Commande(self,objet_a_copier):
+ """
+ Réalise la copie de l'objet passé en argument qui est nécessairement
+ une commande
+ """
+ parent=self.parent
+ #child = parent.item.append_child(objet_a_copier,self.item.getObject())
+ child = self.append_brother(objet_a_copier,retour='oui')
+ #if child is None:return 0
+ return child
+
+ def doPaste_MCF(self,objet_a_copier):
+ """
+ Réalise la copie de l'objet passé en argument (objet_a_copier)
+ Il s'agit forcément d'un mot clé facteur
+ """
+ child = self.append_child(objet_a_copier,pos='first',retour='oui')
+ return child
+
+
class EtapeTreeItem(Objecttreeitem.ObjectTreeItem):
+ """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du noyau
+ Accas. Elle leur permet d'etre affichés comme des noeuds
+ d'un arbre graphique.
+ Cette classe a entre autres deux attributs importants :
+ - _object qui est un pointeur vers l'objet du noyau
+ - object qui pointe vers l'objet auquel sont délégués les
+ appels de méthode et les accès aux attributs
+ Dans le cas d'une ETAPE, _object et object pointent vers le
+ meme objet.
+ """
panel = OPERPanel
+ itemNode=Node
def IsExpandable(self):
return 1
Retourne le nom de l'icône à afficher dans l'arbre
Ce nom dépend de la validité de l'objet
"""
- if self.object.isactif():
- if self.object.isvalid():
- return "ast-green-square"
- else:
- return "ast-red-square"
+ if not self.object.isactif():
+ return "ast-white-square"
+ elif self.object.isvalid():
+ return "ast-green-square"
else:
- return "ast-white-square"
+ return "ast-red-square"
def GetLabelText(self):
""" Retourne 3 valeurs :
return ""
def additem(self,name,pos):
- if isinstance(name,Objecttreeitem.ObjectTreeItem) :
- mcent = self.object.addentite(name.object,pos)
- else :
- mcent = self.object.addentite(name,pos)
- self.expandable=1
- if mcent == 0 :
- # on ne peut ajouter l'élément de nom name
- return 0
- def setfunction(value, object=mcent):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli,mcent.nom + " : ", mcent, setfunction)
- return item
+ #print "compooper.additem",name,pos
+ mcent = self._object.addentite(name,pos)
+ return mcent
def suppitem(self,item) :
# item : item du MOCLE de l'ETAPE à supprimer
- # item.object = MCSIMP, MCFACT, MCBLOC ou MCList
- if item.object.isoblig() :
+ # item.getObject() = MCSIMP, MCFACT, MCBLOC ou MCList
+ itemobject=item.getObject()
+ if itemobject.isoblig() :
self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ')
return 0
- else :
- self.object.suppentite(item.object)
- message = "Mot-clé " + item.object.nom + " supprimé"
+ if self.object.suppentite(itemobject):
+ message = "Mot-clé " + itemobject.nom + " supprimé"
self.appli.affiche_infos(message)
return 1
+ else :
+ self.appli.affiche_infos('Pb interne : impossible de supprimer ce mot-clé')
+ return 0
def GetText(self):
try:
return keys
def GetSubList(self):
+ """
+ Reactualise la liste des items fils stockes dans self.sublist
+ """
+ if self.isactif():
+ liste=self.object.mc_liste
+ else:
+ liste=[]
+
+ sublist=[None]*len(liste)
+ # suppression des items lies aux objets disparus
+ for item in self.sublist:
+ old_obj=item.getObject()
+ if old_obj in liste:
+ pos=liste.index(old_obj)
+ sublist[pos]=item
+ else:
+ pass # objets supprimes ignores
+
+ # ajout des items lies aux nouveaux objets
+ pos=0
+ for obj in liste:
+ if sublist[pos] is None:
+ # nouvel objet : on cree un nouvel item
+ def setfunction(value, object=obj):
+ object.setval(value)
+ item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
+ sublist[pos]=item
+ pos=pos+1
+
+ self.sublist=sublist
+ return self.sublist
+
+ def GetSubList_BAK(self):
+ if self.isactif():
+ liste=self.object.mc_liste
+ else:
+ liste=[]
+
sublist=[]
- for obj in self.object.mc_liste:
- def setfunction(value, object=obj):
- object.setval(value)
- item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
- sublist.append(item)
- return sublist
+ isublist=iter(self.sublist)
+ iliste=iter(liste)
+
+ while(1):
+ old_obj=obj=None
+ for item in isublist:
+ old_obj=item.getObject()
+ if old_obj in liste:break
+
+ for obj in iliste:
+ if obj is old_obj:break
+ # nouvel objet : on cree un nouvel item
+ def setfunction(value, object=obj):
+ object.setval(value)
+ it = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
+ sublist.append(it)
+
+ if old_obj is None and obj is None:break
+ if old_obj is obj:
+ sublist.append(item)
+
+ self.sublist=sublist
+ return self.sublist
def isvalid(self):
return self.object.isvalid()
"""
return 1
- def isCommande(self):
- """
- Retourne 1 si l'objet pointé par self est une Commande, 0 sinon
- """
- return 1
-
- def verif_condition_bloc(self):
- return self.object.verif_condition_bloc()
+ def update(self,item):
+ if item.sd and item.sd.nom:
+ self.nomme_sd(item.sd.nom)
def nomme_sd(self,nom):
""" Lance la méthode de nommage de la SD """
parent=self.object.parent)
commande_comment.niveau = self.object.niveau
commande_comment.jdc = commande_comment.parent = self.object.jdc
+
+ pos=self.object.parent.etapes.index(self.object)
+ self.object.parent.suppentite(self.object)
+ self.object.parent.addentite(commande_comment,pos)
+
return commande_comment
+ def additem_BAK(self,name,pos):
+ mcent=self.addentite(name,pos)
+
+ self.expandable=1
+ if mcent == 0 :
+ # on ne peut ajouter l'élément de nom name
+ return 0
+ def setfunction(value, object=mcent):
+ object.setval(value)
+ item = self.make_objecttreeitem(self.appli,mcent.nom + " : ", mcent, setfunction)
+ return item
+
+ def GetSubList_BAK(self):
+ sublist=[]
+ for obj in self.object.mc_liste:
+ def setfunction(value, object=obj):
+ object.setval(value)
+ item = self.make_objecttreeitem(self.appli, obj.nom + " : ", obj, setfunction)
+ sublist.append(item)
+ return sublist
+
+ def verif_condition_bloc_BAK(self):
+ return self.object.verif_condition_bloc()
+
def replace_child(self,old_item,new_item):
"""
- Remplace old_item.object par new_item.object dans les fils de self.object
+ Remplace old_item.getObject() par new_item.getObject() dans
+ les fils de self.object
"""
- index = self.object.mc_liste.index(old_item.object)
+ raise "OBSOLETE"
+ old_itemobject=old_item.getObject()
+ index = self.object.mc_liste.index(old_itemobject)
self.object.init_modif()
- self.object.mc_liste.remove(old_item.object)
- self.object.mc_liste.insert(index,new_item.object)
+ self.object.mc_liste.remove(old_itemobject)
+ self.object.mc_liste.insert(index,new_item.getObject())
self.object.fin_modif()
import Accas