X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2Fcomposimp.py;h=6a53e99ddd575cbe42c0da955c0f6805cf6513ba;hb=c286259382c721a299673774031ec352d873b658;hp=e2230482d5b10b359319a202c5620331c45407b9;hpb=e42af802800bdbd667895d8f81f06576d8490e49;p=tools%2Feficas.git diff --git a/InterfaceQT4/composimp.py b/InterfaceQT4/composimp.py index e2230482..6a53e99d 100644 --- a/InterfaceQT4/composimp.py +++ b/InterfaceQT4/composimp.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +# -*- coding: iso-8859-1 -*- # Copyright (C) 2007-2013 EDF R&D # # This library is free software; you can redistribute it and/or @@ -31,104 +31,40 @@ from Noyau.N_CR import justify_text from Accas import SalomeEntry class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): - def getPanel(self): - """ - """ - klass = None - # Attention l ordre des if est important - - if self.item.wait_matrice (): - from monMatricePanel import MonMatricePanel - klass=MonMatricePanel - # l'objet prend sa (ses) valeur(s) dans un ensemble discret de valeurs - elif self.item.has_into(): - if self.item.is_list() : - from monPlusieursIntoPanel import MonPlusieursIntoPanel - klass = MonPlusieursIntoPanel - else: - from monUniqueIntoPanel import MonUniqueIntoPanel - klass = MonUniqueIntoPanel - - # l'objet prend une ou des valeurs a priori quelconques - else: - # on attend une liste de valeurs - if self.item.is_list() : - # on attend une liste de SD - if self.item.wait_tuple() : - from monFonctionPanel import MonFonctionPanel - klass = MonFonctionPanel - elif self.item.wait_assd(): - from monPlusieursASSDPanel import MonPlusieursASSDPanel - klass = MonPlusieursASSDPanel - else: - # on attend une liste de valeurs de types debase (entiers, réels,...) - from monPlusieursBasePanel import MonPlusieursBasePanel - klass = MonPlusieursBasePanel - # on n'attend qu'une seule valeur - else: - # on attend une SD ou un objet de la classe CO (qui n'existe pas encore) - if self.item.wait_co(): - if len(self.item.get_sd_avant_du_bon_type()) != 0 : - from monUniqueSDCOIntoPanel import MonUniqueSDCOIntoPanel - klass = MonUniqueSDCOIntoPanel - else : - from monUniqueSDCOPanel import MonUniqueSDCOPanel - klass = MonUniqueSDCOPanel - - # on attend une SD - elif self.item.wait_assd(): - if 'R' in self.item.GetType(): - from monUniqueASSDPanel import MonUniqueASSDReelPanel - klass = MonUniqueASSDReelPanel - else : - from monUniqueASSDPanel import MonUniqueASSDPanel - klass = MonUniqueASSDPanel - - # on attend une valeur d'un type de base (entier,reel,...) - else: - # on attend un complexe - if self.item.wait_complex(): - from monUniqueCompPanel import MonUniqueCompPanel - klass = MonUniqueCompPanel - elif self.item.wait_bool() : - from monUniqueBoolPanel import MonUniqueBoolPanel - klass = MonUniqueBoolPanel - else : - from monUniqueBasePanel import MonUniqueBasePanel - klass = MonUniqueBasePanel - - # cas particulier des fonctions - genea = self.item.get_genealogie() - if "VALE" in genea or "VALE_C" in genea: - if "DEFI_FONCTION" in genea : - from monFonctionPanel import MonFonctionPanel - klass = MonFonctionPanel - - if not klass: - return None - return klass( self, self.editor ) - def createPopUpMenu(self): typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) - def getPanelGroupe(self,parentQt,commande): + def getPanelGroupe(self,parentQt,maCommande): maDefinition=self.item.get_definition() monObjet=self.item.object monNom=self.item.nom - maCommande=commande + + # label informatif + if monObjet.isInformation(): + from monWidgetInfo import MonWidgetInfo + widget=MonWidgetInfo(self,maDefinition,monNom,monObjet,parentQt,maCommande) + self.widget=widget + return widget + # Attention l ordre des if est important # Attention il faut gerer les blocs et les facteurs # a gerer comme dans composimp - # Gerer les matrices --> Actuellement pas dans ce type de panneau + # Gestion des matrices + if self.item.wait_matrice (): + from monWidgetMatrice import MonWidgetMatrice + widget=MonWidgetMatrice(self,maDefinition,monNom,monObjet,parentQt,maCommande) + self.widget=widget + return widget - #print "____________________________", self.item.wait_tuple() + #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.max == 1 : - # Listes de valeur discretes + # A verifier if maDefinition.into != [] and maDefinition.into != None: if len(maDefinition.into) < 4 : from monWidgetRadioButton import MonWidgetRadioButton @@ -171,9 +107,25 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): widget=MonWidgetSimpComplexe(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.wait_co(): - # Pas fait - from monWidgetSimpASSD import MonWidgetSimpASSD - widget=MonWidgetSimpASSD(self,maDefinition,monNom,monObjet,parentQt,maCommande) + if len(self.item.get_sd_avant_du_bon_type()) == 0 : + from monWidgetUniqueSDCO import MonWidgetUniqueSDCO + widget=MonWidgetUniqueSDCO(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : + from monWidgetSDCOInto import MonWidgetSDCOInto + widget=MonWidgetSDCOInto(self,maDefinition,monNom,monObjet,parentQt,maCommande) + elif self.item.wait_assd(): + 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 : + from monWidgetRadioButton import MonWidgetRadioButtonSD + widget=MonWidgetRadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande) + elif len(self.item.get_sd_avant_du_bon_type()) < 7 : + from monWidget4a6RadioButton import MonWidget4a6RadioButtonSD + widget=MonWidget4a6RadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : + from monWidgetCB import MonWidgetCBSD + widget=MonWidgetCBSD(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.wait_Salome() and self.editor.salome: # Pas fait @@ -189,16 +141,58 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): # Gestion des listes else : - if maDefinition.into != [] and maDefinition.into != None: - if self.item.is_list_SansOrdreNiDoublon(): + #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(): + #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) + elif self.item.wait_assd() : + 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 + widget=MonWidgetPlusieursTuple2(self,maDefinition,monNom,monObjet,parentQt,maCommande) + elif self.item.object.definition.type[0].ntuple == 3 : + from monWidgetPlusieursTuple3 import MonWidgetPlusieursTuple3 + widget=MonWidgetPlusieursTuple3(self,maDefinition,monNom,monObjet,parentQt,maCommande) else : - from monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne - widget=MonWidgetPlusieursIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande) + print "Pas de Tuple de longueur > 3" + print "Prevenir la maintenance " + elif self.item.has_into(): + if self.item.is_list_SansOrdreNiDoublon(): + #print (self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) ) + #print ( not(self.editor.afficheListesPliees) ) + #print (self.editor.afficheListesPliees) + + if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : + from monWidgetPlusieursInto import MonWidgetPlusieursInto + widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : + from monWidgetPlusieursPlie import MonWidgetPlusieursPlie + widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : +# tres vite pour le tag mais devra etre gere dans configuration + if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : + from monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne + widget=MonWidgetPlusieursIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : + from monWidgetPlusieursPlie import MonWidgetPlusieursPlie + widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande) else : - from monWidgetPlusieursBase import MonWidgetPlusieursBase - widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande) + #print 8 + if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : + from monWidgetPlusieursBase import MonWidgetPlusieursBase + widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : + from monWidgetPlusieursPlie import MonWidgetPlusieursPlie + widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande) + self.widget=widget return widget @@ -252,7 +246,11 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): return is_a_list def is_list_SansOrdreNiDoublon(self): - if self.definition.homo=="SansOrdreNiDoublon": return 1 + if self.definition.homo=="SansOrdreNiDoublon" : return 1 + return 0 + + def is_list_Chargement(self): + if self.definition.docu != "" : return 1 return 0 def has_into(self): @@ -322,6 +320,8 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): else: valeurspossibles = self.get_definition().into + if listeActuelle==[] : return valeurspossibles + #On ne garde que les items valides listevalideitem=[] if type(valeurspossibles) in (types.ListType,types.TupleType) : @@ -339,6 +339,7 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): encorevalide=self.valide_liste_partielle(item,listeActuelle) if encorevalide : listevalideliste.append(item) + #print listevalideliste return listevalideliste def get_liste_param_possible(self): @@ -439,7 +440,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): return "ast-red-ball" else: return "ast-yel-ball" - print "invalide" def GetText(self): """ @@ -519,6 +519,10 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): attend un objet GEOM, 0 sinon """ return self.object.wait_geom() + + def wait_TXM(self): + return self.object.wait_TXM() + def wait_complex(self): """ Méthode booléenne qui retourne 1 si l'objet pointé par self