Salome HOME
linux/windows
[tools/eficas.git] / InterfaceQT4 / monFonctionPanel.py
index 5c3558fbf424ce8f6527f144e1910c94ce95e1e5..599b81db602cbd1ba241f7c4ff38420d41514846 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
 #
-# ======================================================================
 # Modules Python
 import string,types,os
 
@@ -27,15 +26,14 @@ from monPlusieursBasePanel import MonPlusieursBasePanel
 
 from PyQt4.QtGui  import *
 from PyQt4.QtCore import *
+from Extensions.i18n import tr
 
 # Import des panels
 
 class MonFonctionPanel(MonPlusieursBasePanel):
-  """
-  Classe définissant le panel associé aux mots-clés qui demandent
-  à l'utilisateur de choisir une seule valeur parmi une liste de valeurs
-  discrètes
-  """
+#  Classe definissant le panel associe© aux mots-cles qui demandent
+#  a l'utilisateur de choisir une seule valeur parmi une liste de valeurs
+#  discretes
   def __init__(self,node, parent = None,name = None,fl = 0):
         #print "MonFonctionPanel"
         self.node=node
@@ -52,29 +50,32 @@ class MonFonctionPanel(MonPlusieursBasePanel):
                except :
                    pass
         genea=self.node.item.get_genealogie()
-        if "VALE" in genea:
-            self.nbValeurs=2
-        if "VALE_C" in genea:
-            self.nbValeurs=3
+        self.nbValeursASaisir=self.nbValeurs
+        if "VALE" in genea: self.nbValeurs=2
+        if "VALE_C" in genea: self.nbValeurs=3
 
 
   def DecoupeListeValeurs(self,liste):
         #decoupe la liste des valeurs en n ( les x puis les y)
         l_valeurs=[]
-        if (len(liste)% self.nbValeurs != 0):
-            message="La cardinalité n'est pas correcte, la dernière valeur est ignorée"
+        if ((len(liste)% self.nbValeursASaisir != 0 and (len(liste)% self.nbValeurs))):
+            message=tr("La cardinalite n'est pas correcte, la derniere valeur est ignoree")
             #self.Commentaire.setText(QString(commentaire)) 
             self.editor.affiche_infos(message,Qt.red)
         i=0
-        while ( i < (len(liste) - self.nbValeurs + 1)) :
-            t=tuple(liste[i:i+self.nbValeurs])
+        while ( i < len(liste) ) :
+            try :
+              t=tuple(liste[i:i+self.nbValeurs])
+              i=i+self.nbValeurs
+            except:
+              t=tuple(liste[i:len(liste)])
             l_valeurs.append(t)
-            i=i+self.nbValeurs
         return l_valeurs
 
-  def BuildLBValeurs(self):
+  def BuildLBValeurs(self,listeValeurs=None):
         self.LBValeurs.clear()
-        listeValeurs=self.node.item.GetListeValeurs()
+        if listeValeurs== None :
+           listeValeurs=self.node.item.GetListeValeurs()
         if self.node.item.wait_tuple()== 1 :
              listeATraiter=listeValeurs
               for valeur in listeATraiter:
@@ -93,7 +94,7 @@ class MonFonctionPanel(MonPlusieursBasePanel):
 
 
   def  Ajout1Valeur(self,liste=[]):
-        # Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
+        # Pour etre appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
         validite=1
         if liste == [] :
            if self.node.item.wait_tuple()== 1 :
@@ -104,11 +105,11 @@ class MonFonctionPanel(MonPlusieursBasePanel):
               if validite == 0 : return
         if liste ==[]    : return
 
-        if len(liste) != self.nbValeurs :
+        if (self.node.item.wait_tuple()== 1 and len(liste) != self.nbValeurs):
             commentaire  = QString(str(liste)) 
-            commentaire += QString(" n est pas un tuple de "
-            commentaire += QString(str(self.nbValeurs)) 
-            commentaire += QString(" valeurs")
+            commentaire += QString(tr(" n est pas un tuple de ")
+            commentaire += QString(str(self.nbValeursASaisir)) 
+            commentaire += QString(tr(" valeurs"))
            self.LEValeur.setText(QString(str(liste)))
             self.editor.affiche_infos(commentaire,Qt.red)
             return
@@ -158,6 +159,7 @@ class MonFonctionPanel(MonPlusieursBasePanel):
                self.LBValeurs.setCurrentItem(item)
                index=index+1
            self.listeValeursCourantes=l1+listeRetour+l3
+           self.BuildLBValeurs(self.listeValeursCourantes)
 
 
   def AjoutNValeur(self,liste) :