]> SALOME platform Git repositories - tools/eficas.git/blob - InterfaceQT/monPlusieursASSDPanel.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / InterfaceQT / monPlusieursASSDPanel.py
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.
9 #
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.
14 #
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.
18 #
19 #
20 # ======================================================================
21 # Modules Python
22 import string,types,os
23
24 # Modules Eficas
25 import prefs 
26
27 from qt import *
28 from monPlusieursIntoPanel import MonPlusieursIntoPanel
29 from desPlusieursInto      import DPlusInto
30 from qtCommun              import QTPanel
31 from politiquesValidation  import PolitiquePlusieurs
32 # Import des panels
33
34 class MonPlusieursASSDPanel(MonPlusieursIntoPanel):
35   """
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
38   discrètes
39   """
40   def __init__(self,node, parent = None,name = None,fl = 0):
41         QTPanel.__init__(self,node,parent)
42         DPlusInto.__init__(self,parent,name,fl)
43
44         self.listeValeursCourantes=self.node.item.GetListeValeurs()
45         self.InitValeursCourantes()
46         self.DisplayListBoxCourantes()
47         self.DisplayListBoxPossibles()
48
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 )
52
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)
60
61   def DisplayListBoxCourantes(self):
62         self.LBValeurs.clear()
63         for aSD in self.listNomsValeurs :
64             self.LBValeurs.insertItem( aSD)
65
66   def InitValeursCourantes(self):
67         self.listNomsValeurs=[]
68         for i in self.listeValeursCourantes :
69               self.listNomsValeurs.append(i.get_name())
70
71   def BOkPourListePressed(self):
72         if self.listeValeursCourantes == [] :
73            self.editor.affiche_infos("Pas de Validation d un groupe vide")
74            return
75         self.node.item.set_valeur(self.listeValeursCourantes)
76         self.editor.affiche_infos("Valeur Acceptée")
77         pass
78
79   def BSupPressed(self):
80         QTPanel.BSupPressed(self)
81
82   def Sup1Valeur(self):
83         index=self.LBValeurs.currentItem()
84         self.LBValeurs.removeItem(self.LBValeurs.currentItem())
85         listeVal=[]
86         i=0
87         for valeur in self.listeValeursCourantes :
88                 if i != index : listeVal.append(valeur)
89                 i = i+1
90         self.listeValeursCourantes=listeVal
91         self.InitValeursCourantes()
92         self.DisplayListBoxCourantes()
93         self.DisplayListBoxPossibles()
94           
95   def Ajout1Valeur(self):
96         liste=[]
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
101         listeVal=[]
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)
107         if not validite :
108                 self.editor.affiche_infos(comm)
109         else:
110            l1=self.listeValeursCourantes[:index]
111            l3=self.listeValeursCourantes[index:]
112            for valeur in listeRetour:
113                self.LBValeurs.insertItem(QString(str(valeur)),index)
114                index=index+1
115            self.listeValeursCourantes=l1+listeRetour+l3
116            self.InitValeursCourantes()
117            self.DisplayListBoxCourantes()
118            self.DisplayListBoxPossibles()