]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
ajout:
authorsalome <>
Wed, 19 Jul 2006 09:55:16 +0000 (09:55 +0000)
committersalome <>
Wed, 19 Jul 2006 09:55:16 +0000 (09:55 +0000)
-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.

src/EFICASGUI/eficasSalome.py

index 2b45379027e0403c7b61cbe081614410606a4436..6f258a71ad813d9378cf794c87cdf36b52f87920 100644 (file)
@@ -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 )