]> SALOME platform Git repositories - tools/eficas.git/blob - InterfaceQT4/monPlusieursASSDPanel.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / InterfaceQT4 / 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 PyQt4 import *
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
34 # Import des panels
35
36 class MonPlusieursASSDPanel(MonPlusieursIntoPanel):
37   """
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
40   discrètes
41   """
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)
46
47         self.listeValeursCourantes=self.node.item.GetListeValeurs()
48         self.InitValeursCourantes()
49         self.DisplayListBoxCourantes()
50         self.DisplayListBoxPossibles()
51
52         self.politique=PolitiquePlusieurs(node,parent)
53         self.connecterSignaux()
54
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)
62
63   def DisplayListBoxCourantes(self):
64         self.LBValeurs.clear()
65         for aSD in self.listNomsValeurs :
66             self.LBValeurs.addItem( aSD)
67
68   def InitValeursCourantes(self):
69         self.listNomsValeurs=[]
70         for i in self.listeValeursCourantes :
71               self.listNomsValeurs.append(i.get_name())
72
73   def BOkPourListePressed(self):
74         if self.listeValeursCourantes == [] :
75            self.editor.affiche_infos("Pas de Validation d un groupe vide")
76            return
77         self.node.item.set_valeur(self.listeValeursCourantes)
78         self.editor.affiche_infos("Valeur Acceptée")
79         pass
80
81   def BSupPressed(self):
82         QTPanel.BSupPressed(self)
83
84   def Sup1Valeur(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)
90      
91         listeVal=[]
92         i=0
93         for valeur in self.listeValeursCourantes :
94                 if i != indexCourant : listeVal.append(valeur)
95                 i = i+1
96         self.listeValeursCourantes=listeVal
97         self.InitValeursCourantes()
98         self.DisplayListBoxCourantes()
99         self.DisplayListBoxPossibles()
100           
101   def Ajout1Valeur(self):
102         liste=[]
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
110         else :
111            index = 0
112
113         listeVal=[]
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)
119         if not validite :
120                 self.editor.affiche_infos(comm)
121         else:
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)
127                item.setSelected(1)
128                self.LBValeurs.setCurrentItem(item)
129                index=index+1
130            self.listeValeursCourantes=l1+listeRetour+l3
131            self.InitValeursCourantes()
132            self.DisplayListBoxCourantes()
133            self.DisplayListBoxPossibles()
134
135