Salome HOME
Merge branch 'nouvelEficas' of http://git.forge-pleiade.der.edf.fr/git/eficas into...
[tools/eficas.git] / Extensions / parametre.py
index 2c3ed69898900c7745192eb02d1d8e0aaae33979..3d3912457cf2a9057e4c6339795b2c563aec2ed2 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
 #
-# ======================================================================
 """
     Ce module contient la classe PARAMETRE qui sert à définir
     des objets paramètres qui sont compréhensibles et donc affichables
@@ -37,6 +36,7 @@ from Noyau import N_OBJECT
 from Ihm import I_OBJECT
 from param2 import *
 from Ihm import CONNECTOR
+from Extensions.i18n import tr
 
 class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) :
   """
@@ -78,6 +78,18 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) :
     #if not val : return None
     valeur = None
 
+    if type(val) == types.ListType:
+    # Un premier traitement a ete fait lors de la saisie
+    # permet de tester les parametres qui sont des listes
+       l_new_val = []
+       for v in val :
+           try :
+               valeur=eval(str(v))
+               l_new_val.append(v)
+           except :
+               return None
+       return l_new_val
+
     if type(val) == types.StringType:
        # on tente l'evaluation dans un contexte fourni par le parent s'il existe
        if self.parent:
@@ -130,6 +142,7 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) :
     Remplace la valeur de self par new_valeur interprétée
     """
     self.valeur = self.interprete_valeur(new_valeur)
+    self.val=repr(self.valeur)
     self.parent.update_concept_after_etape(self,self)
     self.init_modif()
 
@@ -172,12 +185,12 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) :
     """
     if self.nom == '' :
         if cr == 'oui':
-           self.cr.fatal("Pas de nom donné au paramètre ")
+           self.cr.fatal(tr("Pas de nom donne au parametre "))
         return 0
     else:
         if self.valeur == None :
             if cr == 'oui' : 
-               self.cr.fatal("Le paramètre %s ne peut valoir None" % self.nom)
+               self.cr.fatal(tr("Le parametre %s ne peut valoir None" , self.nom))
             return 0
     return 1
 
@@ -272,6 +285,12 @@ class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT,Formula) :
          else:
             return self.nom+' = '+ repr(self.valeur)
     else:
+       if type(self.valeur) == types.ListType :
+          aRetourner=self.nom+' = ['
+          for l in self.valeur :
+            aRetourner=aRetourner+str(l) +","
+          aRetourner=aRetourner[0:-1]+']'
+          return aRetourner
        return self.nom+' = '+ str(self.valeur)
 
   def __str__(self):