Salome HOME
sauve0206
[tools/eficas.git] / Ihm / I_MCSIMP.py
index be6447f0f2dc006cdbcb64290d7eda52913662d3..18ed98ff9b6e63456b162881a72fc7b4190ad59d 100644 (file)
@@ -95,6 +95,7 @@ class MCSIMP(I_OBJECT.OBJECT):
         if self.jdc.appli.appliEficas.dict_reels[clefobj].has_key(self.valeur):
            txt=self.jdc.appli.appliEficas.dict_reels[clefobj][self.valeur]
     elif type(self.valeur) in (types.ListType,types.TupleType) :
+      if self.valeur==[]: return str(self.valeur)
       # Traitement des listes
       txt='('
       sep=''
@@ -109,12 +110,24 @@ class MCSIMP(I_OBJECT.OBJECT):
            else :
               txt=txt + sep + str(val)
         else: 
-           txt = txt + sep+ str(val)
-        if len(txt) > 200:
-            #ligne trop longue, on tronque
-            txt=txt+" ..."
-            break
+           if isinstance(val,types.TupleType):
+              texteVal='('
+              for i in val :
+                  if isinstance(i, types.StringType) : texteVal = texteVal +"'"+str(i)+"'," 
+                  else : texteVal = texteVal + str(i)+','
+              texteVal=texteVal[:-1]+')'
+           else : 
+              if isinstance(val,types.StringType): texteVal="'"+str(val)+"'"
+              else :texteVal=str(val)
+           txt = txt + sep+ texteVal 
+
+##        if len(txt) > 200:
+##            #ligne trop longue, on tronque
+##            txt=txt+" ..."
+##            break
         sep=','
+      # cas des listes de tuples de longueur 1
+      if isinstance(val,types.TupleType) and len(self.valeur) == 1 : txt=txt+','
       txt=txt+')'
     else:
       # Traitement des autres cas
@@ -229,6 +242,14 @@ class MCSIMP(I_OBJECT.OBJECT):
   def isoblig(self):
     return self.definition.statut=='o'
 
+  def isImmuable(self):
+    return self.definition.homo=='constant'
+
+  def isInformation(self):
+    return self.definition.homo=='information'
+
+
+
   def valid_val(self,valeur):
       """
         Verifie que la valeur passee en argument (valeur) est valide
@@ -600,8 +621,11 @@ class MCSIMP(I_OBJECT.OBJECT):
       return valid,comment
 
   def valideMatrice(self,cr):
-       print "jjjjjjjjjjjjjjjj"
        #Attention, la matrice contient comme dernier tuple l ordre des variables
+       if self.valideEnteteMatrice()==False :
+           self.set_valid(0)
+           if cr == "oui" : self.cr.fatal(tr("La matrice n'a pas le bon entete"))
+           return 0
        if self.monType.methodeCalculTaille != None :
            apply (MCSIMP.__dict__[self.monType.methodeCalculTaille],(self,))
        try :
@@ -624,11 +648,23 @@ class MCSIMP(I_OBJECT.OBJECT):
        self.set_valid(0)
        return 0
 
+
   def NbDeVariables(self):
        listeVariables=self.jdc.get_variables(self.etape)
        self.monType.nbLigs=len(listeVariables)
        self.monType.nbCols=len(listeVariables)
       
+  def valideEnteteMatrice(self):
+      if self.jdc.get_distributions(self.etape) == () or self.valeur == None : return 0
+      if self.jdc.get_distributions(self.etape) != self.valeur[0] : return 0
+      return 1
+     
+  def changeEnteteMatrice(self):
+      a=[self.jdc.get_distributions(self.etape),]
+      for t in self.valeur[1:]:
+         a.append(t)
+      self.valeur=a
+
 
   def NbDeDistributions(self):
        listeVariables=self.jdc.get_distributions(self.etape)