X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2Fcomposimp.py;h=6a53e99ddd575cbe42c0da955c0f6805cf6513ba;hb=c286259382c721a299673774031ec352d873b658;hp=3ab7af47c69113f738966f89e6e99e9a11bcf113;hpb=16d5922e798b1254eb558678612711d72ed38b32;p=tools%2Feficas.git diff --git a/InterfaceQT4/composimp.py b/InterfaceQT4/composimp.py index 3ab7af47..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,156 +31,169 @@ 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): + def getPanelGroupe(self,parentQt,maCommande): maDefinition=self.item.get_definition() monObjet=self.item.object monNom=self.item.nom + # 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 "____________________________", 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 : + + # A verifier if maDefinition.into != [] and maDefinition.into != None: - # a revoir if len(maDefinition.into) < 4 : from monWidgetRadioButton import MonWidgetRadioButton - widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt) + widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif len(maDefinition.into) < 7 : from monWidget4a6RadioButton import MonWidget4a6RadioButton - widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt) + widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande) else : from monWidgetCB import MonWidgetCB - widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt) + widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.wait_bool() : from monWidgetSimpBool import MonWidgetSimpBool - widget=MonWidgetSimpBool(self,maDefinition,monNom,monObjet,parentQt) - + widget=MonWidgetSimpBool(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.wait_fichier(): from monWidgetSimpFichier import MonWidgetSimpFichier - widget=MonWidgetSimpFichier(self,maDefinition,monNom,monObjet,parentQt) + widget=MonWidgetSimpFichier(self,maDefinition,monNom,monObjet,parentQt,maCommande) + + # PNPNPN - a faire + elif self.item.wait_date(): + from monWidgetDate import MonWidgetDate + widget=MonWidgetDate(self,maDefinition,monNom,monObjet,parentQt,maCommande) + elif self.item.wait_heure(): + from monWidgetHeure import MonWidgetHeure + widget=MonWidgetHeure(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.wait_tuple() : - # Pas fait - from monWidgetSimpTuple import MonWidgetSimpTuple - widget=MonWidgetSimpTuple(self,maDefinition,monNom,monObjet,parentQt) + if self.item.object.definition.type[0].ntuple == 2: + from monWidgetSimpTuple2 import MonWidgetSimpTuple2 + widget=MonWidgetSimpTuple2(self,maDefinition,monNom,monObjet,parentQt,maCommande) + elif self.item.object.definition.type[0].ntuple == 3 : + from monWidgetSimpTuple3 import MonWidgetSimpTuple3 + widget=MonWidgetSimpTuple3(self,maDefinition,monNom,monObjet,parentQt,maCommande) + else : + print "Pas de Tuple de longueur > 3" + print "Prevenir la maintenance " elif self.item.wait_complex(): - # Pas fait from monWidgetSimpComplexe import MonWidgetSimpComplexe - widget=MonWidgetSimpComplexe(self,maDefinition,monNom,monObjet,parentQt) + 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) + 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 from monWidgetSimpSalome import MonWidgetSimpSalome - widget=MonWidgetSimpSalome(self,maDefinition,monNom,monObjet,parentQt) + widget=MonWidgetSimpSalome(self,maDefinition,monNom,monObjet,parentQt,maCommande) elif self.item.wait_TXM(): - # Pas fait from monWidgetSimpTxt import MonWidgetSimpTxt - widget=MonWidgetSimpTxt(self,maDefinition,monNom,monObjet,parentQt) + widget=MonWidgetSimpTxt(self,maDefinition,monNom,monObjet,parentQt,maCommande) else : from monWidgetSimpBase import MonWidgetSimpBase - widget=MonWidgetSimpBase(self,maDefinition,monNom,monObjet,parentQt) + widget=MonWidgetSimpBase(self,maDefinition,monNom,monObjet,parentQt,maCommande) + # Gestion des listes else : - if maDefinition.into != [] and maDefinition.into != None: - #Pas encore traité - from monWidgetPlusieursInto import MonWidgetPlusieursInto - widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt) + #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 : + 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) + #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 @@ -232,6 +245,13 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): is_a_list= self.definition.validators.is_list() * is_a_list return is_a_list + def is_list_SansOrdreNiDoublon(self): + 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): """ @@ -300,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) : @@ -317,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): @@ -355,9 +378,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): """ La validation est realisee directement par l'objet """ - print self.object - print item - print self.object.valide_item return self.object.valide_item(item) def valide_liste_partielle(self,item,listecourante): @@ -420,7 +440,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): return "ast-red-ball" else: return "ast-yel-ball" - print "invalide" def GetText(self): """ @@ -500,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 @@ -516,6 +539,24 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): return 1 else: return 0 + + def wait_date(self): + """ Méthode booléenne qui retourne 1 si l'objet pointé par self + attend un réel, 0 sinon """ + if 'DateHHMMAAAA' in self.object.definition.type: + return 1 + else: + return 0 + + def wait_heure(self): + """ Méthode booléenne qui retourne 1 si l'objet pointé par self + attend un réel, 0 sinon """ + if 'HeureHHMMSS' in self.object.definition.type: + return 1 + else: + return 0 + + def wait_tuple(self): """ Méthode booléenne qui retourne 1 si l'objet pointé par self