From: salome <> Date: Wed, 19 Jul 2006 09:55:16 +0000 (+0000) Subject: ajout: X-Git-Tag: essai1~6 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=d521730935bb3f7b04d2837fdf3e271f752c3c7d;p=modules%2Feficas.git ajout: -contrôle supplémentaire lors d'une sélection GROUP_MA ou GROUP_NO. correction: -gestion des onglets des JDC: à la fermeture, l'utilisateur travaillait toujours sur la même géométrie principale. --- diff --git a/src/EFICASGUI/eficasSalome.py b/src/EFICASGUI/eficasSalome.py index 2b453790..6f258a71 100644 --- a/src/EFICASGUI/eficasSalome.py +++ b/src/EFICASGUI/eficasSalome.py @@ -66,6 +66,11 @@ msgErrorDisplayShape = "Erreur dans l'affichage de la forme g msgErrorNeedSubShape = "Sélection d'un élément sous géométrique seulement" +msgErrorGroupMaSelection = "Sélection GROUP_MA ne peut pas prendre un point ou un noeud" +msgWarningGroupNoSelection = "Attention, GROUP_NO devrait prendre un point ou un noeud" + + + # couleur pour visualisation des géometrie CS_CBO COLORS = ( studyManager.RED, studyManager.GREEN, @@ -265,7 +270,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ): - def __selectShape( self, jdcID, selectedEntry ): + def __selectShape( self, jdcID, selectedEntry, kwType = None ): """ sélection sous-géométrie dans Salome: -test1) si c'est un élément sous-géométrique . @@ -273,11 +278,19 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ): met à jours la liste self.subShapes si test ok """ - name, msgError = '','' - + name, msgError = '','' + selectedMainShapeEntry = studyManager.palStudy.getMainShapeEntry( selectedEntry ) - if selectedMainShapeEntry and selectedMainShapeEntry != selectedEntry: #ok test1) + if selectedMainShapeEntry and selectedMainShapeEntry != selectedEntry: #ok test1) + + tGeo = studyManager.palStudy.getRealShapeType( selectedEntry ) + if kwType == "GROUP_NO" and tGeo != studyManager.VERTEX: + msgError = msgWarningGroupNoSelection + elif kwType == "GROUP_MA" and tGeo == studyManager.VERTEX: + name, msgError = '', msgErrorGroupMaSelection + return name, msgError + if not self.mainShapeEntries.has_key( jdcID ): self.mainShapeEntries[ jdcID ] = selectedMainShapeEntry name = studyManager.palStudy.getName( selectedMainShapeEntry ) @@ -288,7 +301,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ): else: if not self.mainShapeNames.has_key( jdcID ): self.mainShapeNames[ jdcID ] = studyManager.palStudy.getName( self.mainShapeEntries[ jdcID ] ) - msgError = msgSubShapeBadMainShape + self.mainShapeNames[ jdcID ] + msgError = msgSubShapeBadMainShape + self.mainShapeNames[ jdcID ] else: name, msgError = '', msgErrorNeedSubShape @@ -296,17 +309,24 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ): - def __selectMeshGroup( self, jdcID, selectedEntry ): + def __selectMeshGroup( self, jdcID, selectedEntry, kwType = None ): """ sélection groupe de maille dans Salome: -test 1) si c'est un groupe de maille -test 2) si le maillage fait référence à la géométrie principale """ - name, msgError = '','' + name, msgError = '','' selectedMeshEntry = studyManager.palStudy.getMesh( selectedEntry ) if selectedMeshEntry: # ok test 1) + tGroup = studyManager.palStudy.getGroupType( selectedEntry ) + if kwType == "GROUP_NO" and tGroup != studyManager.NodeGroups: + msgError = msgWarningGroupNoSelection + elif kwType == "GROUP_MA" and tGroup == studyManager.NodeGroups: + name, msgError = '', msgErrorGroupMaSelection + return name, msgError + selectedMainShapeEntry = studyManager.palStudy.getShapeFromMesh( selectedMeshEntry ) if selectedMainShapeEntry: #test 2) @@ -361,7 +381,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ): children = item._GetSubList() for child in children: groupMa += self.__getAllGroupeMa( child ) - except: # à cause de _GetSubList()... + except: pass return groupMa @@ -383,13 +403,13 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ): children = item._GetSubList() for child in children: groupNo += self.__getAllGroupeNo( child ) - except: # à cause de _GetSubList()... + except: pass return groupNo #----------------------- LISTE DES NOUVEAUX CAS D'UTILISATIONS ----------- - def selectGroupFromSalome( self ): + def selectGroupFromSalome( self, kwType ): """ Sélection d'élément(s) d'une géométrie ( sub-shape ) ou d'élément(s) de maillage ( groupe de maille) à partir de l'arbre salome retourne ( la liste des noms des groupes, message d'erreur ) @@ -397,7 +417,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ): Note: Appelé par EFICAS lorsqu'on clique sur le bouton ajouter à la liste du panel AFF_CHAR_MECA """ names, msg = [], '' - try: + try: atLeastOneStudy = self.__studySync() if not atLeastOneStudy: return names, msg @@ -407,12 +427,13 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ): nbEntries = len( entries ) if nbEntries >= 1: print 'CS_pbruno len( entries ) >= 1:' - jdcID = self.bureau.nb.getcurselection() +# jdcID = self.bureau.nb.getcurselection() + jdcID = self.bureau.JDCDisplay_courant for entry in entries: if studyManager.palStudy.isMeshGroup( entry ): #sélection d'un groupe de maille - name, msg = self.__selectMeshGroup( jdcID, entry ) + name, msg = self.__selectMeshGroup( jdcID, entry, kwType ) elif studyManager.palStudy.isShape( entry ): #sélection d'une sous-géométrie - name, msg = self.__selectShape( jdcID, entry ) + name, msg = self.__selectShape( jdcID, entry, kwType ) else: name, msg = '', msgUnAuthorizedSelecion if name: @@ -469,7 +490,8 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ): if not atLeastOneStudy: return - jdcID = self.bureau.nb.getcurselection() +# jdcID = self.bureau.nb.getcurselection() + jdcID = self.bureau.JDCDisplay_courant groupeMaNames = self.__getAllGroupeMa( self.bureau.JDCDisplay_courant.tree.item ) groupeNoNames = self.__getAllGroupeNo( self.bureau.JDCDisplay_courant.tree.item )