Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / InterfaceQT / compoparameval.py
1 # -*- coding: utf-8 -*-
2
3 """
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
6 d'EFICAS
7 """
8
9 # import modules Python
10 import string
11
12 # import modules EFICAS
13
14 from Editeur import Objecttreeitem
15
16
17 import browser
18 from qt import *
19
20 class Node(browser.JDCNode): pass
21 ##    def getPanel(self):
22 ##        """        
23 ##        """    
24 ##        return PARAM_EVALPanel( self, self.editor )
25
26
27 class PARAM_EVALTreeItem(Objecttreeitem.ObjectTreeItem):
28     """
29     Classe servant a définir l'item porté par le noeud de l'arbre d'EFICAS
30     qui représente le PARAMETRE
31     """
32     itemNode=Node
33 ##    panel = PARAM_EVALPanel
34
35     def init(self):
36       self.setfunction = self.set_valeur
37
38 # ---------------------------------------------------------------------------
39 #                   API du PARAMETRE pour l'arbre 
40 # ---------------------------------------------------------------------------
41
42     def GetIconName(self):
43       """
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 ...
47       """
48       if self.isactif():
49           if self.isvalid():
50               return "ast-green-square"
51           else:
52               return "ast-red-square"
53       else:
54           return "ast-white-square"
55
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
60         - la couleur du texte
61         """
62         return 'EVAL',Fonte_PARAMETRE,None
63
64     def GetText(self):
65       """
66       Retourne le texte a afficher apres le nom de la commande (ici apres 'parametre')
67       Ce texte est tronqué a 25 caracteres
68       """
69       texte = repr(self.object)
70       texte = string.split(texte,'\n')[0]
71       if len(texte) < 25 :
72           return texte
73       else :
74           return texte[0:24]+'...'
75
76     def GetSubList(self):
77       """
78       Retourne la liste des fils de self
79       """
80       return []
81     
82 # ---------------------------------------------------------------------------
83 #       Méthodes permettant la modification et la lecture des attributs
84 #       du parametre = API graphique du PARAMETRE pour Panel et EFICAS
85 # ---------------------------------------------------------------------------
86
87     def isvalid(self):
88       """
89       Indique si l'objet pointé par self est valide
90       """
91       return self.object.isvalid()
92     
93     def get_valeur(self):
94       """
95       Retourne une chaine représentant la valeur de l'objet PARAMETRE
96       cad de l'objet class_eval.EVAL
97       """
98       return self.object.get_valeur() or ''
99
100     def get_nom(self):
101       """
102       Retourne le nom du parametre
103       """
104       return self.object.get_nom()
105
106     def set_valeur(self,new_valeur):
107       """
108       Affecte new_valeur a l'objet PARAMETRE_EVAL
109       """
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)
114
115     def set_nom(self,new_nom):
116       """
117       Renomme le parametre
118       """
119       self.object.set_nom(new_nom)
120
121     def get_fr(self):
122       """
123       Retourne le fr associé au parametre, cad la bulle d'aide pour EFICAS
124       """
125       return "Définition d'un parametre de type EVAL"
126
127     def verif_nom(self,nom):
128       """
129       Lance la vérification de validité du nom passé en argument
130       """
131       return self.object.verif_nom(nom = nom)
132
133     def verif_eval(self,valeur):
134       """
135       Lance la vérification de validité de l'expression EVAL passée en argument
136       """
137       return self.object.verif_eval(exp_eval = valeur)
138
139     def save_parametre_eval(self,new_nom,new_val):
140       """
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
144       """
145       test,erreur = self.object.verif_parametre_eval(param=(new_nom,new_val))
146       if test :
147           # la formule est bien correcte : on sauve les nouveaux parametres
148           self.object.update(param=(new_nom,new_val))
149       return test,erreur
150       
151 import Extensions.parametre_eval
152 treeitem =PARAM_EVALTreeItem
153 objet = Extensions.parametre_eval.PARAMETRE_EVAL