1 # -*- coding: utf-8 -*-
4 Ce module contient les classes permettant de définir les objets graphiques
5 représentant un objet de type PARAMETRE_EVAL, cad le panneau et l'item de l'arbre
9 # import modules Python
12 # import modules EFICAS
14 from Editeur import Objecttreeitem
20 class Node(browser.JDCNode): pass
21 ## def getPanel(self):
24 ## return PARAM_EVALPanel( self, self.editor )
27 class PARAM_EVALTreeItem(Objecttreeitem.ObjectTreeItem):
29 Classe servant a définir l'item porté par le noeud de l'arbre d'EFICAS
30 qui représente le PARAMETRE
33 ## panel = PARAM_EVALPanel
36 self.setfunction = self.set_valeur
38 # ---------------------------------------------------------------------------
39 # API du PARAMETRE pour l'arbre
40 # ---------------------------------------------------------------------------
42 def GetIconName(self):
44 Retourne le nom de l'icone associée au noeud qui porte self,
45 dépendant de la validité de l'objet
46 NB : un PARAMETRE est toujours valide ...
50 return "ast-green-square"
52 return "ast-red-square"
54 return "ast-white-square"
56 def GetLabelText(self):
57 """ Retourne 3 valeurs :
58 - le texte a afficher dans le noeud représentant l'item
59 - la fonte dans laquelle afficher ce texte
62 return 'EVAL',Fonte_PARAMETRE,None
66 Retourne le texte a afficher apres le nom de la commande (ici apres 'parametre')
67 Ce texte est tronqué a 25 caracteres
69 texte = repr(self.object)
70 texte = string.split(texte,'\n')[0]
74 return texte[0:24]+'...'
78 Retourne la liste des fils de self
82 # ---------------------------------------------------------------------------
83 # Méthodes permettant la modification et la lecture des attributs
84 # du parametre = API graphique du PARAMETRE pour Panel et EFICAS
85 # ---------------------------------------------------------------------------
89 Indique si l'objet pointé par self est valide
91 return self.object.isvalid()
95 Retourne une chaine représentant la valeur de l'objet PARAMETRE
96 cad de l'objet class_eval.EVAL
98 return self.object.get_valeur() or ''
102 Retourne le nom du parametre
104 return self.object.get_nom()
106 def set_valeur(self,new_valeur):
108 Affecte new_valeur a l'objet PARAMETRE_EVAL
110 # on construit le texte de la nouvelle valeur
111 new_valeur = 'EVAL("""'+new_valeur+'""")'
112 # on affecte la nouvelle valeur a self.object
113 self.object.set_valeur(new_valeur)
115 def set_nom(self,new_nom):
119 self.object.set_nom(new_nom)
123 Retourne le fr associé au parametre, cad la bulle d'aide pour EFICAS
125 return "Définition d'un parametre de type EVAL"
127 def verif_nom(self,nom):
129 Lance la vérification de validité du nom passé en argument
131 return self.object.verif_nom(nom = nom)
133 def verif_eval(self,valeur):
135 Lance la vérification de validité de l'expression EVAL passée en argument
137 return self.object.verif_eval(exp_eval = valeur)
139 def save_parametre_eval(self,new_nom,new_val):
141 Vérifie si (new_nom,new_val) définit bien un EVAL licite :
142 - si oui, stocke ces parametres comme nouveaux parametres de l'EVAL courant et retourne 1
143 - si non, laisse les parametres anciens de EVAL inchangés et retourne 0
145 test,erreur = self.object.verif_parametre_eval(param=(new_nom,new_val))
147 # la formule est bien correcte : on sauve les nouveaux parametres
148 self.object.update(param=(new_nom,new_val))
151 import Extensions.parametre_eval
152 treeitem =PARAM_EVALTreeItem
153 objet = Extensions.parametre_eval.PARAMETRE_EVAL