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,re
28 from PyQt4.QtGui import *
29 from PyQt4.QtCore import *
31 from desParam import Ui_DParam
32 from qtCommun import QTPanel
33 from qtCommun import QTPanelTBW2
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
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
53 class MonParamPanel(DParam,QTPanelTBW2,QTPanel):
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)
62 self.connecterSignaux()
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)
77 nom=self.node.item.get_nom()
78 self.lineEditNom.setText(nom)
79 valeur=self.node.item.get_valeur()
81 #str=QString("").setNum(valeur)
82 self.lineEditVal.setText(str(valeur))
84 self.lineEditVal.clear()
86 def BOkParamPressed(self):
87 val=self.LEValeurPressed()
88 nom,commentaire=self.LENomPressed()
90 if commentaire == None :
91 commentaire="Entrer un nom de parametre"
92 self.Commentaire.setText(QString(commentaire))
93 self.editor.affiche_infos(commentaire)
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()
104 def BSupPressed(self):
105 QTPanel.BSupPressed(self)
107 def LEValeurPressed(self):
108 self.Commentaire.setText(QString(""))
109 commentaire="Valeur incorrecte"
110 qtVal=self.lineEditVal.text()
113 val,boul=QString.toInt(qtVal)
118 val,boul=QString.toDouble(qtVal)
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))
134 self.Commentaire.setText(QString(commentaire))
137 def LENomPressed(self):
138 self.Commentaire.setText(QString(""))
139 qtNom=self.lineEditNom.text()
141 numDebutPattern=re.compile('[a-zA-Z"_"]')
142 if numDebutPattern.match(nom) :
145 commentaire="Les noms de parametre doivent commencer par une lettre ou un souligne"
146 return None,commentaire
148 def BuildTabCommand(self):
149 QTPanelTBW2.BuildLBNouvCommande(self)
151 def LEFiltreTextChanged(self):
152 QTPanelTBW2.LEFiltreTextChanged(self)
154 def LEfiltreReturnPressed(self):
155 QTPanelTBW2.LEfiltreReturnPressed(self)
157 def LBNouvCommandeClicked(self):
158 QTPanelTBW2.LBNouvCommandeClicked(self)
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)
165 def BNextPressed(self) :
166 QTPanelTBW2.BNextPressed(self)
168 def BOkPressed(self):
169 QTPanel.BOkPressed(self)
172 QTPanel.ViewDoc(self)