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
28 from PyQt4.QtGui import *
29 from PyQt4.QtCore import *
30 from monPlusieursIntoPanel import MonPlusieursIntoPanel
31 from monPlusieursIntoPanel import DPlusInto
32 from qtCommun import QTPanel
33 from politiquesValidation import PolitiquePlusieurs
36 class MonPlusieursASSDPanel(MonPlusieursIntoPanel):
38 Classe définissant le panel associé aux mots-clés qui demandent
39 à l'utilisateur de choisir une seule valeur parmi une liste de valeurs
42 def __init__(self,node, parent = None,name = None,fl = 0):
43 #print "MonPlusieursASSDPanel"
44 QTPanel.__init__(self,node,parent)
45 DPlusInto.__init__(self,parent,fl)
47 self.listeValeursCourantes=self.node.item.GetListeValeurs()
48 self.InitValeursCourantes()
49 self.DisplayListBoxCourantes()
50 self.DisplayListBoxPossibles()
52 self.politique=PolitiquePlusieurs(node,parent)
53 self.connecterSignaux()
55 def DisplayListBoxPossibles(self):
56 listeNomsSD = self.node.item.get_sd_avant_du_bon_type()
57 self.listBoxVal.clear()
58 for aSD in listeNomsSD:
59 self.listBoxVal.addItem( aSD)
60 if len(listeNomsSD) == 1 :
61 self.listBoxVal.setCurrentRow(1)
63 def DisplayListBoxCourantes(self):
64 self.LBValeurs.clear()
65 for aSD in self.listNomsValeurs :
66 self.LBValeurs.addItem( aSD)
68 def InitValeursCourantes(self):
69 self.listNomsValeurs=[]
70 for i in self.listeValeursCourantes :
71 self.listNomsValeurs.append(i.get_name())
73 def BOkPourListePressed(self):
74 if self.listeValeursCourantes == [] :
75 self.editor.affiche_infos("Pas de Validation d un groupe vide")
77 self.node.item.set_valeur(self.listeValeursCourantes)
78 self.editor.affiche_infos("Valeur Acceptée")
81 def BSupPressed(self):
82 QTPanel.BSupPressed(self)
85 indexCourant=self.LBValeurs.currentRow()
86 if indexCourant < 0 : return
87 if self.LBValeurs.isItemSelected(self.LBValeurs.item(indexCourant))== 0 : return
88 if self.LBValeurs.item(indexCourant).text()==QString("") : return
89 self.LBValeurs.takeItem(indexCourant)
93 for valeur in self.listeValeursCourantes :
94 if i != indexCourant : listeVal.append(valeur)
96 self.listeValeursCourantes=listeVal
97 self.InitValeursCourantes()
98 self.DisplayListBoxCourantes()
99 self.DisplayListBoxPossibles()
101 def Ajout1Valeur(self):
103 indexCourant=self.listBoxVal.currentRow()
104 if indexCourant == None : return
105 if self.listBoxVal.isItemSelected(self.listBoxVal.item(indexCourant))== 0 : return
106 if self.listBoxVal.item(indexCourant).text()==QString("") : return
107 liste.append(str(self.listBoxVal.item(indexCourant).text()))
108 if self.LBValeurs.currentItem() != None :
109 index= self.LBValeurs.currentRow()+ 1
114 for valeur in self.listeValeursCourantes :
115 valeurSD,validite=self.node.item.eval_valeur(valeur)
116 if validite : listeVal.append(valeur)
117 validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal)
118 self.Commentaire.setText(comm2)
120 self.editor.affiche_infos(comm)
122 l1=self.listeValeursCourantes[:index]
123 l3=self.listeValeursCourantes[index:]
124 for valeur in listeRetour:
125 self.LBValeurs.insertItem(index,QString(str(valeur)))
126 item=self.LBValeurs.item(index)
128 self.LBValeurs.setCurrentItem(item)
130 self.listeValeursCourantes=l1+listeRetour+l3
131 self.InitValeursCourantes()
132 self.DisplayListBoxCourantes()
133 self.DisplayListBoxPossibles()