1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013 EDF R&D
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 Ce module contient les classes permettant de définir les objets graphiques
23 représentant un objet de type FORMULE, cad le panneau et l'item de l'arbre
33 class FormuleNode(browser.JDCNode,typeNode.PopUpMenuNode):
37 from monFormulePanel import MonFormulePanel
38 return MonFormulePanel(self,parent=self.editor)
41 def createPopUpMenu(self):
42 typeNode.PopUpMenuNode.createPopUpMenu(self)
45 class FORMULETreeItem(compooper.EtapeTreeItem):
47 Classe servant a définir l'item porté par le noeud de l'arbre d'EFICAS
48 qui représente la FORMULE
53 self.setfunction = self.set_valeur
55 # ---------------------------------------------------------------------------
56 # API de FORMULE pour l'arbre
57 # ---------------------------------------------------------------------------
60 Retourne la liste des fils de self
61 On considére que FORMULE n'a pas de fils
62 --> modification par rapport a MACRO classique
64 # dans EFICAS on ne souhaite pas afficher les mots-clés fils de FORMULE
65 # de façon traditionnelle
68 def GetIconName(self):
70 Retourne le nom de l'icone à afficher dans l'arbre
71 Ce nom dépend de la validité de l'objet
73 if self.object.isactif():
74 if self.object.isvalid():
75 return "ast-green-square"
77 return "ast-red-square"
79 return "ast-white-text"
81 def GetLabelText(self):
82 """ Retourne 3 valeurs :
83 - le texte a afficher dans le noeud représentant l'item
84 - la fonte dans laquelle afficher ce texte
87 return self.labeltext,None,None
88 #if self.object.isactif():
89 # None --> fonte et couleur par défaut
90 # return tr(self.labeltext),None,None
92 # return tr(self.labeltext),None,None
93 #return self.labeltext,fontes.standard_italique,None
95 # ---------------------------------------------------------------------------
96 # Méthodes permettant la modification et la lecture des attributs
97 # du paramètre = API graphique de la FORMULE pour Panel et EFICAS
98 # ---------------------------------------------------------------------------
102 Retourne le nom de la FORMULE
104 return self.object.get_nom()
108 Retourne le type de la valeur retournée par la FORMULE
110 return self.object.type_retourne
114 Retourne les arguments de la FORMULE
117 for mot in self.object.mc_liste:
118 if mot.nom == 'NOM_PARA':
122 if args[0] == "(" and args[-1] ==")":
124 # transforme en tuple si ce n est pas déja le casa
126 args=string.split(args,',')
133 Retourne le corps de la FORMULE
136 for mot in self.object.mc_liste:
137 if mot.nom == 'VALE':
143 def get_liste_types_autorises(self):
145 Retourne la liste des types autorises pour les valeurs de sortie
148 return self.object.l_types_autorises
150 def save_formule(self,new_nom,new_typ,new_arg,new_exp):
152 Vérifie si (new_nom,new_typ,new_arg,new_exp) définit bien une FORMULE
154 - si oui, stocke ces paramètres comme nouveaux paramètres de la
155 FORMULE courante et retourne 1
156 - si non, laisse les paramètres anciens de la FORMULE inchangés et
159 test,erreur = self.object.verif_formule_python(formule=(new_nom,new_typ,new_arg,
162 # la formule est bien correcte : on sauve les nouveaux paramètres
163 test=self.object.update_formule_python(formule=(new_nom,new_typ,new_exp,new_arg))
166 # ---------------------------------------------------------------------------
167 # Accès aux méthodes de vérification de l'objet FORM_ETAPE
168 # ---------------------------------------------------------------------------
170 def verif_nom(self,nom):
172 Lance la vérification du nom passé en argument
174 return self.object.verif_nom(nom)
176 def verif_arguments(self,arguments):
178 Lance la vérification des arguments passés en argument
180 return self.object.verif_arguments('('+arguments+')')
182 def verif_formule(self,formule):
184 Lance la vérification de FORMULE passée en argument
186 return self.object.verif_formule(formule=formule)
189 def verif_formule_python(self,formule):
191 Lance la vérification de FORMULE passée en argument
193 return self.object.verif_formule_python(formule=formule)
196 treeitem =FORMULETreeItem
197 objet = Accas.FORM_ETAPE