X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonFonctionPanel.py;h=599b81db602cbd1ba241f7c4ff38420d41514846;hb=e570dff249a11579eb7d33de376ed71be16d7261;hp=0909093ff16900967784bc02df0385d97cbbe1aa;hpb=d41b1c52d0c35b655f6feabfe816a3c541f3a92a;p=tools%2Feficas.git diff --git a/InterfaceQT4/monFonctionPanel.py b/InterfaceQT4/monFonctionPanel.py index 0909093f..599b81db 100644 --- a/InterfaceQT4/monFonctionPanel.py +++ b/InterfaceQT4/monFonctionPanel.py @@ -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,71 +50,82 @@ 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) + 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: + str_valeur=str(valeur) + self.LBValeurs.addItem(str_valeur) else : - listeATraiter=self.DecoupeListeValeurs(listeValeurs) - for valeur in listeATraiter: - str_valeur=str(valeur) - self.LBValeurs.addItem(str_valeur) + for valeur in self.DecoupeListeValeurs(listeValeurs): + if type(valeur) == types.TupleType: + TupleEnTexte="(" + for val in valeur : + TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", " + TupleEnTexte = TupleEnTexte[0:-2] +")" + self.LBValeurs.addItem(TupleEnTexte) + else : + self.LBValeurs.addItem(QString(str(valeur))) + 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 : liste=SaisieValeur.TraiteLEValeurTuple(self) if liste == [''] : return - validite=1 else : liste,validite=SaisieValeur.TraiteLEValeur(self) - else : - validite=1 - if validite == 0 : return + 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) + self.editor.affiche_infos(commentaire,Qt.red) return if self.node.item.wait_tuple()== 1 : liste2=tuple(liste) liste=liste2 + index=self.LBValeurs.currentRow() if ((self.LBValeurs.isItemSelected(self.LBValeurs.item(index )) == 0) and (index > 0 )): index=0 else : index=self.LBValeurs.currentRow() + 1 indexListe=index*self.nbValeurs - if index == 0 : - indexListe=len(self.listeValeursCourantes) + if index == 0 : indexListe=len(self.listeValeursCourantes) + listeVal=[] for valeur in self.listeValeursCourantes : listeVal.append(valeur) @@ -125,9 +134,9 @@ class MonFonctionPanel(MonPlusieursBasePanel): validite,comm,comm2,listeRetour=self.politique.AjoutTuple(liste,index,listeVal) else : validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) - self.Commentaire.setText(comm2) + self.Commentaire.setText(QString.fromUtf8(QString(comm2))) if not validite : - self.editor.affiche_infos(comm) + self.editor.affiche_infos(comm,Qt.red) else: self.LEValeur.setText(QString("")) l1=self.listeValeursCourantes[:indexListe] @@ -137,20 +146,27 @@ class MonFonctionPanel(MonPlusieursBasePanel): else : listeATraiter=self.DecoupeListeValeurs(listeRetour) for valeur in listeATraiter : - str_valeur=str(valeur) + if type(valeur) == types.TupleType: + TupleEnTexte="(" + for val in valeur : + TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", " + str_valeur = TupleEnTexte[0:-2] +")" + else : + str_valeur=str(valeur) self.LBValeurs.insertItem(index,str_valeur) item=self.LBValeurs.item(index) item.setSelected(1) self.LBValeurs.setCurrentItem(item) index=index+1 self.listeValeursCourantes=l1+listeRetour+l3 + self.BuildLBValeurs(self.listeValeursCourantes) def AjoutNValeur(self,liste) : if len(liste)%self.nbValeurs != 0 : texte="Nombre de valeur incorrecte" #self.Commentaire.setText(texte) - self.editor.affiche_infos(texte) + self.editor.affiche_infos(texte,Qt.red) return listeDecoupee=self.DecoupeListeValeurs(liste) for vals in listeDecoupee : @@ -159,7 +175,9 @@ class MonFonctionPanel(MonPlusieursBasePanel): 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):