]> SALOME platform Git repositories - tools/eficas.git/blob - InterfaceQT4/monParamPanel.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / InterfaceQT4 / monParamPanel.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,re
23
24 # Modules Eficas
25 import prefs 
26
27 from PyQt4 import *
28 from PyQt4.QtGui import *
29 from PyQt4.QtCore import *
30
31 from desParam import Ui_DParam
32 from qtCommun import QTPanel
33 from qtCommun import QTPanelTBW2
34
35 class DParam(Ui_DParam,QDialog):
36    def __init__(self,parent ,modal ) :
37        QDialog.__init__(self,parent)
38        if hasattr(parent,"leLayout"):
39           parent.leLayout.removeWidget(parent.leLayout.widgetActive)
40           parent.leLayout.widgetActive.close()
41           parent.leLayout.addWidget(self)
42           parent.leLayout.widgetActive=self
43        else:
44           parent.partieDroite=QWidget()
45           parent.leLayout=QGridLayout(parent.partieDroite)
46           parent.leLayout.addWidget(self)
47           parent.addWidget(parent.partieDroite)
48           parent.leLayout.widgetActive=self
49        self.setupUi(self)
50
51 # Import des panels
52
53 class MonParamPanel(DParam,QTPanelTBW2,QTPanel):
54   """
55   """
56   def __init__(self,node, parent = None,name = None,fl = 0):
57         #print "MonParamPanel"
58         DParam.__init__(self,parent,fl)
59         QTPanel.__init__(self,node,parent)
60         QTPanelTBW2.__init__(self,node,parent)
61         self.InitLEs()
62         self.connecterSignaux()
63
64   def connecterSignaux(self) :
65         self.connect(self.LBNouvCommande,SIGNAL("doubleClicked(QListBoxItem*)"),self.LBNouvCommandeClicked)
66         self.connect(self.LEFiltre,SIGNAL("textChanged(const QString&)"),self.LEFiltreTextChanged)
67         self.connect(self.LEFiltre,SIGNAL("returnPressed()"),self.LEfiltreReturnPressed)
68         self.connect(self.bSup,SIGNAL("pressed()"),self.BSupPressed)
69         self.connect(self.bOk,SIGNAL("clicked()"),self.BOkPressed)
70         self.connect(self.RBGroupe,SIGNAL("clicked()"),self.BuildTabCommand)
71         self.connect(self.RBalpha,SIGNAL("clicked()"),self.BuildTabCommand)
72         self.connect(self.bHelp,SIGNAL("clicked()"),self.ViewDoc)
73         self.connect(self.BNext,SIGNAL("pressed()"),self.BNextPressed)
74         self.connect(self.lineEditVal,SIGNAL("returnPressed()"),self.BOkPressed)
75
76   def InitLEs(self):
77         nom=self.node.item.get_nom()
78         self.lineEditNom.setText(nom)
79         valeur=self.node.item.get_valeur()
80         if valeur != None:
81            #str=QString("").setNum(valeur)
82            self.lineEditVal.setText(str(valeur))
83         else :
84            self.lineEditVal.clear()
85
86   def BOkParamPressed(self):
87         val=self.LEValeurPressed() 
88         nom,commentaire=self.LENomPressed()
89         if not nom :
90            if commentaire == None :
91               commentaire="Entrer un nom de parametre"
92            self.Commentaire.setText(QString(commentaire))
93            self.editor.affiche_infos(commentaire)
94            return
95         if not val :
96            return
97         self.node.item.set_nom(nom)
98         self.node.item.set_valeur(val)
99         self.node.update_texte()
100         self.node.update_valid()
101         self.editor.init_modif()
102         self.InitLEs()
103
104   def BSupPressed(self):
105         QTPanel.BSupPressed(self)
106
107   def LEValeurPressed(self):
108         self.Commentaire.setText(QString(""))
109         commentaire="Valeur incorrecte"
110         qtVal=self.lineEditVal.text()
111         boul=2
112         try :
113             val,boul=QString.toInt(qtVal)
114         except :
115             pass
116         if boul == 0 :
117             try :
118                 val,boul=QString.toDouble(qtVal)
119             except :
120                 pass
121         if boul == 0 :
122             try :
123                 val=str(qtVal)
124                 boul=1
125             except :
126                 pass
127         if boul: commentaire="Valeur correcte"
128         valString=str(self.lineEditVal.text())
129         self.Commentaire.setText(QString(commentaire))
130         if (valString.find(' ') > -1) or (valString.find(',') > -1) :
131            commentaire="Valeur incorrecte"
132            self.Commentaire.setText(QString(commentaire))
133            return None
134         self.Commentaire.setText(QString(commentaire))
135         return valString
136
137   def LENomPressed(self):
138         self.Commentaire.setText(QString(""))
139         qtNom=self.lineEditNom.text()
140         nom=str(qtNom)
141         numDebutPattern=re.compile('[a-zA-Z"_"]')
142         if numDebutPattern.match(nom) :
143            return nom,None
144         else :
145            commentaire="Les noms de parametre doivent commencer par une lettre ou un souligne"
146            return None,commentaire
147
148   def BuildTabCommand(self):
149       QTPanelTBW2.BuildLBNouvCommande(self)
150
151   def LEFiltreTextChanged(self):
152       QTPanelTBW2.LEFiltreTextChanged(self)
153
154   def LEfiltreReturnPressed(self):
155       QTPanelTBW2.LEfiltreReturnPressed(self)
156
157   def LBNouvCommandeClicked(self):
158       QTPanelTBW2.LBNouvCommandeClicked(self)
159
160   def AppelleBuildLBRegles(self):
161       listeRegles=self.node.item.get_regles()
162       listeNomsEtapes = self.node.item.get_l_noms_etapes()
163       self.BuildLBRegles(listeRegles,listeNomsEtapes)
164
165   def BNextPressed(self) :
166       QTPanelTBW2.BNextPressed(self)
167
168   def BOkPressed(self):
169       QTPanel.BOkPressed(self)
170
171   def ViewDoc(self):
172       QTPanel.ViewDoc(self)
173