Salome HOME
CCAR: modifications pour :
[tools/eficas.git] / Editeur / compofact.py
index 7e0a792780070b09dc6fc111cae6a5a52794f794..e58be4cf81ca51fd34249822cafb30a73f4732f6 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
@@ -40,9 +41,23 @@ class FACTPanel(panels.OngletPanel) :
     nb.setnaturalsize()
     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,6 +93,59 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
     return keys
 
   def GetSubList(self):
+      """
+         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):
+    #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.getObject() = MCSIMP ou MCBLOC 
+      """
+      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
+
+  def GetSubList_BAK(self):
     sublist=[]
     for obj in self.object.mc_liste:
       def setfunction(value, object=obj):
@@ -92,9 +154,9 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
       sublist.append(item)
     return sublist
 
-  def additem(self,name,pos):
+  def additem_BAK(self,name,pos):
     if isinstance(name,Objecttreeitem.ObjectTreeItem) :
-        objet = self.object.addentite(name.object,pos)
+        objet = self.object.addentite(name.getObject(),pos)
     else :
         objet = self.object.addentite(name,pos)
     self.expandable = 1
@@ -106,23 +168,7 @@ class FACTTreeItem(Objecttreeitem.ObjectTreeItem):
     item = self.make_objecttreeitem(self.appli,objet.nom + " : ", objet, setfunction)
     return item
 
-  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 
-      """
-      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):
+  def verif_condition_bloc_BAK(self):
       return self.object.verif_condition_bloc()
 
 import Accas