1 # Copyright (C) 2007-2013 EDF R&D
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License.
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 # Lesser General Public License for more details.
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 from desWidgetFormule import Ui_WidgetFormule
23 from gereIcones import FacultatifOuOptionnel
24 from determine import monEnvQT5
27 from PyQt5.QtWidgets import QWidget
28 from PyQt5.QtGui import QIcon
29 from PyQt5.QtCore import Qt
31 from PyQt4.QtGui import *
32 from PyQt4.QtCore import *
35 from Extensions.i18n import tr
43 class MonWidgetFormule(QWidget,Ui_WidgetFormule,FacultatifOuOptionnel):
46 def __init__(self,node,editor,etape):
47 #print "MonWidgetFormule ", self
48 QWidget.__init__(self,None)
50 self.node.fenetre=self
52 self.appliEficas=self.editor.appliEficas
53 self.repIcon=self.appliEficas.repIcon
57 self.setIconePoubelle()
58 self.setIconesGenerales()
64 #if self.editor.code in ['MAP','CARMELCND','CF'] : self.bCatalogue.close()
65 if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
66 else : self.bCatalogue.clicked.connect(self.afficheCatalogue)
67 #if self.editor.code in ['Adao','MAP','CF'] :
68 if self.editor.code in ['Adao','MAP','ADAO'] :
72 self.bAvant.clicked.connect(self.afficheAvant)
73 self.bApres.clicked.connect(self.afficheApres)
74 self.LENom.returnPressed.connect(self.nomChange)
75 self.LENomFormule.returnPressed.connect(self.NomFormuleSaisi)
76 self.LENomsArgs.returnPressed.connect(self.argsSaisis)
77 self.LECorpsFormule.returnPressed.connect(self.FormuleSaisie)
79 if self.editor.code in ['MAP','CARMELCND'] : self.bCatalogue.close()
80 else : self.connect(self.bCatalogue,SIGNAL("clicked()"), self.afficheCatalogue)
81 if self.editor.code in ['Adao','MAP'] :
85 self.connect(self.bAvant,SIGNAL("clicked()"), self.afficheAvant)
86 self.connect(self.bApres,SIGNAL("clicked()"), self.afficheApres)
87 self.connect(self.LENom,SIGNAL("returnPressed()"),self.nomChange)
88 self.connect(self.LENomFormule,SIGNAL("returnPressed()"),self.NomFormuleSaisi)
89 self.connect(self.LENomsArgs,SIGNAL("returnPressed()"),self.argsSaisis)
90 self.connect(self.LECorpsFormule,SIGNAL("returnPressed()"),self.FormuleSaisie)
94 self.racine=self.node.tree.racine
95 self.monOptionnel=None
96 self.editor.fermeOptionnel()
97 #print "fin init de widget Commande"
100 def donnePremier(self):
101 self.listeAffichageWidget[0].setFocus(7)
104 def setValeurs(self):
105 self.LENomFormule.setText(self.node.item.get_nom())
106 self.LECorpsFormule.setText(self.node.item.get_corps())
108 if self.node.item.get_args() != None :
109 for i in self.node.item.get_args() :
110 if texte_args != "" : texte_args = texte_args +","
111 texte_args=texte_args + i
112 self.LENomsArgs.setText(texte_args)
116 nom = str(self.LENom.text())
117 self.LENomFormule.setText(nom)
118 self.NomFormuleSaisi()
121 def afficheCatalogue(self):
122 if self.editor.widgetOptionnel != None : self.monOptionnel.hide()
123 self.racine.affichePanneau()
124 if self.node : self.node.select()
125 else : self.racine.select()
127 def afficheApres(self):
128 self.node.selectApres()
130 def afficheAvant(self):
131 self.node.selectAvant()
134 if not(hasattr (self,'RBValide')) : return
136 if self.node.item.object.isvalid() :
137 icon=QIcon(self.repIcon+"/ast-green-ball.png")
139 icon=QIcon(self.repIcon+"/ast-red-ball.png")
140 if self.node.item.GetIconName() == "ast-yellow-square" :
141 icon=QIcon(self.repIcon+"/ast-yel-ball.png")
142 self.RBValide.setIcon(icon)
145 def NomFormuleSaisi(self):
146 nomFormule = str(self.LENomFormule.text())
147 if nomFormule == '' : return
148 self.LENom.setText(nomFormule)
149 test,erreur = self.node.item.verif_nom(nomFormule)
151 commentaire=nomFormule+tr(" est un nom valide pour une FORMULE")
152 self.editor.affiche_infos(commentaire)
154 commentaire=nomFormule+tr(" n'est pas un nom valide pour une FORMULE")
155 self.editor.affiche_infos(commentaire,Qt.red)
157 if str(self.LENomsArgs.text()) != "" and str(self.LECorpsFormule.text())!= "" : self.BOkPressedFormule()
158 self.LENomsArgs.setFocus(7)
160 def argsSaisis(self):
161 arguments = str(self.LENomsArgs.text())
162 if arguments == '' : return
163 test,erreur = self.node.item.verif_arguments(arguments)
165 commentaire=tr("Argument(s) valide(s) pour une FORMULE")
166 self.editor.affiche_infos(commentaire)
168 commentaire=tr("Argument(s) invalide(s) pour une FORMULE")
169 self.editor.affiche_infos(commentaire,Qt.red)
170 if str(self.LECorpsFormule.text()) != "" and str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
171 self.LECorpsFormule.setFocus(7)
173 def FormuleSaisie(self):
174 nomFormule = str(self.LENomFormule.text())
175 arguments = str(self.LENomsArgs.text())
176 expression = str(self.LECorpsFormule.text())
177 if expression == '' : return
178 test,erreur = self.node.item.verif_formule_python((nomFormule,"REEL",arguments,expression))
181 commentaire=tr("Corps de FORMULE valide")
182 self.editor.affiche_infos(commentaire)
184 commentaire=tr("Corps de FORMULE invalide")
185 self.editor.affiche_infos(commentaire,Qt.red)
186 if str(self.LENomsArgs.text()) != "" and str(self.LENomFormule.text())!= "" : self.BOkPressedFormule()
188 def BOkPressedFormule(self):
190 #if self.parent.modified == 'n' : self.parent.init_modif()
192 nomFormule = str(self.LENomFormule.text())
193 test,erreur = self.node.item.verif_nom(nomFormule)
195 self.editor.affiche_infos(erreur,Qt.red)
198 arguments = str(self.LENomsArgs.text())
199 test,erreur = self.node.item.verif_arguments(arguments)
201 self.editor.affiche_infos(erreur,Qt.red)
204 expression = str(self.LECorpsFormule.text())
205 test,erreur = self.node.item.verif_formule_python((nomFormule,"REEL",arguments,expression))
207 self.editor.affiche_infos(erreur,Qt.red)
210 test=self.node.item.object.update_formule_python(formule=(nomFormule,"REEL",arguments,expression))
211 test,erreur = self.node.item.save_formule(nomFormule,"REEL",arguments,expression)
213 #self.node.update_texte()
214 #self.node.update_label()
215 #self.node.update_node()
217 self.node.update_valid()
218 commentaire = "Formule saisie"
219 self.editor.affiche_infos(commentaire)
221 commentaire ="Formule incorrecte : " + erreur
222 self.editor.affiche_infos(commentaire,Qt.red)
223 self.editor.init_modif()