Salome HOME
*** empty log message ***
[tools/eficas.git] / Editeur / treewidget.py
index 9a26db03a4ba9e1e7ff832ee339fa0e9733b9aca..78b3a16c247745cb718a787fb069fc696a8bd61d 100644 (file)
@@ -28,7 +28,7 @@ from Ihm import CONNECTOR
 
 #
 __version__="$Name:  $"
-__Id__="$Id: treewidget.py,v 1.20 2005/04/13 14:59:31 eficas Exp $"
+__Id__="$Id: treewidget.py,v 1.24 2005/06/10 14:59:37 eficas Exp $"
 #
 
 Fonte_Standard = fontes.standard
@@ -101,6 +101,11 @@ class Tree :
         for child in self.children:
             child.update()
 
+    def supprime(self):
+        """ supprime tous les éléments de l'arbre """
+        for child in self.children:
+            child.supprime()
+
     def update_valid(self) :
         """Cette methode a pour but de mettre a jour la validite du noeud
            et de propager la demande de mise à jour à son parent
@@ -183,18 +188,6 @@ class Node :
         else:
            self.racine = self.parent.racine
            
-        # etape = noeud d'étape auquel appartient self
-        # = self si c'est lui-même
-        #if isinstance(self.parent,Tree) :
-            # on est  sur un noeud de JDC
-            #self.etape=None
-        #elif isinstance(self.parent.parent,Tree) :
-            # on est sur un noeud d'étape
-            #self.etape=self
-        #else :
-            # on est sur un noeud de mot-clé
-            #self.etape=self.parent.etape
-
     def reconnect(self):
         self.disconnect()
         self.connect()
@@ -230,15 +223,16 @@ class Node :
     def onValid(self):
         #print "onValid : l'item a changé de validité ",self.item,self.item.object,self.item.object.isvalid()
         self.update_node_valid()
-        self.update_label_texte()
-        self.update_texte()
+        self.update_node_label()
+        self.update_node_texte()
+        if self.selected and self.command:
+           self.command(self)
 
     def onAdd(self,objet):
         #print "onAdd : un objet a été ajouté aux fils de l'item ",self.item.object,objet
         self.expand_node()
         old_nodes=self.children
         self.update_nodes()
-        #print "onAdd:nodes",self.children
         self.redraw_children(old_nodes)
         self.force_select()
 
@@ -247,7 +241,6 @@ class Node :
         self.expand_node()
         old_nodes=self.children
         self.update_nodes()
-        #print "onSupp:nodes",self.children
         self.redraw_children(old_nodes)
         self.force_select()
 
@@ -257,8 +250,6 @@ class Node :
         inodes=iter(self.children)
         sublist=self.item._GetSubList()
         iliste=iter(sublist)
-        #print "update_nodes",self.children
-        #print "update_nodes",sublist
 
         while(1):
            old_item=item=None
@@ -337,7 +328,7 @@ class Node :
 
            if node is new_node: # ancien noeud
               #print "noeud conserve",node
-              node.update_label_texte()
+              node.update_node_label()
               y=y+node.lasty-node.y +20
 
         self.racine.update_coords()
@@ -405,9 +396,7 @@ class Node :
         tous les autres
         """
         #print "SELECT",self
-        #traceback.print_stack()
         if not self.children : self.build_children()
-        #if self.selected and self.tree.node_selected is self: return
         self.tree.deselectall()
         self.selected = 1
         self.tree.node_selected = self
@@ -700,29 +689,41 @@ class Node :
                     child.update_icone()
 
     def update_label_texte(self):
+        """ Met a jour le label du noeud et celui de tous ses fils ouverts """
+        self.update_node_label()
+        if self.state == 'expanded' :
+            for child in self.children:
+                if child.displayed != 0 : child.update_label_texte()
+
+    def update_texte(self):
+        """ Met à jour les noms des SD et valeurs des mots-clés """
+        self.update_node_texte()
+        if self.state == 'expanded' :
+            for child in self.children:
+                if child.displayed != 0 : child.update_texte()
+        
+    def update_node_label(self):
+        """ Met a jour le label du noeud """
+        if self.displayed == 0 : return
         # nom,fonte et couleur de l'objet du noeud à afficher
         labeltext,fonte,couleur = self.item.GetLabelText()
         if labeltext    == ''   : labeltext = '   '
         if fonte        == None : fonte = Fonte_Standard
         if couleur      == None : couleur = 'black'
         self.label.configure(text=labeltext,font=fonte)
-        if self.state == 'expanded' :
-            for child in self.children:
-                if child.displayed != 0 : child.update_label_texte()
 
-    def update_texte(self):
+    def update_node_texte(self):
         """ Met à jour les noms des SD et valeurs des mots-clés """
+        if self.displayed == 0 : return
         text = self.item.GetText()
         if text == None : text = ''
         self.text.configure(text=text)
-        if self.state == 'expanded' :
-            for child in self.children:
-                if child.displayed != 0 : child.update_texte()
-        
+
     def update_node_valid(self) :
         """Cette methode remet a jour la validite du noeud (icone)
            Elle appelle isvalid
         """
+        if self.displayed == 0 : return
         if self.image_id != None :
             image = self.geticonimage()
             self.canvas.itemconfig(self.image_id,image=image)
@@ -752,6 +753,7 @@ class Node :
         self.racine.trace_ligne()
         self.racine.update_icone()
         self.racine.update_texte()
+        self.racine.update_label_texte()
         self.tree.resizescrollregion()
 
     def efface_node(self):
@@ -998,6 +1000,7 @@ class Node :
 
     def delete_node_child_BAK(self,child):
         """ Supprime child des enfants de self et les id associés """
+        raise "OBSOLETE"
         child.efface()
         self.children.remove(child)
         self.canvas.update()
@@ -1007,6 +1010,7 @@ class Node :
             Supprime child des enfants de self, tous les id associés
             ET l'objet associé 
         """
+        raise "OBSOLETE"
         if self.item.suppitem(child.item):
             self.delete_node_child(child)
             return 1
@@ -1020,7 +1024,6 @@ class Node :
         """
         index = self.parent.children.index(self) - 1 
         if index < 0 : index =0
-        #print index
 
         ret=self.parent.item.suppitem(self.item)
         if ret == 0:return
@@ -1079,7 +1082,6 @@ class Node :
        Réalise la copie de l'objet passé en argument qui est nécessairement
        une commande
        """
-        raise "OBSOLETE"
        child = self.append_brother(objet_a_copier,retour='oui')
        return child