Salome HOME
sauve0206
[tools/eficas.git] / Ihm / I_MCSIMP.py
index e5fae814d3a9202583d15f92a7a084efc3001932..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=''
@@ -112,15 +113,18 @@ class MCSIMP(I_OBJECT.OBJECT):
            if isinstance(val,types.TupleType):
               texteVal='('
               for i in val :
-                  texteVal = texteVal + str(i)+','
+                  if isinstance(i, types.StringType) : texteVal = texteVal +"'"+str(i)+"'," 
+                  else : texteVal = texteVal + str(i)+','
               texteVal=texteVal[:-1]+')'
-           else : texteVal=str(val)
+           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
+##        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+','
@@ -618,6 +622,10 @@ class MCSIMP(I_OBJECT.OBJECT):
 
   def valideMatrice(self,cr):
        #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 :
@@ -640,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)