X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2FmonFonctionPanel.py;h=599b81db602cbd1ba241f7c4ff38420d41514846;hb=a54fdbf858683f1439bc26f155ece0fec66ae026;hp=4dba067e9e7c9b27b18bbd7e859c67e80f108c04;hpb=69ed0ccae7884aee37bbe54cb1af2983cb51492d;p=tools%2Feficas.git diff --git a/InterfaceQT4/monFonctionPanel.py b/InterfaceQT4/monFonctionPanel.py index 4dba067e..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 @@ -43,113 +41,157 @@ class MonFonctionPanel(MonPlusieursBasePanel): MonPlusieursBasePanel.__init__(self,node,parent,name,fl) def SetNbValeurs(self): + self.nbValeurs = 1 + if self.node.item.wait_tuple()== 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 + 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(commentaire) - for i in range(len(liste)/ self.nbValeurs) : - if (self.nbValeurs==2): - t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1]) - else: - t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1], liste[i*self.nbValeurs+2]) + self.editor.affiche_infos(message,Qt.red) + i=0 + 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) return l_valeurs - def BuildLBValeurs(self): + def BuildLBValeurs(self,listeValeurs=None): self.LBValeurs.clear() - listeValeurs=self.node.item.GetListeValeurs() - for valeur in self.DecoupeListeValeurs(listeValeurs): - if (self.nbValeurs==2): - str_valeur=str(valeur[0])+","+str(valeur[1]) - else: - str_valeur=str(valeur[0])+","+str(valeur[1])+","+str(valeur[2]) - self.LBValeurs.addItem(str_valeur) + 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 : + 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 == [] : - liste,validite=SaisieValeur.TraiteLEValeur(self) - else : - validite=1 - if validite == 0 : return + if self.node.item.wait_tuple()== 1 : + liste=SaisieValeur.TraiteLEValeurTuple(self) + if liste == [''] : return + else : + liste,validite=SaisieValeur.TraiteLEValeur(self) + 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) - validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) - self.Commentaire.setText(comm2) + if self.node.item.wait_tuple()== 1 : + indexListe = index + 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))) if not validite : - self.editor.affiche_infos(comm) + self.editor.affiche_infos(comm,Qt.red) else: self.LEValeur.setText(QString("")) l1=self.listeValeursCourantes[:indexListe] l3=self.listeValeursCourantes[indexListe:] - for valeur in self.DecoupeListeValeurs(listeRetour) : - if (self.nbValeurs==2): - str_valeur=str(valeur[0])+","+str(valeur[1]) - else: - str_valeur=str(valeur[0])+","+str(valeur[1])+","+str(valeur[2]) + if self.node.item.wait_tuple()== 1 : + listeATraiter=listeRetour + else : + listeATraiter=self.DecoupeListeValeurs(listeRetour) + for valeur in listeATraiter : + 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 : self.Ajout1Valeur(vals) - 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 : + indexInterdit=[index] + i=0 for valeur in self.listeValeursCourantes : - if self.nbValeurs == 2 : - if (i != index*2 and i != index*2+1 ) : listeVal.append(valeur) - elif self.nbValeurs == 3 : - if (i != index*3 and i != index*3+1 and i != index*3 +2) : listeVal.append(valeur) - else : - print "aiiiiiiiiiiiiiiiiiieeee" - i = i+1 + if not (i in indexInterdit) : + listeVal.append(valeur) + i = i+1 self.listeValeursCourantes=listeVal listeValeurs=self.listeValeursCourantes +