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
15 class FormuleNode(browser.JDCNode,typeNode.PopUpMenuNode):
19 from monFormulePanel import MonFormulePanel
20 return MonFormulePanel(self,parent=self.editor)
23 def createPopUpMenu(self):
24 typeNode.PopUpMenuNode.createPopUpMenu(self)
27 class FORMULETreeItem(compooper.EtapeTreeItem):
29 Classe servant a définir l'item porté par le noeud de l'arbre d'EFICAS
30 qui représente la FORMULE
35 self.setfunction = self.set_valeur
37 # ---------------------------------------------------------------------------
38 # API de FORMULE pour l'arbre
39 # ---------------------------------------------------------------------------
42 Retourne la liste des fils de self
43 On considére que FORMULE n'a pas de fils
44 --> modification par rapport a MACRO classique
46 # dans EFICAS on ne souhaite pas afficher les mots-clés fils de FORMULE
47 # de façon traditionnelle
50 def GetIconName(self):
52 Retourne le nom de l'icone à afficher dans l'arbre
53 Ce nom dépend de la validité de l'objet
55 if self.object.isactif():
56 self.object.state="modified"
57 if self.object.isvalid():
58 return "ast-green-square"
60 return "ast-red-square"
62 return "ast-white-text"
64 def GetLabelText(self):
65 """ Retourne 3 valeurs :
66 - le texte a afficher dans le noeud représentant l'item
67 - la fonte dans laquelle afficher ce texte
70 if self.object.isactif():
71 # None --> fonte et couleur par défaut
72 return self.labeltext,None,None
74 return self.labeltext,None,None
75 #return self.labeltext,fontes.standard_italique,None
77 # ---------------------------------------------------------------------------
78 # Méthodes permettant la modification et la lecture des attributs
79 # du paramètre = API graphique de la FORMULE pour Panel et EFICAS
80 # ---------------------------------------------------------------------------
84 Retourne le nom de la FORMULE
86 return self.object.get_nom()
90 Retourne le type de la valeur retournée par la FORMULE
92 return self.object.type_retourne
96 Retourne les arguments de la FORMULE
99 for mot in self.object.mc_liste:
100 if mot.nom == 'NOM_PARA':
104 if args[0] == "(" and args[-1] ==")":
106 # transforme en tuple si ce n est pas déja le casa
108 args=string.split(args,',')
115 Retourne le corps de la FORMULE
118 for mot in self.object.mc_liste:
119 if mot.nom == 'VALE':
125 def get_liste_types_autorises(self):
127 Retourne la liste des types autorises pour les valeurs de sortie
130 return self.object.l_types_autorises
132 def save_formule(self,new_nom,new_typ,new_arg,new_exp):
134 Vérifie si (new_nom,new_typ,new_arg,new_exp) définit bien une FORMULE
136 - si oui, stocke ces paramètres comme nouveaux paramètres de la
137 FORMULE courante et retourne 1
138 - si non, laisse les paramètres anciens de la FORMULE inchangés et
141 test,erreur = self.object.verif_formule_python(formule=(new_nom,new_typ,new_arg,
144 # la formule est bien correcte : on sauve les nouveaux paramètres
145 test=self.object.update_formule_python(formule=(new_nom,new_typ,new_exp,new_arg))
148 # ---------------------------------------------------------------------------
149 # Accès aux méthodes de vérification de l'objet FORM_ETAPE
150 # ---------------------------------------------------------------------------
152 def verif_nom(self,nom):
154 Lance la vérification du nom passé en argument
156 return self.object.verif_nom(nom)
158 def verif_arguments(self,arguments):
160 Lance la vérification des arguments passés en argument
162 return self.object.verif_arguments('('+arguments+')')
164 def verif_formule(self,formule):
166 Lance la vérification de FORMULE passée en argument
168 return self.object.verif_formule(formule=formule)
171 def verif_formule_python(self,formule):
173 Lance la vérification de FORMULE passée en argument
175 return self.object.verif_formule_python(formule=formule)
178 treeitem =FORMULETreeItem
179 objet = Accas.FORM_ETAPE