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 monPlusieursIntoPanel import MonPlusieursIntoPanel
29 from desPlusieursInto import DPlusInto
30 from qtCommun import QTPanel
31 from politiquesValidation import PolitiquePlusieurs
34 class MonPlusieursASSDPanel(MonPlusieursIntoPanel):
36 Classe définissant le panel associé aux mots-clés qui demandent
37 à l'utilisateur de choisir une seule valeur parmi une liste de valeurs
40 def __init__(self,node, parent = None,name = None,fl = 0):
41 QTPanel.__init__(self,node,parent)
42 DPlusInto.__init__(self,parent,name,fl)
44 self.listeValeursCourantes=self.node.item.GetListeValeurs()
45 self.InitValeursCourantes()
46 self.DisplayListBoxCourantes()
47 self.DisplayListBoxPossibles()
49 self.politique=PolitiquePlusieurs(node,parent)
50 #QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.Ajout1Valeur )
51 # QObject.connect(self.listBoxVal, SIGNAL("doubleClicked(QListBoxItem*)" ), self.ClicASSD )
53 def DisplayListBoxPossibles(self):
54 listeNomsSD = self.node.item.get_sd_avant_du_bon_type()
55 self.listBoxVal.clear()
56 for aSD in listeNomsSD:
57 self.listBoxVal.insertItem( aSD)
58 if len(listeNomsSD) == 1 :
59 self.listBoxVal.setSelected(0,1)
61 def DisplayListBoxCourantes(self):
62 self.LBValeurs.clear()
63 for aSD in self.listNomsValeurs :
64 self.LBValeurs.insertItem( aSD)
66 def InitValeursCourantes(self):
67 self.listNomsValeurs=[]
68 for i in self.listeValeursCourantes :
69 self.listNomsValeurs.append(i.get_name())
71 def BOkPourListePressed(self):
72 if self.listeValeursCourantes == [] :
73 self.editor.affiche_infos("Pas de Validation d un groupe vide")
75 self.node.item.set_valeur(self.listeValeursCourantes)
76 self.editor.affiche_infos("Valeur Acceptée")
79 def BSupPressed(self):
80 QTPanel.BSupPressed(self)
83 index=self.LBValeurs.currentItem()
84 self.LBValeurs.removeItem(self.LBValeurs.currentItem())
87 for valeur in self.listeValeursCourantes :
88 if i != index : listeVal.append(valeur)
90 self.listeValeursCourantes=listeVal
91 self.InitValeursCourantes()
92 self.DisplayListBoxCourantes()
93 self.DisplayListBoxPossibles()
95 def Ajout1Valeur(self):
97 if self.listBoxVal.currentText().latin1() == None : return
98 liste.append(self.listBoxVal.currentText().latin1())
99 index=self.LBValeurs.currentItem() + 1
100 if index==0 : index = -1
102 for valeur in self.listeValeursCourantes :
103 valeurSD,validite=self.node.item.eval_valeur(valeur)
104 if validite : listeVal.append(valeur)
105 validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal)
106 self.Commentaire.setText(comm2)
108 self.editor.affiche_infos(comm)
110 l1=self.listeValeursCourantes[:index]
111 l3=self.listeValeursCourantes[index:]
112 for valeur in listeRetour:
113 self.LBValeurs.insertItem(QString(str(valeur)),index)
115 self.listeValeursCourantes=l1+listeRetour+l3
116 self.InitValeursCourantes()
117 self.DisplayListBoxCourantes()
118 self.DisplayListBoxPossibles()