]> SALOME platform Git repositories - tools/eficas.git/blobdiff - InterfaceQT4/monWidgetPlusieursInto.py
Salome HOME
onItem=Deplie
[tools/eficas.git] / InterfaceQT4 / monWidgetPlusieursInto.py
index 9a4d1aa0c7a959b3b990446f9992dee017a71082..d6d4411b44b29c4f6d4cc8bc2f18c7d424b141c6 100644 (file)
@@ -29,18 +29,38 @@ from feuille                import Feuille
 from desWidgetPlusieursInto import Ui_WidgetPlusieursInto 
 from politiquesValidation   import PolitiquePlusieurs
 from qtSaisie               import SaisieValeur
-from gereListe              import GereListe
+#from gereListe              import GereListe
 
 class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
 
-  def __init__(self,node,monSimpDef,nom,objSimp,parentQt):
-        print "MonWidgetPlusieursInto", nom
+  def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+        #print "MonWidgetPlusieursInto", nom, self
         self.index=1
-        Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt)
+        Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
         self.listeValeursCourantes=self.node.item.GetListeValeurs()
         self.parentQt.commandesLayout.insertWidget(-1,self)
+        self.connect(self.CBCheck, SIGNAL('stateChanged(int)'),self.change)
+        # try except si la liste des possibles est vide
+        # prevoir qqchose
+        try :
+          self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
+        except :
+          pass
 
 
+  def change(self,int):
+       if self.CBCheck.isChecked() : 
+          for i in range(len(self.listeAAfficher)):
+              nomCB="lineEditVal"+str(i+1)
+              courant=getattr(self,nomCB)
+              courant.setChecked(True)
+       else :
+          min,max = self.node.item.GetMinMax()
+          for i in range(len(self.listeAAfficher)):
+              nomCB="lineEditVal"+str(i+1)
+              courant=getattr(self,nomCB)
+              courant.setChecked(False)
+
   def setValeurs(self):
        self.listeValeursCourantes=self.node.item.GetListeValeurs()
        if hasattr(self.node.item.definition.validators,'set_MCSimp'):
@@ -52,28 +72,40 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
                    if self.node.item.definition.validators.verif_item(item)==1:
                       liste.append(item)
                self.listeAAfficher=self.node.item.get_liste_possible(liste)
-               print self.listeAAfficher
+               #print self.listeAAfficher
+            else: 
+               self.listeAAfficher=self.node.item.get_liste_possible([])
        else :
-               self.listeAAfficher=self.monSimpDef.into
+               self.listeAAfficher=self.node.item.get_liste_possible([])
+
+       self.PourEtreCoche=self.listeValeursCourantes
+       if self.objSimp.wait_assd() : 
+          self.listeAAfficher=self.node.item.get_sd_avant_du_bon_type()
+          self.PourEtreCoche=[]
+          for concept in self.listeValeursCourantes:
+              self.PourEtreCoche.append(concept.nom)
+       if len(self.listeAAfficher)*20 > 400 : self.setMinimumHeight(400)
+       else : self.setMinimumHeight(len(self.listeAAfficher)*30)
+       self.adjustSize()
        self.vScrollBar = self.scrollArea.verticalScrollBar()
        self.politique=PolitiquePlusieurs(self.node,self.editor)
        self.indexListe=1
-       for i in range(1,len(self.listeAAfficher)+1):
-           self.ajoutCB(i)
+       for i in range(1,len(self.listeAAfficher)+1): self.ajoutCB(i)
        for i in range(len(self.listeAAfficher)):
-           nomCB="labelVal"+str(i+1)
+           nomCB="lineEditVal"+str(i+1)
            courant=getattr(self,nomCB)
            courant.setText(str(self.listeAAfficher[i]))
-           if self.monSimpDef.into[i] in self.listeValeursCourantes : 
+           #if self.monSimpDef.into[i] in self.listeValeursCourantes : 
+           if self.listeAAfficher[i] in self.PourEtreCoche : 
               courant.setChecked(True)
            self.connect(courant,SIGNAL("toggled(bool)"),self.changeValeur)
        self.vScrollBar.triggerAction(QScrollBar.SliderToMinimum)
        
 
   def ajoutCB(self,index,valeur=None):
-      nomCB="labelVal"+str(index)
-      if hasattr(self,nomCB) : 
-         return
+      #print "ajoutCB ", index
+      nomCB="lineEditVal"+str(index)
+      if hasattr(self,nomCB) : return
       nouveauCB = QCheckBox(self.scrollArea)
       self.CBLayout.addWidget(nouveauCB)
       qApp.processEvents()
@@ -108,10 +140,10 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
         return str(commentaire)
 
   def ajout1Valeur(self,valeur=None):
-        print "________________"
-        print self
-        print self.node
-        print self.node.item
+        #print "________________"
+        #print self
+        #print self.node
+        #print self.node.item
         if valeur == None : return
         liste,validite=SaisieValeur.TraiteLEValeur(self,str(valeur))
         if validite == 0 : return
@@ -130,10 +162,12 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
         
 
 
-  def changeValeur(self,etat):
+  def changeValeur(self):
+      self.listeValeursCourantesAvant=self.listeValeursCourantes
       self.listeValeursCourantes = []
-      for i in range (1,len(self.monSimpDef.into)+1):
-          nomLineEdit="labelVal"+str(i)
+      #print "changeValeur ____________" , self.monSimpDef.into, len(self.monSimpDef.into)
+      for i in range (1,len(self.listeAAfficher)+1):
+          nomLineEdit="lineEditVal"+str(i)
           courant=getattr(self,nomLineEdit)
           if not (courant.isChecked()):continue
           valeur=courant.text()
@@ -142,18 +176,16 @@ class MonWidgetPlusieursInto (Ui_WidgetPlusieursInto,Feuille):
              if (commentaire != None ):
                  self.editor.affiche_infos(commentaire,Qt.red)
                  courant.setText("")
-      if self.listeValeursCourantes == [] : 
-         self.setValide()
-         return
       min,max = self.node.item.GetMinMax()
-      print (self.listeValeursCourantes),min
       if len(self.listeValeursCourantes) < min : 
-                 self.editor.affiche_infos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red)
+         self.editor.affiche_infos(tr("Nombre minimal de valeurs : ") + str(min),Qt.red)
       elif len(self.listeValeursCourantes) > max : 
-                 self.editor.affiche_infos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red)
+         self.editor.affiche_infos(tr("Nombre maximal de valeurs : ") + str(max),Qt.red)
+      else :
+         self.editor.affiche_infos(tr(""))
+      if self.listeValeursCourantes== [] : self.listeValeursCourantes=None
       self.node.item.set_valeur(self.listeValeursCourantes)
       self.setValide()
+      self.reaffiche()
 
-          
 
-# Avertissement quand on quitte le widget