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 if self.object.isvalid():
57 return "ast-green-square"
59 return "ast-red-square"
61 return "ast-white-text"
63 def GetLabelText(self):
64 """ Retourne 3 valeurs :
65 - le texte a afficher dans le noeud représentant l'item
66 - la fonte dans laquelle afficher ce texte
69 if self.object.isactif():
70 # None --> fonte et couleur par défaut
71 return self.labeltext,None,None
73 return self.labeltext,None,None
74 #return self.labeltext,fontes.standard_italique,None
76 # ---------------------------------------------------------------------------
77 # Méthodes permettant la modification et la lecture des attributs
78 # du paramètre = API graphique de la FORMULE pour Panel et EFICAS
79 # ---------------------------------------------------------------------------
83 Retourne le nom de la FORMULE
85 return self.object.get_nom()
89 Retourne le type de la valeur retournée par la FORMULE
91 return self.object.type_retourne
95 Retourne les arguments de la FORMULE
98 for mot in self.object.mc_liste:
99 if mot.nom == 'NOM_PARA':
103 if args[0] == "(" and args[-1] ==")":
105 # transforme en tuple si ce n est pas déja le casa
107 args=string.split(args,',')
114 Retourne le corps de la FORMULE
117 for mot in self.object.mc_liste:
118 if mot.nom == 'VALE':
124 def get_liste_types_autorises(self):
126 Retourne la liste des types autorises pour les valeurs de sortie
129 return self.object.l_types_autorises
131 def save_formule(self,new_nom,new_typ,new_arg,new_exp):
133 Vérifie si (new_nom,new_typ,new_arg,new_exp) définit bien une FORMULE
135 - si oui, stocke ces paramètres comme nouveaux paramètres de la
136 FORMULE courante et retourne 1
137 - si non, laisse les paramètres anciens de la FORMULE inchangés et
140 test,erreur = self.object.verif_formule_python(formule=(new_nom,new_typ,new_arg,
143 # la formule est bien correcte : on sauve les nouveaux paramètres
144 test=self.object.update_formule_python(formule=(new_nom,new_typ,new_exp,new_arg))
147 # ---------------------------------------------------------------------------
148 # Accès aux méthodes de vérification de l'objet FORM_ETAPE
149 # ---------------------------------------------------------------------------
151 def verif_nom(self,nom):
153 Lance la vérification du nom passé en argument
155 return self.object.verif_nom(nom)
157 def verif_arguments(self,arguments):
159 Lance la vérification des arguments passés en argument
161 return self.object.verif_arguments('('+arguments+')')
163 def verif_formule(self,formule):
165 Lance la vérification de FORMULE passée en argument
167 return self.object.verif_formule(formule=formule)
170 def verif_formule_python(self,formule):
172 Lance la vérification de FORMULE passée en argument
174 return self.object.verif_formule_python(formule=formule)
177 treeitem =FORMULETreeItem
178 objet = Accas.FORM_ETAPE