Salome HOME
Pour Adao
[tools/eficas.git] / InterfaceQT4 / compoparam.py
1 # -*- coding: utf-8 -*-
2 # Copyright (C) 2007-2013   EDF R&D
3 #
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License.
8 #
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Lesser General Public License for more details.
13 #
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 #
18 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19 #
20 """
21    Ce module contient les classes permettant de définir les objets graphiques
22    représentant un objet de type PARAMETRE, cad le panneau et l'item de l'arbre
23    d'EFICAS
24 """
25
26 # import modules Python
27 import string, types
28 from Extensions.i18n import tr
29
30 # import modules EFICAS
31 from Editeur     import Objecttreeitem
32 import browser
33 import typeNode
34
35
36 class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): 
37     def getPanel2(self):
38         """        
39         """    
40         from monParamPanel  import MonParamPanel
41         return MonParamPanel(self, parent=self.editor )
42
43     def createPopUpMenu(self):
44         typeNode.PopUpMenuNodePartiel.createPopUpMenu(self)
45         self.menu.removeAction(self.Documentation)
46
47     def doPaste(self,node_selected):
48         return None
49
50
51
52 class PARAMTreeItem(Objecttreeitem.ObjectTreeItem):
53     """
54     Classe servant à définir l'item porté par le noeud de l'arbre d'EFICAS
55     qui représente le PARAMETRE
56     """
57     itemNode=Node
58
59     def init(self):      
60       self.setfunction = self.set_valeur
61
62 # ---------------------------------------------------------------------------
63 #                   API du PARAMETRE pour l'arbre 
64 # ---------------------------------------------------------------------------
65
66     def GetIconName(self):
67       """
68       Retourne le nom de l'icone associée au noeud qui porte self,
69       dépendant de la validité de l'objet
70       NB : un PARAMETRE est toujours valide ...
71       """
72       if self.isactif():
73           if self.isvalid():
74               return "ast-green-square"
75           else:
76               return "ast-red-square"
77       else:
78           return "ast-white-square"
79
80     def GetLabelText(self):
81         """ Retourne 3 valeurs :
82         - le texte à afficher dans le noeud représentant l'item
83         - la fonte dans laquelle afficher ce texte
84         - la couleur du texte
85         """
86         return tr('PARAMETRE'),None,None 
87
88     def GetText(self):
89       """
90       Retourne le texte à afficher aprês le nom de la commande (ici apres 'parametre')
91       Ce texte est tronqué à 25 caractêres
92       """
93       texte=self.object.nom+"="+str(self.object.valeur)
94       if type(self.object.valeur) == types.ListType :
95           texte=self.nom+' = ['
96           for l in self.object.valeur :
97             texte=texte+str(l) +","
98           texte=texte[0:-1]+']'
99       texte = string.split(texte,'\n')[0]
100       if len(texte) < 25 :
101           return texte
102       else :
103           return texte[0:24]+'...'
104
105     def GetSubList(self):
106       """
107       Retourne la liste des fils de self
108       """
109       return []
110     
111 # ---------------------------------------------------------------------------
112 #       Méthodes permettant la modification et la lecture des attributs
113 #       du parametre = API graphique du PARAMETRE pour Panel et EFICAS
114 # ---------------------------------------------------------------------------
115
116     def get_valeur(self):
117       """
118       Retourne la valeur de l'objet PARAMETRE cad son texte
119       """
120       if self.object.valeur is None: return ''
121       else: return self.object.valeur 
122
123     def get_nom(self):
124       """
125       Retourne le nom du parametre
126       """
127       return self.object.nom
128
129     def set_valeur(self,new_valeur):
130       """
131       Affecte valeur à l'objet PARAMETRE
132       """
133       self.object.set_valeur(new_valeur)
134
135     def set_nom(self,new_nom):
136       """
137       Renomme le parametre
138       """
139       self.object.set_nom(new_nom)
140       #self.object.set_attribut('nom',new_nom)
141
142     def get_fr(self):
143       """
144       Retourne le fr associé au parametre, cad la bulle d'aide pour EFICAS
145       """
146       return tr("Definition d'un parametre")
147     
148 import Extensions.parametre
149 treeitem =PARAMTreeItem
150 objet = Extensions.parametre.PARAMETRE