X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2Fcomposimp.py;h=88a18a27ed1de8d22d10aaf2350481f70a69eb09;hb=934d2d925f8b071ffdce594fd2d42df45333764a;hp=84f443328ae8ff179ab2939b4c54ea670c9f7f70;hpb=1b91010fc2c0a681db9177d6fa0e4e0af866ec31;p=tools%2Feficas.git diff --git a/InterfaceQT4/composimp.py b/InterfaceQT4/composimp.py index 84f44332..88a18a27 100644 --- a/InterfaceQT4/composimp.py +++ b/InterfaceQT4/composimp.py @@ -68,14 +68,19 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): #print "____________________________", monNom, self.item.wait_co() #print "____________________________", monNom, self.item.wait_assd() # Gestion d'une seule valeur (eventuellement un tuple ou un complexe) + if maDefinition.into != [] and maDefinition.into != None: + if type(maDefinition.into) ==types.FunctionType : monInto=maDefinition.into() + else : monInto = maDefinition.into + + if maDefinition.max == 1 : # A verifier if maDefinition.into != [] and maDefinition.into != None: - if len(maDefinition.into) < 4 : + if len(monInto) < 4 : from .monWidgetRadioButton import MonWidgetRadioButton widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif len(maDefinition.into) < 7 : + elif len(monInto) < 7 : from .monWidget4a6RadioButton import MonWidget4a6RadioButton widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande) else : @@ -123,7 +128,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): if len(self.item.get_sd_avant_du_bon_type()) == 0 : from .monWidgetVide import MonWidgetVide widget=MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande) - if len(self.item.get_sd_avant_du_bon_type()) < 4 : + elif len(self.item.get_sd_avant_du_bon_type()) < 4 : from .monWidgetRadioButton import MonWidgetRadioButtonSD widget=MonWidgetRadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif len(self.item.get_sd_avant_du_bon_type()) < 7 : @@ -146,19 +151,32 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): # Gestion des listes else : + if maDefinition.intoSug != [] and maDefinition.intoSug != None: + from .monWidgetIntoSug import MonWidgetIntoSug + widget=MonWidgetIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande) #if maDefinition.into != [] and maDefinition.into != None: # Attention pas fini --> on attend une liste de ASSD avec ordre - if self.item.wait_assd() and self.item.is_list_SansOrdreNiDoublon(): + elif self.item.wait_assd() and self.item.is_list_SansOrdreNiDoublon(): #if self.item.is_list_Chargement(): #from monWidgetPlusieursTuple2AvecChargement import MonWidgetPlusieursTuple2AvecChargement #widget=MonWidgetPlusieursTuple2(self,maDefinition,monNom,monObjet,parentQt,maCommande) # pass #else : - from .monWidgetPlusieursInto import MonWidgetPlusieursInto - widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande) + listeAAfficher = self.item.get_sd_avant_du_bon_type() + if len(listeAAfficher) == 0: + from .monWidgetVide import MonWidgetVide + widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : + from .monWidgetPlusieursInto import MonWidgetPlusieursInto + widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.wait_assd() : - from .monWidgetPlusieursASSDIntoOrdonne import MonWidgetPlusieursASSDIntoOrdonne - widget=MonWidgetPlusieursASSDIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande) + listeAAfficher = self.item.get_sd_avant_du_bon_type() + if len(listeAAfficher) == 0: + from .monWidgetVide import MonWidgetVide + widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : + from .monWidgetPlusieursASSDIntoOrdonne import MonWidgetPlusieursASSDIntoOrdonne + widget=MonWidgetPlusieursASSDIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.wait_tuple() : if self.item.object.definition.type[0].ntuple == 2: from .monWidgetPlusieursTuple2 import MonWidgetPlusieursTuple2 @@ -275,6 +293,10 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): has_an_into= self.definition.validators.has_into() return has_an_into + def has_intoSug(self): + if self.definition.intoSug: return 1 + return 0 + def GetMinMax(self): """ Retourne les valeurs min et max de la definition de object """ @@ -344,6 +366,34 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): #print listevalideliste return listevalideliste + def get_liste_possible_avecSug(self,listeActuelle=[]): + if hasattr(self.definition,'intoSug'): + valeurspossibles = self.definition.intoSug + else: + return listeActuelle + + if listeActuelle==[] : return valeurspossibles + valeurspossibles = valeurspossibles+listeActuelle + + #On ne garde que les items valides + listevalideitem=[] + if type(valeurspossibles) in (list,tuple) : + pass + else : + valeurspossibles=(valeurspossibles,) + for item in valeurspossibles: + encorevalide=self.valide_item(item) + if encorevalide : + listevalideitem.append(item) + + #on ne garde que les choix possibles qui passent le test de valide_liste_partielle + listevalideliste=[] + for item in listevalideitem: + encorevalide=self.valide_liste_partielle(item,listeActuelle) + if encorevalide : + listevalideliste.append(item) + return listevalideliste + def get_liste_param_possible(self): liste_param=[] l1,l2=self.jdc.get_parametres_fonctions_avant_etape(self.get_etape())