]> SALOME platform Git repositories - tools/eficas.git/blobdiff - Editeur/compofact.py
Salome HOME
PN
[tools/eficas.git] / Editeur / compofact.py
index 3f1da840ad2e9d61d672e034e44ebee485a22d8a..51b3673882a144ffa68ba597286f3769ef9a1888 100644 (file)
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -27,7 +28,6 @@ class FACTPanel(panels.OngletPanel) :
     nb.pack(fill = 'both', expand = 1) 
     self.nb=nb
     nb.add('Mocles', tab_text='Ajouter mots-clés')
-    #nb.add('Commentaire',tab_text='Insérer commentaire')
     panneau=Pmw.PanedWidget(nb.page("Mocles"),
                             orient='horizontal')
     panneau.add('left',min=0.4,max=0.6,size=0.5)
@@ -35,14 +35,29 @@ class FACTPanel(panels.OngletPanel) :
     panneau.pack(expand=1,fill='both')
     self.makeMoclesPage(panneau.pane('left'))
     self.makeReglesPage(panneau.pane('right'))
-    #self.makeCommentairePage(nb.page("Commentaire"))
     nb.tab('Mocles').focus_set()
     nb.setnaturalsize()
+    self.enlevebind()
+    self.creebind()
     self.affiche()
 
+import treewidget
+class Node(treewidget.Node):
+    def doPaste(self,node_selected):
+        objet_a_copier = self.item.get_copie_objet()
+        child=node_selected.doPaste_MCF(objet_a_copier)
+        return child
+
+    def doPaste_MCF(self,objet_a_copier):
+        child = self.parent.append_child(objet_a_copier,
+                                              pos=self.item,
+                                              retour='oui')
+        return child
+
 
 class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
   panel = FACTPanel
+  itemNode=Node
   
   def IsExpandable(self):
     return 1
@@ -65,12 +80,6 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
   def iscopiable(self):
     return 1
 
-  def isMCFact(self):
-      """
-      Retourne 1 si l'objet pointé par self est un MCFact, 0 sinon
-      """
-      return 1
-    
   def GetIconName(self):
     if self.object.isvalid():
       return "ast-green-los"
@@ -84,46 +93,57 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
     return keys
 
   def GetSubList(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
+      """
+         Reactualise la liste des items fils stockes dans self.sublist
+      """
+      liste=self.object.mc_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 additem(self,name,pos):
-    if isinstance(name,Objecttreeitem.ObjectTreeItem) :
-        objet = self.object.addentite(name.object,pos)
-    else :
-        objet = self.object.addentite(name,pos)
-    self.expandable = 1
-    if objet == 0 :
-        # on ne peut ajouter l'élément de nom name
-        return 0
-    def setfunction(value, object=objet):
-      object.setval(value)
-    item = self.make_objecttreeitem(self.appli,objet.nom + " : ", objet, setfunction)
-    return item
+    #print "compofact.additem",name,pos
+    objet = self.object.addentite(name,pos)
+    return objet
 
   def suppitem(self,item) :
       """ 
          Cette methode a pour fonction de supprimer l'item passé en argument
          des fils de l'item FACT qui est son pere
            - item = item du MOCLE à supprimer du MOCLE père
-           - item.object = MCSIMP ou MCBLOC 
+           - item.getObject() = MCSIMP ou MCBLOC 
       """
-      if item.object.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é"
-          self.appli.affiche_infos(message)
-          return 1
-
-  def verif_condition_bloc(self):
-      return self.object.verif_condition_bloc()
+      itemobject=item.getObject()
+      if itemobject.isoblig() :
+         self.appli.affiche_infos('Impossible de supprimer un mot-clé obligatoire ')
+         return 0
+
+      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
 
 import Accas
 objet = Accas.MCFACT