1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2017 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 definir les objets graphiques
23 representant un objet de type FORMULE, cad le panneau et l'item de l'arbre
27 from __future__ import absolute_import
28 from . import compooper
30 from . import typeNode
33 class FormuleNode(browser.JDCNode,typeNode.PopUpMenuNode):
36 from .monWidgetFormule import MonWidgetFormule
37 return MonWidgetFormule(self,self.editor,self.item.object)
40 def createPopUpMenu(self):
41 typeNode.PopUpMenuNode.createPopUpMenu(self)
44 class FORMULETreeItem(compooper.EtapeTreeItem):
46 Classe servant a definir l'item porte par le noeud de l'arbre d'EFICAS
47 qui represente la FORMULE
52 self.setFunction = self.setValeur
54 # ---------------------------------------------------------------------------
55 # API de FORMULE pour l'arbre
56 # ---------------------------------------------------------------------------
59 Retourne la liste des fils de self
60 On considere que FORMULE n'a pas de fils
61 --> modification par rapport a MACRO classique
63 # dans EFICAS on ne souhaite pas afficher les mots-cles fils de FORMULE
64 # de facon traditionnelle
67 def getIconName(self):
69 Retourne le nom de l'icone a afficher dans l'arbre
70 Ce nom depend de la validite de l'objet
72 if self.object.isActif():
73 if self.object.isValid():
74 return "ast-green-square"
76 return "ast-red-square"
78 return "ast-white-text"
80 def getLabelText(self):
81 """ Retourne 3 valeurs :
82 - le texte a afficher dans le noeud representant l'item
83 - la fonte dans laquelle afficher ce texte
86 return self.labeltext,None,None
87 #if self.object.isActif():
88 # None --> fonte et couleur par defaut
89 # return tr(self.labeltext),None,None
91 # return tr(self.labeltext),None,None
92 #return self.labeltext,fontes.standard_italique,None
94 # ---------------------------------------------------------------------------
95 # Methodes permettant la modification et la lecture des attributs
96 # du parametre = API graphique de la FORMULE pour Panel et EFICAS
97 # ---------------------------------------------------------------------------
101 Retourne le nom de la FORMULE
103 return self.object.getNom()
107 Retourne le type de la valeur retournee par la FORMULE
109 return self.object.type_retourne
113 Retourne les arguments de la FORMULE
116 for mot in self.object.mcListe:
117 if mot.nom == 'NOM_PARA':
121 if args[0] == "(" and args[-1] ==")":
123 # transforme en tuple si ce n est pas deja le casa
132 Retourne le corps de la FORMULE
135 for mot in self.object.mcListe:
136 if mot.nom == 'VALE':
142 def getListeTypesAutorises(self):
144 Retourne la liste des types autorises pour les valeurs de sortie
147 return self.object.l_types_autorises
149 def saveFormule(self,new_nom,new_typ,new_arg,new_exp):
151 Verifie si (new_nom,new_typ,new_arg,new_exp) definit bien une FORMULE
153 - si oui, stocke ces parametres comme nouveaux parametres de la
154 FORMULE courante et retourne 1
155 - si non, laisse les parametres anciens de la FORMULE inchanges et
158 test,erreur = self.object.verifFormule_python(formule=(new_nom,new_typ,new_arg,
161 # la formule est bien correcte : on sauve les nouveaux parametres
162 test=self.object.updateFormulePython(formule=(new_nom,new_typ,new_exp,new_arg))
165 # ---------------------------------------------------------------------------
166 # Acces aux methodes de verification de l'objet FORM_ETAPE
167 # ---------------------------------------------------------------------------
169 def verifNom(self,nom):
171 Lance la verification du nom passe en argument
173 return self.object.verifNom(nom)
175 def verifArguments(self,arguments):
177 Lance la verification des arguments passes en argument
179 return self.object.verifArguments('('+arguments+')')
181 def verifFormule(self,formule):
183 Lance la verification de FORMULE passee en argument
185 return self.object.verifFormule(formule=formule)
188 def verifFormule_python(self,formule):
190 Lance la verification de FORMULE passee en argument
192 return self.object.verifFormule_python(formule=formule)
195 treeitem =FORMULETreeItem
196 objet = Accas.FORM_ETAPE