# -*- 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-2017 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
+from __future__ import absolute_import
+try :
+ from builtins import str
+ from builtins import range
+except : pass
+
+import types,os
+from six.moves import range
+from PyQt5.QtCore import Qt
+
# Modules Eficas
-from qtSaisie import SaisieValeur
+from .qtSaisie import SaisieValeur
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 associee 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
- self.SetNbValeurs()
+ self.setNbValeurs()
MonPlusieursBasePanel.__init__(self,node,parent,name,fl)
- def SetNbValeurs(self):
+ def setNbValeurs(self):
self.nbValeurs = 1
- if self.node.item.wait_tuple()== 1 :
+ if self.node.item.waitTuple()== 1 :
for a in self.node.item.definition.type :
try :
self.nbValeurs = a.ntuple
break
except :
pass
- genea=self.node.item.get_genealogie()
- if "VALE" in genea:
- self.nbValeurs=2
- if "VALE_C" in genea:
- self.nbValeurs=3
+ genea=self.node.item.getGenealogie()
+ self.nbValeursASaisir=self.nbValeurs
+ if "VALE" in genea: self.nbValeurs=2
+ if "VALE_C" in genea: self.nbValeurs=3
- def DecoupeListeValeurs(self,liste):
+ 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"
- #self.Commentaire.setText(QString(commentaire))
- self.editor.affiche_infos(message,Qt.red)
+ 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.editor.afficheInfos(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 self.node.item.wait_tuple()== 1 :
+ if listeValeurs== None :
+ listeValeurs=self.node.item.getListeValeurs()
+ if self.node.item.waitTuple()== 1 :
listeATraiter=listeValeurs
for valeur in listeATraiter:
str_valeur=str(valeur)
self.LBValeurs.addItem(str_valeur)
else :
- for valeur in self.DecoupeListeValeurs(listeValeurs):
- if type(valeur) == types.TupleType:
+ for valeur in self.decoupeListeValeurs(listeValeurs):
+ if type(valeur) == tuple:
TupleEnTexte="("
for val in valeur :
- TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
+ TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
TupleEnTexte = TupleEnTexte[0:-2] +")"
- print TupleEnTexte
self.LBValeurs.addItem(TupleEnTexte)
else :
- self.LBValeurs.addItem(QString(str(valeur)))
+ self.LBValeurs.addItem(str(valeur))
- def Ajout1Valeur(self,liste=[]):
- # Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
+ def ajout1Valeur(self,liste=[]):
+ # Pour etre appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
validite=1
if liste == [] :
- if self.node.item.wait_tuple()== 1 :
+ if self.node.item.waitTuple()== 1 :
liste=SaisieValeur.TraiteLEValeurTuple(self)
if liste == [''] : return
else :
if validite == 0 : return
if liste ==[] : return
- if len(liste) != self.nbValeurs :
- commentaire = QString(str(liste))
- commentaire += QString(" n est pas un tuple de ")
- commentaire += QString(str(self.nbValeurs))
- commentaire += QString(" valeurs")
- self.LEValeur.setText(QString(str(liste)))
- self.editor.affiche_infos(commentaire,Qt.red)
+ if (self.node.item.waitTuple()== 1 and len(liste) != self.nbValeurs):
+ commentaire = str(liste)
+ commentaire += tr(" n est pas un tuple de ")
+ commentaire += str(self.nbValeursASaisir)
+ commentaire += tr(" valeurs")
+ self.LEValeur.setText(str(liste))
+ self.editor.afficheInfos(commentaire,Qt.red)
return
- if self.node.item.wait_tuple()== 1 :
+ if self.node.item.waitTuple()== 1 :
liste2=tuple(liste)
liste=liste2
listeVal=[]
for valeur in self.listeValeursCourantes :
listeVal.append(valeur)
- if self.node.item.wait_tuple()== 1 :
+ if self.node.item.waitTuple()== 1 :
indexListe = index
- validite,comm,comm2,listeRetour=self.politique.AjoutTuple(liste,index,listeVal)
+ validite,comm,comm2,listeRetour=self.politique.ajoutTuple(liste,index,listeVal)
else :
- validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal)
- self.Commentaire.setText(QString.fromUtf8(QString(comm2)))
+ validite,comm,comm2,listeRetour=self.politique.ajoutValeurs(liste,index,listeVal)
+ self.Commentaire.setText(tr(comm2))
if not validite :
- self.editor.affiche_infos(comm,Qt.red)
+ self.editor.afficheInfos(comm,Qt.red)
else:
- self.LEValeur.setText(QString(""))
+ self.LEValeur.setText("")
l1=self.listeValeursCourantes[:indexListe]
l3=self.listeValeursCourantes[indexListe:]
- if self.node.item.wait_tuple()== 1 :
+ if self.node.item.waitTuple()== 1 :
listeATraiter=listeRetour
else :
- listeATraiter=self.DecoupeListeValeurs(listeRetour)
+ listeATraiter=self.decoupeListeValeurs(listeRetour)
for valeur in listeATraiter :
- if type(valeur) == types.TupleType:
+ if type(valeur) == tuple:
TupleEnTexte="("
for val in valeur :
- TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
+ TupleEnTexte = TupleEnTexte + str(self.politique.getValeurTexte(val)) +", "
str_valeur = TupleEnTexte[0:-2] +")"
else :
str_valeur=str(valeur)
self.LBValeurs.setCurrentItem(item)
index=index+1
self.listeValeursCourantes=l1+listeRetour+l3
+ self.buildLBValeurs(self.listeValeursCourantes)
- def AjoutNValeur(self,liste) :
+ def ajoutNValeur(self,liste) :
if len(liste)%self.nbValeurs != 0 :
texte="Nombre de valeur incorrecte"
#self.Commentaire.setText(texte)
- self.editor.affiche_infos(texte,Qt.red)
+ self.editor.afficheInfos(texte,Qt.red)
return
- listeDecoupee=self.DecoupeListeValeurs(liste)
+ listeDecoupee=self.decoupeListeValeurs(liste)
for vals in listeDecoupee :
- self.Ajout1Valeur(vals)
+ self.ajout1Valeur(vals)
- def Sup1Valeur(self):
+ def sup1Valeur(self):
index=self.LBValeurs.currentRow()
if index == None : return
- self.LBValeurs.takeItem(index)
+ removed_item = self.LBValeurs.takeItem(index)
+ text = removed_item.text()[1:-1] # Remove the parenthesis
+ self.LEValeur.setText(text)
listeVal=[]
indexInterdit=[]
for i in range(self.nbValeurs):
indexAOter=index*self.nbValeurs + i
indexInterdit.append(indexAOter)
- if self.node.item.wait_tuple()== 1 :
+ if self.node.item.waitTuple()== 1 :
indexInterdit=[index]
i=0