1 # -*- coding: utf-8 -*-
4 Ce module contient les classes permettant de définir les objets graphiques
5 représentant un objet de type FORMULE, cad le panneau et l'item de l'arbre
16 class FormuleNode(browser.JDCNode,typeNode.PopUpMenuNode):
20 from monFormulePanel import MonFormulePanel
21 return MonFormulePanel(self,parent=self.editor)
24 def createPopUpMenu(self):
25 typeNode.PopUpMenuNode.createPopUpMenu(self)
28 class FORMULETreeItem(compooper.EtapeTreeItem):
30 Classe servant a définir l'item porté par le noeud de l'arbre d'EFICAS
31 qui représente la FORMULE
36 self.setfunction = self.set_valeur
38 # ---------------------------------------------------------------------------
39 # API de FORMULE pour l'arbre
40 # ---------------------------------------------------------------------------
43 Retourne la liste des fils de self
44 On considére que FORMULE n'a pas de fils
45 --> modification par rapport a MACRO classique
47 # dans EFICAS on ne souhaite pas afficher les mots-clés fils de FORMULE
48 # de façon traditionnelle
51 def GetIconName(self):
53 Retourne le nom de l'icone à afficher dans l'arbre
54 Ce nom dépend de la validité de l'objet
56 if self.object.isactif():
57 self.object.state="modified"
58 if self.object.isvalid():
59 return "ast-green-square"
61 return "ast-red-square"
63 return "ast-white-text"
65 def GetLabelText(self):
66 """ Retourne 3 valeurs :
67 - le texte a afficher dans le noeud représentant l'item
68 - la fonte dans laquelle afficher ce texte
71 if self.object.isactif():
72 # None --> fonte et couleur par défaut
73 return self.labeltext,None,None
75 return self.labeltext,None,None
76 #return self.labeltext,fontes.standard_italique,None
78 # ---------------------------------------------------------------------------
79 # Méthodes permettant la modification et la lecture des attributs
80 # du paramètre = API graphique de la FORMULE pour Panel et EFICAS
81 # ---------------------------------------------------------------------------
85 Retourne le nom de la FORMULE
87 return self.object.get_nom()
91 Retourne le type de la valeur retournée par la FORMULE
93 return self.object.type_retourne
97 Retourne les arguments de la FORMULE
100 for mot in self.object.mc_liste:
101 if mot.nom == 'NOM_PARA':
105 if args[0] == "(" and args[-1] ==")":
107 # transforme en tuple si ce n est pas déja le casa
109 args=string.split(args,',')
116 Retourne le corps de la FORMULE
119 for mot in self.object.mc_liste:
120 if mot.nom == 'VALE':
126 def get_liste_types_autorises(self):
128 Retourne la liste des types autorises pour les valeurs de sortie
131 return self.object.l_types_autorises
133 def save_formule(self,new_nom,new_typ,new_arg,new_exp):
135 Vérifie si (new_nom,new_typ,new_arg,new_exp) définit bien une FORMULE
137 - si oui, stocke ces paramètres comme nouveaux paramètres de la
138 FORMULE courante et retourne 1
139 - si non, laisse les paramètres anciens de la FORMULE inchangés et
142 test,erreur = self.object.verif_formule_python(formule=(new_nom,new_typ,new_arg,
145 # la formule est bien correcte : on sauve les nouveaux paramètres
146 test=self.object.update_formule_python(formule=(new_nom,new_typ,new_exp,new_arg))
149 # ---------------------------------------------------------------------------
150 # Accès aux méthodes de vérification de l'objet FORM_ETAPE
151 # ---------------------------------------------------------------------------
153 def verif_nom(self,nom):
155 Lance la vérification du nom passé en argument
157 return self.object.verif_nom(nom)
159 def verif_arguments(self,arguments):
161 Lance la vérification des arguments passés en argument
163 return self.object.verif_arguments('('+arguments+')')
165 def verif_formule(self,formule):
167 Lance la vérification de FORMULE passée en argument
169 return self.object.verif_formule(formule=formule)
172 def verif_formule_python(self,formule):
174 Lance la vérification de FORMULE passée en argument
176 return self.object.verif_formule_python(formule=formule)
179 treeitem =FORMULETreeItem
180 objet = Accas.FORM_ETAPE