]> SALOME platform Git repositories - tools/eficas.git/blob - InterfaceQT/monFormulePanel.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / InterfaceQT / monFormulePanel.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 # Modules Eficas
23
24 from desFormule import DFormule
25 from qtCommun import QTPanel
26 from qtCommun import QTPanelTBW2
27 from qt import *
28
29
30 # Import des panels
31
32 class MonFormulePanel(DFormule,QTPanelTBW2):
33   """
34   Classe définissant le panel associé aux mots-clés qui demandent
35   à l'utilisateur de choisir une seule valeur parmi une liste de valeurs
36   discrètes
37   """
38   def __init__(self,node, parent = None,name = None,fl = 0):
39         DFormule.__init__(self,parent,name,fl)
40         QTPanel.__init__(self,node,parent)
41         QTPanelTBW2.__init__(self,node,parent)
42         self.LENomFormule.setText(node.item.get_nom())
43         self.LECorpsFormule.setText(node.item.get_corps())
44         texte_args=""
45         if node.item.get_args() != None :
46             for i in node.item.get_args() :
47                 if texte_args != "" :
48                    texte_args = texte_args +","
49                 texte_args=texte_args + i
50         self.LENomsArgs.setText(texte_args)
51
52         
53         self.parent=parent
54
55   def BSupPressed(self):
56       QTPanel.BSupPressed(self)
57
58   def BOkPressed(self):
59       QTPanel.BOkPressed(self)
60
61   def ViewDoc(self):
62       QTPanel.ViewDoc(self)
63
64   def BNextPressed(self):
65       QTPanelTBW2.BNextPressed(self)
66
67   def BuildTabCommand(self):
68       QTPanelTBW2.BuildLBNouvCommande(self)
69
70   def LEFiltreTextChanged(self):
71       QTPanelTBW2.LEFiltreTextChanged(self)
72
73   def LEfiltreReturnPressed(self):
74       QTPanelTBW2.LEfiltreReturnPressed(self)
75
76   def LBNouvCommandeClicked(self):
77       QTPanelTBW2.LBNouvCommandeClicked(self)
78
79   def NomFormuleSaisi(self):
80       nomFormule = self.LENomFormule.text().latin1()
81       if nomFormule == '' : return
82       test,erreur = self.node.item.verif_nom(nomFormule)
83       if test :
84          commentaire=nomFormule+" est un nom valide pour une FORMULE"
85       else :
86          commentaire=nomFormule+" n'est pas un nom valide pour une FORMULE"
87       self.editor.affiche_infos(commentaire) 
88
89   def argsSaisis(self):
90       arguments = self.LENomsArgs.text().latin1()
91       if arguments == '' : return
92
93       test,erreur = self.node.item.verif_arguments(arguments)
94       if test:
95          commentaire="Argument(s) valide(s) pour une FORMULE"
96       else:
97          commentaire="Argument(s) invalide(s) pour une FORMULE"
98       self.editor.affiche_infos(commentaire) 
99
100   def FormuleSaisie(self):
101       nomFormule = self.LENomFormule.text().latin1()
102       arguments  = self.LENomsArgs.text().latin1()
103       expression = self.LECorpsFormule.text().latin1()
104       if expression == '' : return
105       test,erreur = self.node.item.verif_formule_python((nomFormule,"REEL",arguments,expression))
106
107       if test:
108          commentaire="Corps de FORMULE valide"
109       else:
110          commentaire="Corps de FORMULE invalide"
111       self.editor.affiche_infos(commentaire) 
112
113
114   def BOkPressedFormule(self):
115       if self.parent.modified == 'n' : self.parent.init_modif()
116
117       nomFormule = self.LENomFormule.text().latin1()
118       test,erreur = self.node.item.verif_nom(nomFormule)
119       if not test :
120          self.editor.affiche_infos(erreur)
121          return
122
123       arguments  = self.LENomsArgs.text().latin1()
124       test,erreur = self.node.item.verif_arguments(arguments)
125       if not test :
126          self.editor.affiche_infos(erreur)
127          return
128
129       expression = self.LECorpsFormule.text().latin1()
130       test,erreur = self.node.item.verif_formule_python((nomFormule,"REEL",arguments,expression))
131       if not test :
132          self.editor.affiche_infos(erreur)
133          return
134
135       test=self.node.item.object.update_formule_python(formule=(nomFormule,"REEL",arguments,expression))
136       test,erreur = self.node.item.save_formule(nomFormule,"REEL",arguments,expression)
137       if test :
138          #self.node.update_texte()
139          #self.node.update_label()
140          #self.node.update_node()
141          self.node.onValid()
142          self.node.update_valid()
143          commentaire = "Formule modifiée"
144       else:
145          commentaire ="Formule incorrecte : " + erreur 
146       self.editor.init_modif()
147       self.editor.affiche_infos(commentaire)