Salome HOME
CCAR: modifications pour :
[tools/eficas.git] / Editeur / uniqueassdpanel.py
index 4906321bf957427bb24261d35ba2dc652718aed0..89cf134143113dccf2717ae91a1ed23522415859 100644 (file)
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
@@ -62,19 +63,19 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel):
           self.parent.appli.affiche_infos("Valeur du mot-clé non autorisée :"+mess)
       elif self.node.item.isvalid() :
           self.parent.appli.affiche_infos('Valeur du mot-clé enregistrée')
-          if self.node.item.get_position()=='global':
-              self.node.etape.verif_all()
-          elif self.node.item.get_position()=='global_jdc':
-              self.node.racine.verif_all()
-          else :
-              self.node.parent.verif()
-          self.node.update()
+          #if self.node.item.get_position()=='global':
+              #self.node.etape.verif_all()
+          #elif self.node.item.get_position()=='global_jdc':
+              #self.node.racine.verif_all()
+          #else :
+              #self.node.parent.verif()
+          #self.node.update()
       else :
           cr = self.node.item.get_cr()
           mess = "Valeur du mot-clé non autorisée :"+cr.get_mess_fatal()
           self.reset_old_valeur(anc_val,mess=mess)
 
-  def makeValeurPage(self,page):
+  def makeValeurPage(self,page,reel="non"):
       """
           Génère la page de saisie de la valeur du mot-clé simple courant qui doit être une 
           SD de type dérivé d'ASSD
@@ -89,10 +90,11 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel):
       self.valeur_choisie = StringVar()
       self.valeur_choisie.set('')
       min,max =  self.node.item.GetMinMax()
-      if (min == 1 and min == max and len(liste_noms_sd)==1):
+      if (min == 1 and min == max and len(liste_noms_sd)==1 ):
           if self.valeur_choisie.get() != liste_noms_sd[0]:
-            self.valeur_choisie.set(liste_noms_sd[0])
-             self.valid_valeur_automatique()
+            if ('R' not in self.node.item.get_type()) :
+               self.valeur_choisie.set(liste_noms_sd[0])
+                self.valid_valeur_automatique()
         
       self.frame_valeur = Frame(page)
       self.frame_valeur.pack(fill='both',expand=1)
@@ -111,6 +113,13 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel):
       Label(self.frame_valeur,textvariable=self.valeur_choisie).place(relx=0.5,rely=0.6)
       # affichage de la valeur courante
       self.display_valeur()
+      if self.__class__.__name__ == 'UNIQUE_ASSD_Panel_Reel' :
+        Label(self.frame_valeur,text='Valeur Réelle').place(relx=0.1,rely=0.9)
+       self.entry = Entry(self.frame_valeur,relief='sunken')
+        self.entry.place(relx=0.28,rely=0.9,relwidth=0.6)
+        self.entry.bind("<Return>",lambda e,c=self.valid_valeur_reel:c())
+
+
 
   def get_bulle_aide(self):
       """
@@ -123,10 +132,17 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel):
       Retourne la phrase d'aide indiquant de quel type doit être la valeur à donner par l'utilisateur
       """
       mc = self.node.item.get_definition()
-      type = mc.type[0].__name__  
+      try :
+       type = mc.type[0].__name__  
+      except :
+        type = str(mc.type[0])
       if len(mc.type)>1 :
           for typ in mc.type[1:] :
-              type = type + ' ou '+typ.__name__
+             try :
+               l=typ.__name__
+             except:
+               l=str(typ)
+              type = type + ' ou '+l
       commentaire="Un objet de type "+type+" est attendu"
       aideval=self.node.item.aide()
       commentaire=commentaire +"\n"+ aideval
@@ -168,3 +184,25 @@ class UNIQUE_ASSD_Panel(UNIQUE_Panel):
   def erase_valeur(self):
       pass
 
+  def appel_make(self,page):
+      self.makeValeurPage(page,reel="oui")
+      
+class UNIQUE_ASSD_Panel_Reel(UNIQUE_ASSD_Panel):
+  def valid_valeur_reel(self):
+      if self.parent.modified == 'n' : self.parent.init_modif()
+      anc_val = self.node.item.get_valeur()
+      valeurentree = self.entry.get()
+      self.valeur_choisie.set(valeurentree)
+      self.valid_valeur()
+
+  def display_valeur(self):
+      valeur = self.node.item.get_valeur()
+      if valeur == None or valeur == '' : return # pas de valeur à afficher ...
+      if type(valeur) == types.FloatType :
+         self.valeur_choisie.set(valeur)
+      else :
+         self.valeur_choisie.set(valeur.nom)
+
+       
+