]> SALOME platform Git repositories - tools/eficas.git/blob - InterfaceQT/monUniqueCompPanel.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / InterfaceQT / monUniqueCompPanel.py
1 # -*- coding: utf-8 -*-
2 #            CONFIGURATION MANAGEMENT OF EDF VERSION
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8 # (AT YOUR OPTION) ANY LATER VERSION.
9 #
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14 #
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
18 #
19 #
20 # ======================================================================
21 # Modules Python
22 import string,types,os,re
23
24 # Modules Eficas
25 import prefs 
26
27 from qt import *
28
29 from desUniqueComp import DUnComp
30 from qtCommun      import QTPanel
31 from politiquesValidation import PolitiqueUnique
32
33 # Import des panels
34
35 #class MonUniqueCompPanel(DUnComp,QTPanel,SaisieValeur):
36 class MonUniqueCompPanel(DUnComp,QTPanel,PolitiqueUnique):
37   """
38   Classe définissant le panel associé aux mots-clés qui demandent
39   à l'utilisateur de choisir une seule valeur parmi une liste de valeurs
40   discrètes
41   """
42   def __init__(self,node, parent = None,name = None,fl = 0):
43         QTPanel.__init__(self,node,parent)
44         DUnComp.__init__(self,parent,name,fl)
45         self.politique=PolitiqueUnique(node,parent)
46         self.InitLinesVal()
47         self.InitCommentaire()
48
49   def InitLinesVal(self):
50         valeur=self.node.item.get_valeur()
51         if valeur == None or valeur == '' : return
52         if type(valeur) not in (types.ListType,types.TupleType) :
53            self.LEcomp.setText(str(valeur))
54         else :
55            typ_cplx,x1,x2=valeur
56            self.LEReel.setText(str(x1))
57            self.LEImag.setText(str(x2))
58            if typ_cplx == "RI" :
59               self.buttonGroup1.setButton(1)
60            else :
61               self.buttonGroup1.setButton(0)
62       
63
64   def LEcompRPressed(self) :
65         self.LEReel.clear()
66         self.LEImag.clear()
67         commentaire="expression valide"
68         valeur = str(self.LEcomp.text())
69         d={}
70         try :
71           v=eval(valeur,d)
72         except :
73           commentaire="expression invalide"
74           self.editor.affiche_infos(commentaire)
75           return
76         try :
77           i=v.imag
78         except :
79           commentaire="expression n est pas de la forme a+bj"
80         self.editor.affiche_infos(commentaire)
81           
82   def LEReelRPressed(self):
83         self.LEcomp.clear()
84         commentaire="expression valide"
85         valeur = str(self.LEReel.text())
86         try :
87           a=string.atof(valeur)
88         except :
89           commentaire="expression invalide"
90         self.editor.affiche_infos(commentaire)
91
92   def LEImagRPressed(self):
93         self.LEcomp.clear()
94         commentaire="expression valide"
95         valeur = str(self.LEImag.text())
96         try :
97           a=string.atof(valeur)
98         except :
99           commentaire="expression invalide"
100         self.editor.affiche_infos(commentaire)
101
102   def BOkPressed(self):
103         if self.LEcomp.text()== "" : 
104            valeur = self.getValeurAster()
105         else :
106            if self.LEReel.text() != "" or self.LEImag.text() != "" :
107               commentaire="entrer une seule valeur SVP"
108               self.editor.affiche_infos(commentaire)
109               return
110            valeur=  self.getValeurComp()
111         self.politique.RecordValeur(valeur)
112
113   def getValeurAster(self):
114       """
115       Retourne le complexe saisi par l'utilisateur
116       """
117       l=[]
118       if  (self.buttonGroup1.selectedId() == 1 ) :
119          l.append("MP")
120       elif (self.buttonGroup1.selectedId() == 0) :
121          l.append("RI")
122       else :
123          commentaire="saisir le type de complexe"
124          self.editor.affiche_infos(commentaire)
125          return None
126       try :
127          l.append(string.atof(str(self.LEReel.text())))
128          l.append(string.atof(str(self.LEImag.text())))
129       except :
130          return None
131       return `tuple(l)`
132
133   def getValeurComp(self):
134         commentaire="expression valide"
135         valeur = str(self.LEcomp.text())
136         d={}
137         try :
138           v=eval(valeur,d)
139         except :
140           commentaire="expression invalide"
141           self.editor.affiche_infos(commentaire)
142           return None
143         try :
144           i=v.imag
145         except :
146           commentaire="expression n est pas de la forme a+bj"
147           self.editor.affiche_infos(commentaire)
148           return None
149         return v
150
151   def InitCommentaire(self):
152         commentaire='Un complexe est attendu'
153         aideval=self.node.item.aide()
154         commentaire=commentaire +"\n"+ aideval
155         self.Commentaire.setText(QString(commentaire))
156
157
158   def BSupPressed(self):
159         QTPanel.BSupPressed(self)
160
161   def ViewDoc(self):
162       QTPanel.ViewDoc(self)
163