1 # -*- coding: utf-8 -*-
2 # CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8 # (AT YOUR OPTION) ANY LATER VERSION.
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20 # ======================================================================
22 import string,types,os
26 from qtSaisie import SaisieValeur
27 from monPlusieursBasePanel import MonPlusieursBasePanel
31 class MonFonctionPanel(MonPlusieursBasePanel):
33 Classe définissant le panel associé aux mots-clés qui demandent
34 à l'utilisateur de choisir une seule valeur parmi une liste de valeurs
37 def __init__(self,node, parent = None,name = None,fl = 0):
40 MonPlusieursBasePanel.__init__(self,node,parent,name,fl)
42 def SetNbValeurs(self):
43 genea=self.node.item.get_genealogie()
50 def DecoupeListeValeurs(self,liste):
51 #decoupe la liste des valeurs en n ( les x puis les y)
53 if (len(liste)% self.nbValeurs != 0):
54 message="La cardinalité n'est pas correcte, la dernière valeur est ignorée"
55 self.editor.affiche_infos(message)
56 for i in range(len(liste)/ self.nbValeurs) :
57 if (self.nbValeurs==2):
58 t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1])
60 t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1], liste[i*self.nbValeurs+2])
64 def BuildLBValeurs(self):
65 self.LBValeurs.clear()
66 listeValeurs=self.node.item.GetListeValeurs()
67 for valeur in self.DecoupeListeValeurs(listeValeurs):
68 if type(valeur) == types.TupleType:
71 TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
72 TupleEnTexte = TupleEnTexte[0:-2] +")"
73 self.LBValeurs.insertItem(TupleEnTexte)
75 self.LBValeurs.insertItem(QString(str(valeur)))
77 def Ajout1Valeur(self,liste=[]):
78 # Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur)
80 liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self)
82 for val in texteBrut.split(',') :
83 self.politique.AjoutDsDictReel(val)
86 if validite == 0 : return
87 if liste ==[] : return
89 if len(liste) != self.nbValeurs :
90 commentaire = QString(str(liste))
91 commentaire += QString(" n est pas un tuple de ")
92 commentaire += QString(str(self.nbValeurs))
93 commentaire += QString(" valeurs")
94 #self.Commentaire.setText(commentaire)
95 self.LEValeur.setText(QString(str(liste)))
96 self.editor.affiche_infos(commentaire)
99 index=self.LBValeurs.currentItem() +1
100 indexListe=index*self.nbValeurs
102 index = len(self.listeValeursCourantes)
103 indexListe=len(self.listeValeursCourantes)
105 for valeur in self.listeValeursCourantes :
106 listeVal.append(valeur)
107 validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index+1,listeVal)
108 self.Commentaire.setText(comm2)
110 self.editor.affiche_infos(comm)
112 self.LEValeur.setText(QString(""))
113 l1=self.listeValeursCourantes[:indexListe]
114 l3=self.listeValeursCourantes[indexListe:]
115 for valeur in self.DecoupeListeValeurs(listeRetour):
116 if type(valeur) == types.TupleType:
119 TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", "
120 TupleEnTexte = TupleEnTexte[0:-2] +")"
121 self.LBValeurs.insertItem(TupleEnTexte,index)
123 self.LBValeurs.insertItem(QString(str(valeur)),index)
125 self.listeValeursCourantes=l1+listeRetour+l3
128 def AjoutNValeur(self,liste) :
129 if len(liste)%self.nbValeurs != 0 :
130 texte="Nombre de valeur incorrecte"
131 #self.Commentaire.setText(texte)
132 self.editor.affiche_infos(texte)
134 listeDecoupee=self.DecoupeListeValeurs(liste)
135 for vals in listeDecoupee :
136 self.Ajout1Valeur(vals)
139 def Sup1Valeur(self):
140 index=self.LBValeurs.currentItem()
141 self.LBValeurs.removeItem(self.LBValeurs.currentItem())
144 for valeur in self.listeValeursCourantes :
145 if self.nbValeurs == 2 :
146 if (i != index*2 and i != index*2+1 ) : listeVal.append(valeur)
147 elif self.nbValeurs == 3 :
148 if (i != index*3 and i != index*3+1 and i != index*3 +2) : listeVal.append(valeur)
150 print "aiiiiiiiiiiiiiiiiiieeee"
152 self.listeValeursCourantes=listeVal
153 listeValeurs=self.listeValeursCourantes
154 self.LBValeurs.clear()
155 for valeur in self.DecoupeListeValeurs(listeValeurs):
156 self.LBValeurs.insertItem(str(valeur))