]> SALOME platform Git repositories - tools/eficas.git/blobdiff - Editeur/Objecttreeitem.py
Salome HOME
onItem=Deplie
[tools/eficas.git] / Editeur / Objecttreeitem.py
index 70b404f805ed8001645fdecde3d618744c3d6761..6ad5ae202ebe084d760596c48c4b7c2fe254a3be 100644 (file)
@@ -1,23 +1,22 @@
 # -*- coding: utf-8 -*-
-#            CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
+# Copyright (C) 2007-2013   EDF R&D
 #
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
 #
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
 #
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-# ======================================================================
 """
 """
 # import généraux
@@ -26,8 +25,10 @@ from repr import Repr
 from copy import copy,deepcopy
 
 # import du chargeur de composants
-from comploader import gettreeitem,make_objecttreeitem
-import treewidget
+from comploader import make_objecttreeitem
+from Ihm import CONNECTOR
+from Extensions.i18n import tr
+from Extensions.eficas_exception import EficasException
 
 myrepr = Repr()
 myrepr.maxstring = 100
@@ -50,7 +51,7 @@ class TreeItem:
     # ou treeOrNode est le noeud parent, item est l'item associé
     # command est une fonction python appelée sur sélection graphique
     # du noeud et rmenu est une fonction python appelée sur click droit sur le noeud
-    itemNode=treewidget.Node
+    itemNode=None
 
     def __init__(self):
         """Constructor.  Do whatever you need to do."""
@@ -129,7 +130,7 @@ class Delegate:
     def cachereport(self):
         keys = self.__cache.keys()
         keys.sort()
-        print keys
+        #print keys
 
 
 class ObjectTreeItem(TreeItem,Delegate):
@@ -143,8 +144,8 @@ class ObjectTreeItem(TreeItem,Delegate):
         # Dans le cas d'une MCListe de longueur 1, l'objet associé est la MCListe
         # et l'objet délégué est le MCFACT (object = _object.data[0])
         Delegate.__init__(self,object)
-       # On cache l'objet initial (pour destruction eventuelle
-       # ultérieure)
+        # On cache l'objet initial (pour destruction eventuelle
+        # ultérieure)
         self._object = object
         self.setfunction = setfunction
         self.expandable = 1
@@ -157,6 +158,14 @@ class ObjectTreeItem(TreeItem,Delegate):
     def getObject(self):
         return self._object
 
+    def connect(self,channel,callable,args):
+        """ Connecte la fonction callable (avec arguments args) à l'item self sur le 
+            canal channel
+        """
+        #print self,channel,callable,args
+        CONNECTOR.Connect(self._object,channel,callable,args)
+        CONNECTOR.Connect(self.object, channel,callable,args)
+
     def copy(self):
         """
         Crée un item copie de self
@@ -239,6 +248,14 @@ class ObjectTreeItem(TreeItem,Delegate):
         return self.object.get_genealogie()
 
     def get_index_child(self,nom_fils):
+        """
+        Retourne l'index dans la liste des fils de self du nouveau fils de nom nom_fils
+        Nécessaire pour savoir à quelle position dans la liste des fils il faut ajouter
+        le nouveau mot-clé
+        """
+        return self.object.get_index_child(nom_fils)
+
+    def get_index_child_old(self,nom_fils):
         """
         Retourne l'index dans la liste des fils de self du nouveau fils de nom nom_fils
         Nécessaire pour savoir à quelle position dans la liste des fils il faut ajouter
@@ -284,7 +301,7 @@ class ObjectTreeItem(TreeItem,Delegate):
         elif pos == 'after':
             index = index +1
         else:
-            print str(pos)," n'est pas un index valide pour append_brother"
+            print tr("%d n'est pas un index valide pour append_brother", pos)
             return
         return self.parent.addobject(name,index)
 
@@ -326,8 +343,9 @@ class ObjectTreeItem(TreeItem,Delegate):
         représentatif de self.object
         --> à surcharger par les différents items
         """
-        raise Exception("MESSAGE AU DEVELOPPEUR : il faut surcharger la methode get_objet_commentarise() pour la classe "+self.__class__.__name__)
-        pass
+        raise EficasException("MESSAGE AU DEVELOPPEUR : il faut \
+                                 surcharger la methode get_objet_commentarise() \
+                                 pour la classe %s", self.__class__.__name__)
         
     def isvalid(self):
         """ Retourne 1 si l'objet pointé par self est valide, 0 sinon"""
@@ -349,7 +367,10 @@ class ObjectTreeItem(TreeItem,Delegate):
 
     def get_fr(self):
         """ Retourne le fr de l'objet pointé par self """
-        return self.object.get_fr()
+        try:
+            return self.object.get_fr()
+        except:
+            return ""
 
     def get_docu(self):
         """ Retourne la clé de doc de l'objet pointé par self """
@@ -410,8 +431,10 @@ class ObjectTreeItem(TreeItem,Delegate):
            Cette methode, globale pour les objets de type item, permet de construire et de retourner un objet
            de type item associé à l'object passé en argument.
         """
-        c = gettreeitem(object)
-        return c(appli,labeltext, object, setfunction)
+        return make_objecttreeitem(appli,labeltext,object,setfunction)
+
+    #def __del__(self):
+    #    print "__del__",self
 
 class AtomicObjectTreeItem(ObjectTreeItem):
     def IsExpandable(self):
@@ -454,7 +477,7 @@ class SequenceTreeItem(ObjectTreeItem):
         try :
             self._object.remove(item.getObject())
             # la liste peut être retournée vide !
-            message = "Mot-clé " + item.getObject().nom + " supprimé"
+            message = "Mot-clef " + item.getObject().nom + " supprime"
             self.appli.affiche_infos(message)
             return 1
         except:
@@ -482,13 +505,3 @@ class SequenceTreeItem(ObjectTreeItem):
            if old_obj is None and obj is None:break
            if old_obj is obj: self.sublist.append(item)
         return self.sublist
-
-    def GetSubList_BAK(self):
-        raise "OBSOLETE"
-        sublist = []
-        for obj in self._object.data:
-            def setfunction(value, object=obj):
-                object = value
-            item = make_objecttreeitem(self.appli, obj.nom + ":", obj, setfunction)
-            sublist.append(item)
-        return sublist