]> SALOME platform Git repositories - modules/eficas.git/commitdiff
Salome HOME
copy V4_1_0_maintenance - V4_1_4rc2 on trunk V4_1_4 V4_1_5rc1 V4_1_5rc2 before_mergefrom_V6_main_22Aug12 start_V5_1_0_maintenance
authorprascle <>
Fri, 9 Jan 2009 13:06:10 +0000 (13:06 +0000)
committerprascle <>
Fri, 9 Jan 2009 13:06:10 +0000 (13:06 +0000)
adm_local/unix/config_files/check_pal.m4
adm_local/unix/make_commence.in
build_configure
configure.in [new file with mode: 0644]
configure.in.base
src/EFICASGUI/EFICASGUI.py
src/EFICASGUI/eficasSalome.py
src/STUDY/EficasStudy.py

index d4a2e8e60d41d5db2c2c36aadadb3286aba7a203..1a4c55c6d6862962c18426a24ca99b75ffa20018 100644 (file)
@@ -27,7 +27,7 @@ if test "x$PAL_DIR" = "x" ; then
    fi
 fi
 
-if test -f ${PAL_DIR}/bin/salome/runAppli ; then
+if test -f ${PAL_DIR}/bin/salome/testAppli ; then
    pal_ok=yes
    AC_MSG_RESULT(Using Pal module distribution in ${PAL_DIR})
 
index a7820679f2f932b12e1a6e597b6231457d6a9989..9408f4fc5071525539abf774156605aa3daf3438 100644 (file)
@@ -208,22 +208,25 @@ $(top_srcdir)/configure: $(top_srcdir)/configure.in $(top_srcdir)/aclocal.m4
 $(top_srcdir)/configure.in: $(top_srcdir)/configure.in.base
        cd $(top_srcdir) && ./build_configure
 
-ACLOCAL_SRC = \
-ac_cxx_bool.m4                    check_corba.m4                        \
-ac_cxx_depend_flag.m4             check_hdf5.m4      enable_pthreads.m4        \
+ACLOCAL_SRC_DEPREC = \
+ac_cxx_bool.m4                    ac_cxx_typename.m4 check_pthreads.m4  \
 ac_cxx_mutable.m4                 check_mico.m4      libtool.m4                \
-ac_cxx_namespaces.m4              check_omniorb.m4   pyembed.m4                \
-ac_cxx_partial_specialization.m4  python.m4                             \
-ac_cxx_typename.m4                check_pthreads.m4  check_cas.m4      \
-ac_cc_warnings.m4                 check_boost.m4     check_swig.m4             
+ac_cxx_partial_specialization.m4  ac_cc_warnings.m4 
 
+ACLOCAL_SRC = \
+check_corba.m4                    python.m4                             \
+ac_cxx_depend_flag.m4             check_hdf5.m4      enable_pthreads.m4 \
+ac_cxx_namespaces.m4              check_omniorb.m4   pyembed.m4         \
+check_cas.m4                      check_boost.m4     check_swig.m4
 
 ACLOCAL_GUI = \
 check_vtk.m4                     check_opengl.m4    check_qt.m4        \
 check_GUI.m4                     check_corba_in_GUI.m4  
 
 $(top_srcdir)/aclocal.m4: $(ACLOCAL_SRC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%) \
+                          $(ACLOCAL_SRC_DEPREC:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/DEPRECATED/%) \
                           $(ACLOCAL_GUI:%=@GUI_ROOT_DIR@/adm_local/unix/config_files/%) 
        cd $(top_srcdir) ; aclocal -I adm_local/unix/config_files \
                                    -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files \
-                                  -I @GUI_ROOT_DIR@/adm_local/unix/config_files 
+                                  -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files/DEPRECATED \
+                                   -I @GUI_ROOT_DIR@/adm_local/unix/config_files 
index 884dc60e1638685e1085b0bb657452ff553874ac..ad372268541bf4d9956e4522b88ad9269956b6b6 100755 (executable)
@@ -210,6 +210,7 @@ fi
 
 aclocal -I adm_local/unix/config_files \
         -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \
+        -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/DEPRECATED \
         -I ${GUI_ROOT_DIR}/adm_local/unix/config_files
 
 if autoconf
diff --git a/configure.in b/configure.in
new file mode 100644 (file)
index 0000000..67eb32c
--- /dev/null
@@ -0,0 +1,316 @@
+#
+#  PLEASE DO NOT MODIFY configure.in FILE
+#
+#  ALL CHANGES WILL BE DISCARDED BY THE NEXT
+#  build_configure COMMAND
+#
+#  CHANGES MUST BE MADE IN configure.in.base FILE
+#
+#
+# Author : Marc Tajchman (CEA)
+# Date : 28/06/2001
+# Modified by : Patrick GOLDBRONN (CEA)
+# Modified by : Marc Tajchman (CEA)
+#
+# Created from configure.in.base
+#
+
+AC_INIT(src)
+AC_CONFIG_AUX_DIR(${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/DEPRECATED)
+AC_CANONICAL_HOST
+
+PACKAGE=salome
+AC_SUBST(PACKAGE)
+
+VERSION=3.2.3
+XVERSION=0x030203
+AC_SUBST(VERSION)
+AC_SUBST(XVERSION)
+
+# set up MODULE_NAME variable for dynamic construction of directories (resources, etc.)
+MODULE_NAME=eficas
+AC_SUBST(MODULE_NAME)
+
+dnl
+dnl Initialize source and build root directories
+dnl
+
+ROOT_BUILDDIR=`pwd`
+ROOT_SRCDIR=`echo $0 | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+cd $ROOT_SRCDIR
+ROOT_SRCDIR=`pwd`
+cd $ROOT_BUILDDIR
+
+AC_SUBST(ROOT_SRCDIR)
+AC_SUBST(ROOT_BUILDDIR)
+
+echo
+echo Source root directory : $ROOT_SRCDIR
+echo Build  root directory : $ROOT_BUILDDIR
+echo
+echo
+
+if test -z "$AR"; then
+   AC_CHECK_PROGS(AR,ar xar,:,$PATH)
+fi
+AC_SUBST(AR)
+
+dnl Export the AR macro so that it will be placed in the libtool file
+dnl correctly.
+export AR
+
+echo
+echo ---------------------------------------------
+echo testing make
+echo ---------------------------------------------
+echo
+
+AC_PROG_MAKE_SET
+AC_PROG_INSTALL
+dnl 
+dnl libtool macro check for CC, LD, NM, LN_S, RANLIB, STRIP + pour les librairies dynamiques !
+
+AC_ENABLE_DEBUG(yes)
+AC_DISABLE_PRODUCTION
+
+echo ---------------------------------------------
+echo testing libtool
+echo ---------------------------------------------
+
+dnl first, we set static to no!
+dnl if we want it, use --enable-static
+AC_ENABLE_STATIC(no)
+
+AC_LIBTOOL_DLOPEN
+AC_PROG_LIBTOOL
+
+dnl Fix up the INSTALL macro if it s a relative path. We want the
+dnl full-path to the binary instead.
+case "$INSTALL" in
+   *install-sh*)
+      INSTALL='\${KERNEL_ROOT_DIR}'/salome_adm/unix/config_files/DEPRECATED/install-sh
+      ;;
+esac
+
+echo
+echo ---------------------------------------------
+echo testing python
+echo ---------------------------------------------
+echo
+
+CHECK_PYTHON
+
+echo
+echo ---------------------------------------------
+echo testing omniORB
+echo ---------------------------------------------
+echo
+
+CHECK_OMNIORB
+
+echo
+echo ---------------------------------------------
+echo default ORB : omniORB
+echo ---------------------------------------------
+echo
+
+DEFAULT_ORB=omniORB
+CHECK_CORBA
+
+AC_SUBST_FILE(CORBA)
+corba=make_$ORB
+CORBA=adm_local/unix/$corba
+
+
+echo
+echo ---------------------------------------------
+echo Testing pyqt
+echo ---------------------------------------------
+echo
+
+CHECK_PYQT
+
+echo
+echo ---------------------------------------------
+echo Testing Kernel
+echo ---------------------------------------------
+echo
+
+CHECK_KERNEL
+
+echo
+echo ---------------------------------------------
+echo Testing GUI
+echo ---------------------------------------------
+echo
+
+CHECK_SALOME_GUI
+
+echo
+echo ---------------------------------------------
+echo testing msg2qm
+echo ---------------------------------------------
+echo
+
+CHECK_MSG2QM
+
+echo
+echo ---------------------------------------------
+echo Testing Pal
+echo ---------------------------------------------
+echo
+
+CHECK_PAL
+
+echo
+echo ---------------------------------------------
+echo Testing Visu
+echo ---------------------------------------------
+echo
+
+CHECK_VISU
+echo
+echo ---------------------------------------------
+echo Summary
+echo ---------------------------------------------
+echo
+
+echo Configure
+variables="python_ok threads_ok OpenGL_ok qt_ok omniORB_ok Kernel_ok  SalomeGUI_ok msg2qm_ok"
+
+for var in $variables
+do
+   printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
+   eval echo \$$var
+done
+
+echo
+echo "Default ORB   : $DEFAULT_ORB"
+echo
+
+echo
+echo ---------------------------------------------
+echo RunTime Dependencies
+echo ---------------------------------------------
+echo
+variables="Visu_ok pal_ok"
+
+for var in $variables
+do
+   printf "   %10s : " `echo \$var | sed -e "s,_ok,,"`
+   eval echo \$$var
+done
+
+
+
+dnl generals files which could be included in every makefile
+
+AC_SUBST_FILE(COMMENCE) COMMENCE=adm_local/unix/make_commence
+AC_SUBST_FILE(CONCLUDE) CONCLUDE=salome_adm/unix/make_conclude
+AC_SUBST_FILE(MODULE) MODULE=salome_adm/unix/make_module
+
+dnl les dependences
+AC_SUBST_FILE(DEPEND) DEPEND=salome_adm/unix/depend
+
+dnl We don t need to say when we re entering directories if we re using
+dnl GNU make becuase make does it for us.
+if test "X$GMAKE" = "Xyes"; then
+   AC_SUBST(SETX) SETX=":"
+else
+   AC_SUBST(SETX) SETX="set -x"
+fi
+
+# make other build directories
+for rep in salome_adm adm_local doc bin/salome include/salome lib/salome share/salome/resources/${MODULE_NAME} share/salome/doc idl
+do
+#   if test ! -d $rep ; then
+#      eval mkdir $rep
+#   fi
+    $INSTALL -d $rep
+done
+
+echo 
+echo ---------------------------------------------
+echo copying resource files, shell scripts, and 
+echo xml files
+echo ---------------------------------------------
+echo
+
+
+dnl copy resources directories
+
+#for i in `find $ROOT_SRCDIR -name 'resources' -print`
+#do
+#  local_res=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
+#  local_res_dir=`echo $local_res | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"`
+#  mkdir -p $local_res_dir
+#  cd $local_res_dir
+#  ln -fs $i
+#  echo $local_res
+#  cd $ROOT_BUILDDIR
+#done
+
+dnl copy shells and utilities contained in the bin directory
+dnl excluding .in files (treated in AC-OUTPUT below) and CVS 
+dnl directory
+
+cd bin
+for i in $ROOT_SRCDIR/bin/*
+do
+  local_bin=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
+  case "$local_bin" in
+        *.in | *~)                    ;;
+        ./bin/CVS)                    ;;
+        *) ln -fs $i; echo $local_bin ;;
+  esac
+done
+cd $ROOT_BUILDDIR
+
+AC_SUBST_FILE(ENVSCRIPT) ENVSCRIPT=salome_adm/unix/envScript
+
+dnl copy xml files to the build tree (lib directory)
+dnl pourquoi ????
+
+#cd lib
+#for i in `find $ROOT_SRCDIR -name "*.xml" -print`
+#do
+#  ln -fs $i
+#  echo `echo $i | sed -e "s,$ROOT_SRCDIR,.,"`
+#done
+#cd $ROOT_BUILDDIR
+
+
+echo
+echo ---------------------------------------------
+echo generating Makefiles and configure files
+echo ---------------------------------------------
+echo
+
+AC_OUTPUT_COMMANDS([ \
+       chmod +x ./bin/* \
+])
+
+## do not delete this line
+
+ln -fs ${KERNEL_ROOT_DIR}/salome_adm ${ROOT_SRCDIR}
+
+AC_OUTPUT([ \
+       ./salome_adm/unix/SALOMEconfig.h \
+       ./salome_adm/unix/F77config.h \
+       ./salome_adm/unix/sstream \
+       ./salome_adm/unix/depend \
+       ./adm_local/unix/make_omniorb \
+       ./salome_adm/unix/envScript \
+       ./adm_local/unix/make_commence \
+       ./salome_adm/unix/make_conclude \
+       ./salome_adm/unix/make_module \
+       ./Makefile \
+       ./doc/Makefile \
+       ./idl/Makefile \
+       ./src/Makefile \
+       ./src/CONFIG/Makefile \
+       ./src/EFICAS/Makefile \
+       ./src/EFICASGUI/Makefile \
+       ./src/STUDY/Makefile \
+])
+
index ff85c761e52950fd334b4cef2166e38b9e0641a0..41efeccf5ee3feb976b0f421d25da828f0721639 100644 (file)
@@ -16,7 +16,7 @@
 #
 
 AC_INIT(src)
-AC_CONFIG_AUX_DIR(${KERNEL_ROOT_DIR}/salome_adm/unix/config_files)
+AC_CONFIG_AUX_DIR(${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/DEPRECATED)
 AC_CANONICAL_HOST
 
 PACKAGE=salome
@@ -88,7 +88,7 @@ dnl Fix up the INSTALL macro if it s a relative path. We want the
 dnl full-path to the binary instead.
 case "$INSTALL" in
    *install-sh*)
-      INSTALL='\${KERNEL_ROOT_DIR}'/salome_adm/unix/config_files/install-sh
+      INSTALL='\${KERNEL_ROOT_DIR}'/salome_adm/unix/config_files/DEPRECATED/install-sh
       ;;
 esac
 
index 220ebcd4e79cec7d91c3d588ad01243ba86014b3..901b4a6ca5344f557e7bdad04f8309c24cd0e8a0 100644 (file)
@@ -16,8 +16,6 @@ desktop=None
 # -----------------------------------------------------------------------------
 
 import notifqt
-#import Tkinter
-#root.withdraw()
 
 def g():
    print "lastWindowClosed()"
@@ -46,17 +44,11 @@ print "EFicasGUI :: :::::::::::::::::::::::::::::::::::::::::::::::::::::"
 #En V2, si on n'implémente pas cette méthode, le composant fonctionne
 #correctement. Un message "Attribute Error" apparait dans la trace.
 def setWorkSpace(workSpace):
-   #print "EficasGUI --- setWorkSpace"
    global WORKSPACE
-   #print workSpace
    WORKSPACE=workSpace
-   #print "WORKSPACE: ",WORKSPACE
    # le desktop
    desktop=sgPyQt.getDesktop()
 
-   # creation d'une message box
-   #qt.QMessageBox.information(d,"titre","message")
-
    # recuperation du workspace
    ws=sgPyQt.getMainFrame()
    #print ws
@@ -158,15 +150,11 @@ import eficasSalome
 def runEficas():
    print "-------------------------EFICASGUI::runEficas-------------------------"
    print currentStudyId      
-   #eficasSalome.runEficas("ASTER",studyId=currentStudyId)   
-   #ws = sgPyQt.getMainFrame()   
-   #desktop=sgPyQt.getDesktop()   
    eficasSalome.runEficas( "ASTER" )
    
 
 def runEficaspourHomard():
    print "runEficas"
-   #eficasSalome.runEficas("HOMARD")
    desktop=sgPyQt.getDesktop()
    eficasSalome.runEficas( "HOMARD" ) 
    
@@ -186,8 +174,6 @@ def runEficasFichier(version=None):
    code     = None
    a=salome.sg.getAllSelected()
    if len(a) == 1:
-      #studyManager.palStudy.setCurrentStudyID( currentStudyId )
-      #boo,attr=aGuiDS.getExternalFileAttribute("FICHIER_EFICAS_ASTER",a[0])      
       selectedEntry = a[0]
       
       aType, aValue = studyManager.palStudy.getTypeAndValue( selectedEntry )
@@ -231,10 +217,7 @@ dict_command={
                 4046:runEficaspourHomard,
                 4047:runEficaspourOpenturns,
                 9042:runEficasFichier,
-                9043:runEficasFichierV8,
+                9043:runEficasFichier,
                 9044:runEficasFichierV9,
              }
              
-
-
-
index 6bbde01823c4f24e227a291dfbdb4038276e983c..422fe38d20b02e71e312796f12ec61c62a6d5c51 100644 (file)
@@ -1,9 +1,8 @@
 # -*- coding: utf-8 -*-
 
 from Logger import ExtLogger
+logger=ExtLogger( "EFICAS_SRC.EFICASGUI.eficasSalome.py" )
 
-import qt
-import notifqt
 # -----------------------------------------------------------------------------
 import sys, os, re,types
 
@@ -25,41 +24,51 @@ def exit(ier):
 
 import eficasConfig
 
-sys.path[:0]=[os.path.join( eficasConfig.eficasPath,'Aster'),
-              os.path.join( eficasConfig.eficasPath,'Homard'),
-              os.path.join( eficasConfig.eficasPath,'InterfaceTK'),
-              os.path.join( eficasConfig.eficasPath,'Editeur'),
-              eficasConfig.eficasPath,
-             ]
+# __GBO__ lignes de path ajoutées pour accéder aux packages python du
+# logiciel Eficas. Le package Aster est ajouté explicitement pour
+# accéder au module prefs.py. A FAIRE: il convient plutôt de packager
+# Eficas pour que le chargement de prefs puisse se faire sans cette
+# adaptation (ex: faire un prefs.py chapeau qui aiguille entre les
+# prefs spécifiques Aster ou Openturn).
+sys.path[:0]=[eficasConfig.eficasPath,
+              os.path.join( eficasConfig.eficasPath,'Aster')
+              ]
+              
+#sys.path[:0]=[os.path.join( eficasConfig.eficasPath,'Aster'),
+#              os.path.join( eficasConfig.eficasPath,'Homard'),
+#              # __GBO__ os.path.join( eficasConfig.eficasPath,'InterfaceQT'),
+#              os.path.join( eficasConfig.eficasPath,'Openturns'),
+#              os.path.join( eficasConfig.eficasPath,'Editeur'),
+#              eficasConfig.eficasPath,
+#             ]
 
 
-import Tkinter
 
 
 # mode de lancement Eficas
 ASTER  = "ASTER"
 HOMARD = "HOMARD"
+OPENTURNS = "OPENTURNS"
 
 
 import Editeur    
-try :
-   from Editeur import eficas
-   from Editeur import splash
-except :
-   from InterfaceTK import eficas
-   from InterfaceTK import splash
+import qt
+from InterfaceQT import qtEficas
 
 import salome
 import meshGui
-import visuDriver
 import PALGUI_API
-import studyManager
 
-#from qxembed import QXEmbed
+# __MEM_GBO: Pour mémoire, on préfère importer visuDriver après
+# studyManager car le premier dépend du second. Cependant, le problème
+# est résolu à sa source: le fichier visuDriver importe le
+# studyManager. Ainsi, il n'est plus nécessaire de se préoccuper
+# explicitement de l'ordre des import.
+import studyManager
+import visuDriver
 
 import SalomePyQt
 
-
 from SelectMainShapeDiag_ui import SelectMainShapeDiag
 from SelectMeshDiag_ui import SelectMeshDiag
 
@@ -67,24 +76,24 @@ from SelectMeshDiag_ui import SelectMeshDiag
 
 # message utilisateur
 msgWarning                 = "Attention"
-msgMainShapeSelection      = "On travaille sur la géométrie principale : "
-msgSubShapeBadMainShape    = "La sélection géométrique SALOME ne correspond pas à une sous-géométrie de la géométrie principale : "
-msgMeshGroupBadMainShape   = "Le groupe de maillage sélectionné dans SALOME ne référence pas la bonne géométrie principale : "
-msgIncompleteSelection     = "Tous les éléments de la sélection SALOME n'ont pu étre ajoutée"
-msgUnAuthorizedSelecion    = "Sélection SALOME non authorisé. Autorisé : sous-géométrie, groupe de maille"
-msgErrorAddJdcInSalome     = "Erreur dans l'export du fichier de commande dans l'arbre d'étude Salome"
-msgErrorDisplayShape       = "Erreur dans l'affichage de la forme géométrique sélectionnée"
-msgErrorDisplayMeshGroup   = "Erreur dans l'affichage du groupe de maillage sélectionné"
-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"
+msgMainShapeSelection      = "On travaille sur la géométrie principale : "
+msgSubShapeBadMainShape    = "La sélection géométrique SALOME ne correspond pas à une sous-géométrie de la géométrie principale : "
+msgMeshGroupBadMainShape   = "Le groupe de maillage sélectionné dans SALOME ne référence pas la bonne géométrie principale : "
+msgIncompleteSelection     = "Tous les éléments de la sélection SALOME n'ont pu étre ajoutée"
+msgUnAuthorizedSelecion    = "Sélection SALOME non authorisé. Autorisé : sous-géométrie, groupe de maille"
+msgErrorAddJdcInSalome     = "Erreur dans l'export du fichier de commande dans l'arbre d'étude Salome"
+msgErrorDisplayShape       = "Erreur dans l'affichage de la forme géométrique sélectionnée"
+msgErrorDisplayMeshGroup   = "Erreur dans l'affichage du groupe de maillage sélectionné"
+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
+# couleur pour visualisation des géometrie CS_CBO
 COLORS = ( studyManager.RED, 
          studyManager.GREEN,
          studyManager.BLUE,
@@ -164,14 +173,12 @@ class SelectMeshDiagImpl( SelectMeshDiag ):
 
 
 
-
-#class MyEficas( Tkinter.Toplevel, eficas.EFICAS, QXEmbed ):
-class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
+class MyEficas( qtEficas.Appli ):
     """
     Classe de lancement du logiciel EFICAS dans SALOME.
-    Cette classe spécialise le logiciel Eficas par l'ajout de:        
-    a)la création de groupes de mailles dans le composant SMESH de SALOME
-    b)la visualisation d'éléments géométrique dans le coposant GEOM de SALOME par sélection dans EFICAS
+    Cette classe spécialise le logiciel Eficas par l'ajout de:        
+    a)la création de groupes de mailles dans le composant SMESH de SALOME
+    b)la visualisation d'éléments géométrique dans le coposant GEOM de SALOME par sélection dans EFICAS
     """
     def __init__( self, parent, code = None, fichier = None, module = studyManager.SEficas, version=None):
         """
@@ -182,13 +189,11 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
                 
         
         @type   code: string
-        @param  code: catalogue à lancer ( ASTER, HOMARD ). optionnel ( défaut = ASTER ).
+        @param  code: catalogue à lancer ( ASTER, HOMARD OPENTURNS ). optionnel ( défaut = ASTER ).
         
         @type   fichier: string
-        @param  fichier: chemin absolu du fichier eficas à ouvrir à dès le lancement. optionnel
+        @param  fichier: chemin absolu du fichier eficas à ouvrir à dès le lancement. optionnel
         """
-        #QXEmbed.__init__( self, parent, "", qt.Qt.WDestructiveClose | qt.Qt.WStyle_Customize | qt.Qt.WStyle_StaysOnTop )        
-        Tkinter.Toplevel.__init__( self )
                         
         if Editeur.__dict__.has_key( 'session' ):
             from Editeur import session
@@ -197,86 +202,53 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
             if fichier:
                 eficasArg += [ fichier ]
             if version:
+                print version
                 eficasArg += [ "-c", version ]
+            else :
+                print "noversion"
             session.parse( eficasArg )
                         
+        qtEficas.Appli.__init__( self,code=code,salome=1,parent=parent)
         
-        #----------------------------------------  initialisation EFICAS  --------------------------  
-        splash.init_splash( self, code = code, titre = "Lancement d'EFICAS pour %s" %code )
-        splash._splash.configure( text="Chargement d'EFICAS en cours.\n Veuillez patienter ..." )
-        # différence eficas 1.7 et 1.8
-        
-        # compatibilite 1.12
-        V112=0
-        try :
-          from Editeur import appli
-          V112=1
-        except :
-          pass
-               
-        if V112 :
-            eficas.EFICAS.__init__( self, self, code = code )
-        else :
-            eficas.EFICAS.__init__( self, self, code = code , salome = 1)
-        
-        
-        #---------------------------------------------------------------------------------------------
-        
-        
-        """
-        #------  embarcation dans une fenêtre qt pour mise au premier plan  ---
-        #embedded = QXEmbed( parent, "", qt.Qt.WDestructiveClose | qt.Qt.WStyle_Customize | qt.Qt.WStyle_StaysOnTop )        
-        embedded = QXEmbed( parent, "" )
-        #embedded.initialize()        
-        embedded.show()
-        embedded.embedTk( self.winfo_id() )        
-        size = embedded.sizeHint()
-        #print 'CS_pbruno size (%s, %s )'%( size.width(), size.height () )
-        embedded.resize( size.width(), size.height () )
-        embedded.setWFlags(  qt.Qt.WDestructiveClose | qt.Qt.WStyle_Customize | qt.Qt.WStyle_StaysOnTop )
-        #---------------------------------------------------------------------------------------------
-        """
-        
-        #--------------- spécialisation EFICAS dans SALOME  -------------------                
+        #--------------- spécialisation EFICAS dans SALOME  -------------------                
         self.parent = parent        
-        self.salome = True      #active les parties de code spécifique dans Salome( pour le logiciel Eficas )
-        self.module = module    #indique sous quel module dans l'arbre d'étude ajouter le JDC.
+        self.salome = True      #active les parties de code spécifique dans Salome( pour le logiciel Eficas )
+        self.module = module    #indique sous quel module dans l'arbre d'étude ajouter le JDC.
         
         
-        # donnée pour la création de groupe de maille
-        self.mainShapeNames   = {} #dictionnaire pour gérer les multiples fichiers possibles ouverts par 
-        self.mainShapeEntries = {} #eficas ( clé = identifiant du JDC ), une mainshape par fichier ouvert.    
-        self.subShapes        = {} #dictionnaire des sous-géométrie de la géométrie principale ( clé = entry, valeur = name ) 
+        # donnée pour la création de groupe de maille
+        self.mainShapeNames   = {} #dictionnaire pour gérer les multiples fichiers possibles ouverts par 
+        self.mainShapeEntries = {} #eficas ( clé = identifiant du JDC ), une mainshape par fichier ouvert.    
+        self.subShapes        = {} #dictionnaire des sous-géométrie de la géométrie principale ( clé = entry, valeur = name ) 
         #----------------------------------------------------------------------    
         
         # visualisation groupes de mailles
-        self.workingMesh = {} #dictionnaire clé = identifiant JDC / valeur = entry Mesh
+        self.workingMesh = {} #dictionnaire clé = identifiant JDC / valeur = entry Mesh
         #----------------------------------------------------------------------        
         
-        self.icolor = 0  # compteur pour mémoriser la couleur courante
+        self.icolor = 0  # compteur pour mémoriser la couleur courante
+        self.show()
         
         
-    def quit(self): 
-        global appli        
-        appli = None
-        self.destroy()
-
-    def destroy(self):
+    def closeEvent(self,event):
+        import InterfaceQT.readercata
+        if hasattr(InterfaceQT.readercata,'reader') :
+           del InterfaceQT.readercata.reader
         global appli
         appli = None
-        Tkinter.Toplevel.destroy(self)
-                    
+        event.accept()
+     
     def __studySync( self ):
         """
-        IMPORTANT( à appeler préalablement à chaque appel du gestionnaire d'étude ) : spécifique au lancement de Eficas dans Salome,
-        permet au gestionnaire d'étude ( studyManager.palStudy ) de pointer sur la bonne étude.
+        IMPORTANT( à appeler préalablement à chaque appel du gestionnaire d'étude ) : spécifique au lancement de Eficas dans Salome,
+        permet au gestionnaire d'étude ( studyManager.palStudy ) de pointer sur la bonne étude.
         
-        Un retour à False indique qu'il n'y a aucune étude active, dans ce cas ne faire aucune opération avec le gestionnaire d'étude( 
+        Un retour à False indique qu'il n'y a aucune étude active, dans ce cas ne faire aucune opération avec le gestionnaire d'étude( 
         gros plantage sinon )
         """                
         activeStudyId = salome.sg.getActiveStudyId()
         
-        if activeStudyId == 0: # pas d'étude active
+        if activeStudyId == 0: # pas d'étude active
             return False
         
         if activeStudyId != salome.myStudyId:
@@ -287,12 +259,12 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
         
     def __createOCCView( self ):
         """
-        Création vue Occ
+        Création vue Occ
         """        
         #salome.salome_init()
         import iparameters
 
-        # On détermine le nombre de GUI states déjà présents dans l'arbre d'étude
+        # On détermine le nombre de GUI states déjà présents dans l'arbre d'étude
         GUIStateID = 1
 
         ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", GUIStateID))
@@ -324,7 +296,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
                         
     def __selectWorkingMesh( self, meshGroupEntries ):
         """
-        Sélection intéractive du maillage sur lequel on travail
+        Sélection intéractive du maillage sur lequel on travail
         """
         selMeshEntry, keep = None, False
         diag = SelectMeshDiagImpl( meshGroupEntries, self.parent  )
@@ -335,9 +307,9 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
             
 
 
-    def __selectMainShape( self, groupeMaNamesIn, groupeNoNamesIn, jdcID ):
+    def __selectMainShape( self, groupeMaNamesIn, groupeNoNamesIn, editor ):
         """
-        Sélection intéractive de la main shape
+        Sélection intéractive de la main shape
         """
         groupeMaNamesOut, groupeNoNamesOut = [], []
         selectedMainShape  =  None
@@ -369,9 +341,9 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
             else:
                 selectedMainShape = mainShapeEntries[0]
             
-            self.mainShapeEntries[ jdcID ] = selectedMainShape
+            self.mainShapeEntries[ editor ] = selectedMainShape
                     
-            # filtre sur la main shape sélectionnée
+            # filtre sur la main shape sélectionnée
             for name in groupeMaNamesIn:
                 try:
                     if selectedMainShape in mainShapes[ name ] :
@@ -391,13 +363,13 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
 
 
 
-    def __selectShape( self, jdcID, selectedEntry, kwType = None ):
+    def __selectShape( self, editor, selectedEntry, kwType = None ):
         """
-        sélection sous-géométrie dans Salome:
-        -test1) si c'est un élément sous-géométrique .
-        -test2) si appartient à la géométrie principale.
+        sélection sous-géométrie dans Salome:
+        -test1) si c'est un élément sous-géométrique .
+        -test2) si appartient à la géométrie principale.
         
-        met à jours la liste self.subShapes si test ok
+        met à jours la liste self.subShapes si test ok
         """        
         name, msgError = '',''
         
@@ -412,17 +384,17 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
                 name, msgError = '', msgErrorGroupMaSelection                
                 return name, msgError            
                             
-            if not self.mainShapeEntries.has_key( jdcID ):
-                self.mainShapeEntries[ jdcID ] = selectedMainShapeEntry
+            if not self.mainShapeEntries.has_key( editor ):
+                self.mainShapeEntries[ editor ] = selectedMainShapeEntry
                 name = studyManager.palStudy.getName( selectedMainShapeEntry )
                 msgError = msgMainShapeSelection + name
-            if selectedMainShapeEntry == self.mainShapeEntries[ jdcID ]:
+            if selectedMainShapeEntry == self.mainShapeEntries[ editor ]:
                 name = studyManager.palStudy.getName( selectedEntry )
                 self.subShapes[ selectedEntry ] = name                
             else:                
-                if not self.mainShapeNames.has_key( jdcID ):
-                    self.mainShapeNames[ jdcID ] = studyManager.palStudy.getName( self.mainShapeEntries[ jdcID ] )
-                msgError = msgSubShapeBadMainShape + self.mainShapeNames[ jdcID ]                
+                if not self.mainShapeNames.has_key( editor ):
+                    self.mainShapeNames[ editor ] = studyManager.palStudy.getName( self.mainShapeEntries[ editor ] )
+                msgError = msgSubShapeBadMainShape + self.mainShapeNames[ editor ]                
         else:
             name, msgError = '', msgErrorNeedSubShape
 
@@ -430,11 +402,11 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
         
         
         
-    def __selectMeshGroup( self, jdcID, selectedEntry, kwType = None ):
+    def __selectMeshGroup( self, editor, selectedEntry, kwType = None ):
         """
-        sélection groupe de maille dans Salome:
+        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 
+        -test 2) si le maillage fait référence à la géométrie principale 
         """        
         name, msgError = '',''                
                 
@@ -451,20 +423,20 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
             selectedMainShapeEntry = studyManager.palStudy.getShapeFromMesh( selectedMeshEntry )
             
             if selectedMainShapeEntry: #test 2)                
-                if not self.mainShapeEntries.has_key( jdcID ):
-                    self.mainShapeEntries[ jdcID ] = selectedMainShapeEntry
+                if not self.mainShapeEntries.has_key( editor ):
+                    self.mainShapeEntries[ editor ] = selectedMainShapeEntry
                     name = studyManager.palStudy.getName( selectedMainShapeEntry )
                     msgError = msgMainShapeSelection + name                    
-                if selectedMainShapeEntry == self.mainShapeEntries[ jdcID ]:
+                if selectedMainShapeEntry == self.mainShapeEntries[ editor ]:
                     name = studyManager.palStudy.getName( selectedEntry  )  #ok test 2)
                 else:                    
-                    if not self.mainShapeNames.has_key( jdcID ):
-                        self.mainShapeNames[ jdcID ] = studyManager.palStudy.getName(
-                                                            self.mainShapeEntries[ jdcID ] )
-                    msgError = msgMeshGroupBadMainShape + self.mainShapeNames[ jdcID ]
+                    if not self.mainShapeNames.has_key( editor ):
+                        self.mainShapeNames[ editor ] = studyManager.palStudy.getName(
+                                                            self.mainShapeEntries[ editor ] )
+                    msgError = msgMeshGroupBadMainShape + self.mainShapeNames[ editor ]
             else:
-                # on authorise quand même les groupes de maillage ne faisant 
-                # pas référence à une géométrie principale (dixit CS_CBO )
+                # on authorise quand même les groupes de maillage ne faisant 
+                # pas référence à une géométrie principale (dixit CS_CBO )
                 name = studyManager.palStudy.getName( selectedEntry )
                                           
         return name, msgError
@@ -472,27 +444,27 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
         
     
         
-    def __updateSubShapes( self, jdcID, groupeNames ):
+    def __updateSubShapes( self, editor, groupeNames ):
         """
-        mise à jours de la liste self.subShapes à partir de la liste des noms de groupe fourni en entré
+        mise à jours de la liste self.subShapes à partir de la liste des noms de groupe fourni en entré
         """
         for name in groupeNames:
             entries = studyManager.palStudy.getEntriesFromName( studyManager.SGeom, name )            
             for entry in entries:
                 if not self.subShapes.has_key( entry ):                    
-                    ok, msgError = self.__selectShape( jdcID, entry ) # filtre
+                    ok, msgError = self.__selectShape( editor, entry ) # filtre
                     if ok:
                         self.subShapes[ entry ] = name                    
         
     def __getAllGroupeMa(self, item ):
         """
-        Récupère tous les GROUPE_MA dans le JDC courant
+        Récupère tous les GROUPE_MA dans le JDC courant
         """
         groupMa = ()                
         try:
+        #if 1 :
             itemName  = item.get_nom()
             if 'GROUP_MA' in itemName:
-                #print 'CS_pbruno itemName',itemName             
                 itemValue = item.get_valeur()
                 if type( itemValue ) == str:
                     groupMa += ( itemValue , )
@@ -501,13 +473,26 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
                elif type( itemValue ) == list:
                    groupMa += tuple(itemValue)
                elif type( itemValue ) == types.InstanceType and itemValue.has_key('GROUP_MA'):
-                    # pour créer le groupe de mailles dans DEFI_GROUP> CREA_GROUP_MA> GROUP_MA
+                    # pour créer le groupe de mailles dans DEFI_GROUP> CREA_GROUP_MA> GROUP_MA
                    groupMa += ( itemValue['GROUP_MA'], )
+                else :
+                   # sert pour DEFI_GROUP_MA / UNION
+                   mc=item.get_definition()
+                   if  type( mc ) == types.InstanceType :
+                       children = item._GetSubList()
+                       for child in children:            
+                           try :
+                             if 'grma' in repr(child.get_definition().type[0]) :
+                                 val=tuple(child.get_valeur())
+                                 groupMa += val
+                           except :
+                               pass
             else:
                 children = item._GetSubList()
                 for child in children:            
                     groupMa +=  self.__getAllGroupeMa( child )
         except:
+        #else :
        # traitement des MCLIST Pour CREA_GROUP_MA
             try:
                 itemName  = item.get_nom()
@@ -522,7 +507,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
    
     def __getAllGroupeNo(self, item ):
         """
-        Récupère tous les GROUPE_NO dans le JDC courant
+        Récupère tous les GROUPE_NO dans le JDC courant
         """
         groupNo = ()                
         try:
@@ -536,7 +521,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
                elif type( itemValue ) == list:
                    groupNo += tuple(itemValue)
                elif type( itemValue ) == types.InstanceType and itemValue.has_key('GROUP_NO'):
-                    # pour créer le groupe de Noeuds dans DEFI_GROUP> CREA_GROUP_NO> GROUP_NO
+                    # pour créer le groupe de Noeuds dans DEFI_GROUP> CREA_GROUP_NO> GROUP_NO
                    groupNo += ( itemValue['GROUP_NO'], )
             else:
                 children = item._GetSubList()
@@ -556,29 +541,28 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
 
         
     #-----------------------  LISTE DES NOUVEAUX CAS D'UTILISATIONS -----------    
-    def selectGroupFromSalome( self, kwType = None):
+    def selectGroupFromSalome( self, kwType = None, editor=None):
         """
-        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
+        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 )
         
-        Note: Appelé par EFICAS lorsqu'on clique sur le bouton ajouter à la liste du panel AFF_CHAR_MECA        
+        Note: Appelé par EFICAS lorsqu'on clique sur le bouton ajouter à la liste du panel AFF_CHAR_MECA        
         """
         names, msg = [], ''
         try:            
+            self.editor=editor
             atLeastOneStudy = self.__studySync()
             if not atLeastOneStudy:
                 return names, msg
-            # récupère toutes les sélections de l'utilsateur dans l'arbre Salome
+            # récupère toutes les sélections de l'utilsateur dans l'arbre Salome
             entries = salome.sg.getAllSelected()
             nbEntries = len( entries )
             if nbEntries >= 1:
-#                 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, kwType )
-                    elif studyManager.palStudy.isShape( entry ): #sélection d'une sous-géométrie
-                        name, msg = self.__selectShape( jdcID, entry, kwType )
+                    if studyManager.palStudy.isMeshGroup( entry ): #sélection d'un groupe de maille
+                        name, msg = self.__selectMeshGroup( editor, entry, kwType )
+                    elif studyManager.palStudy.isShape( entry ): #sélection d'une sous-géométrie
+                        name, msg = self.__selectShape( editor, entry, kwType )
                     else:
                         name, msg = '', msgUnAuthorizedSelecion
                     if name:
@@ -586,41 +570,49 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
                         
             if names and len( names ) < nbEntries:                        
                 msg = msgIncompleteSelection
-            salome.sg.EraseAll()
         except:            
-            logger.debug(50*'=')
+            logger.debug("selectGroupFromSalome: An error occurs")
         return names, msg                
         
         
     def addJdcInSalome(  self, jdcPath ):
         """
-        Ajoute le Jeu De Commande ASTER ou HOMARD dans l'arbre d'étude Salome dans la rubrique EFICAS
+        Ajoute le Jeu De Commande ASTER ou HOMARD dans l'arbre d'étude Salome dans la rubrique EFICAS
         """
         ok, msgError = False, msgErrorAddJdcInSalome
-        try:            
+        #try:            
+        if 1:
             atLeastOneStudy = self.__studySync()
             if not atLeastOneStudy:
                 return ok, msgError
                         
-            fileType = { 'ASTER':  studyManager.FICHIER_EFICAS_ASTER,
-                        'HOMARD': studyManager.FICHIER_EFICAS_HOMARD }
+            fileType = { 'ASTER'    : studyManager.FICHIER_EFICAS_ASTER,
+                         'HOMARD'   : studyManager.FICHIER_EFICAS_HOMARD ,
+                         'OPENTURNS': studyManager.FICHIER_EFICAS_OPENTURNS}
                         
-            folderName = {  'ASTER':  'AsterFiles',
-                            'HOMARD': 'HomardFiles' }                                    
+            folderName = {  'ASTER'    :  'AsterFiles',
+                            'HOMARD'   : 'HomardFiles' ,
+                            'OPENTURNS': 'OpenturnsFiles'}                                    
+
+            folderType = { 'ASTER':     studyManager.ASTER_FILE_FOLDER,
+                           'HOMARD':    studyManager.ASTER_FILE_FOLDER,
+                           'OPENTURNS': studyManager.OPENTURNS_FILE_FOLDER
+                         }
+
                         
             moduleEntry = studyManager.palStudy.addComponent(self.module)
             itemName    = re.split("/",jdcPath)[-1]
             
             fatherEntry = studyManager.palStudy.addItem(
                                     moduleEntry,
-                                    itemName = folderName[self.bureau.code],
+                                    itemName = folderName[self.code],
                                     itemIcon = "ICON_COMM_FOLDER",
-                                    itemType = studyManager.ASTER_FILE_FOLDER,
+                                    itemType = folderType[self.code],
                                     bDoublonCheck = True  )
                                                                         
             commEntry = studyManager.palStudy.addItem( fatherEntry ,
                                                         itemName = itemName,
-                                                        itemType = fileType[ self.bureau.code ],
+                                                        itemType = fileType[ self.code ],
                                                         itemValue = jdcPath,
                                                         itemComment = str( jdcPath ),
                                                         itemIcon    = "ICON_COMM_FILE",
@@ -629,45 +621,41 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
             print 'addJdcInSalome commEntry->', commEntry            
             if commEntry:
                 ok, msgError = True, ''        
-        except:                    
+        #except:                    
             logger.debug(50*'=')
         return ok, msgError        
         
                 
-    def createOrUpdateMesh( self ):
+    def createOrUpdateMesh( self, editor ):
         """
             Ouverture d'une boite de dialogue : Creation de groupes de mailles dans un maillage existant ou un nouveau maillage.                         
-            Note: Appelé par EFICAS à la sauvegarde du JDC.
+            Note: Appelé par EFICAS à la sauvegarde du JDC.
         """
         try:            
             atLeastOneStudy = self.__studySync()
             if not atLeastOneStudy:
                 return
             
-#             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 )
+            groupeMaNames = self.__getAllGroupeMa( editor.tree.item )
+            groupeNoNames = self.__getAllGroupeNo( editor.tree.item )
             
             # on elimine les doublons de la liste
             groupeMaNames = dict.fromkeys(groupeMaNames).keys()
             groupeNoNames = dict.fromkeys(groupeNoNames).keys()
             
-            print 'CS_pbruno createOrUpdateMesh groupeMaNames', groupeMaNames
-            print 'CS_pbruno createOrUpdateMesh groupeNoNames', groupeNoNames
+            #print 'CS_pbruno createOrUpdateMesh groupeNoNames', groupeNoNames
                         
-            # mise à jours de la liste des sous-géométrie ( self.subShapes )
-            if not self.mainShapeEntries.has_key( jdcID ):
-                # l'utilisateur n'a sélectionné aucune sous-géométrie et donc pas de géométrie principale
-                groupeMaNames, groupeNoNames  = self.__selectMainShape( groupeMaNames, groupeNoNames, jdcID )
+            # mise à jours de la liste des sous-géométrie ( self.subShapes )
+            if not self.mainShapeEntries.has_key( editor ):
+                # l'utilisateur n'a sélectionné aucune sous-géométrie et donc pas de géométrie principale
+                groupeMaNames, groupeNoNames  = self.__selectMainShape( groupeMaNames, groupeNoNames, editor )
                 
             if groupeMaNames or groupeNoNames:                                                
                 print 'CS_pbruno createOrUpdateMesh groupeMaNames', groupeMaNames
                 print 'CS_pbruno createOrUpdateMesh groupeNoNames', groupeNoNames            
-                self.__updateSubShapes( jdcID, groupeMaNames + groupeNoNames )
+                self.__updateSubShapes( editor, groupeMaNames + groupeNoNames )
     
-                # recupération des identifiants( entries ) associés aux noms des groupes        
+                # recupération des identifiants( entries ) associés aux noms des groupes        
                 groupeMaEntries = []
                 groupeNoEntries = []                            
                 
@@ -679,7 +667,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
 
                 if groupeMaEntries or groupeNoEntries:                    
                     diag = meshGui.MeshUpdateDialogImpl(
-                                self.mainShapeEntries[jdcID],
+                                self.mainShapeEntries[editor],
                                 groupeMaEntries,
                                 groupeNoEntries,
                                 studyManager.palStudy,
@@ -700,7 +688,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
         ok, msgError = False, ''
         try:
             sg = salome.ImportComponentGUI('SMESH')
-            currentjdcID = self.bureau.nb.getcurselection()
+            currentjdcID = self.editor.nb.getcurselection()
             meshGroupEntries = []
             selMeshEntry = None
             selMeshGroupEntry = None
@@ -717,12 +705,12 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
                 if len(meshGroupEntries)>1:
                 
                     # choix d'un maillage
-                    if not self.workingMesh.has_key(currentjdcID): # aucun maillage de défini par défaut encore
+                    if not self.workingMesh.has_key(currentjdcID): # aucun maillage de défini par défaut encore
                         #selMeshEntry = "0:1:3:5" #CS_pbruno todo : choix maillage + test si c un maillage
                         selMeshEntry, keep = self.__selectWorkingMesh(meshGroupEntries)
                         if keep:
                             self.workingMesh[currentjdcID] = selMeshEntry
-                    else: # déja un de défini par défaut
+                    else: # déja un de défini par défaut
                         selMeshEntry = self.workingMesh[currentjdcID]
                             
                     # le groupe de maille est il ds ce maillage?
@@ -737,7 +725,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
                     
                 # on affiche le groupe ds la vue VTK
                 if selMeshGroupEntry:
-                    #CS_pbruno: marche QUE si le module SMESH est activé
+                    #CS_pbruno: marche QUE si le module SMESH est activé
                     myComponent = salome.lcc.FindOrLoadComponent("FactoryServer", "SMESH")
                     SCom        = studyManager.palStudy._myStudy.FindComponent("SMESH")
                     studyManager.palStudy._myBuilder.LoadWith( SCom , myComponent  )                             
@@ -753,7 +741,7 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
             
     def displayShape(  self, shapeName ):
         """
-        visualisation géométrie de nom shapeName dans salome
+        visualisation géométrie de nom shapeName dans salome
         """
         ok, msgError = False, ''
         try:
@@ -796,7 +784,6 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
                                      initialdir = fichier)
            f=open(sauvegarde,'w+')
            for unite in dico.keys():
-                print unite
                 type=dico[unite][0]
                 fic=dico[unite][1:]
                 ligne="fort."+str(unite)+" "+type+" "+fic
@@ -804,14 +791,13 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
            f.close()
            self.rangeInStudy(sauvegarde)
           print "==============================="
-          print "fin crreConfigTxt"    
         """
-        pass #CS_pbruno à implémenter
+        pass #CS_pbruno à implémenter
            
            
     def buildCabriGeom( self, name, **param ):
         """
-        visualisation dans GEOM d'une géométrie CABRI
+        visualisation dans GEOM d'une géométrie CABRI
         """
         import cabri        
         qt.QApplication.setOverrideCursor( qt.QCursor.waitCursor )
@@ -819,24 +805,28 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
         qt.QApplication.restoreOverrideCursor()
         
         
-
+        
 #-------------------------------------------------------------------------------------------------------
 #    Pilotage de la Visu des elements de structures
 #
 
+
     def envoievisu(self,liste_commandes):
-        #try:
-        if ( 1 == 1 ):
+        import traceback
+        try:
             atLeastOneStudy = self.__studySync()
             if not atLeastOneStudy:
                 return
+            logger.debug(10*'#'+":envoievisu: creating a visuDriver instance")
             monDriver=visuDriver.visuDriver(studyManager.palStudy,liste_commandes)
+
+            logger.debug(10*'#'+":envoievisu: analyse visu commandes using the visuDriver "+str(monDriver))
             monId = monDriver.analyse()
+            logger.debug(10*'#'+":envoievisu: display the structural elements using PALGUI")
             PALGUI_API.displaySE(monId)
-
-        else:
-        #except:
-            print "boum dans envoievisu"
+        except:
+            traceback.print_exc()
+            logger.debug(10*'#'+":pb dans envoievisu")
 
 
         
@@ -844,9 +834,17 @@ class MyEficas( Tkinter.Toplevel, eficas.EFICAS ):
 #           Point d'entree lancement EFICAS
 #
 def runEficas( code="ASTER", fichier=None, module = studyManager.SEficas, version=None ):
+    logger.debug(10*'#'+":runEficas: START")
     global appli    
+    logger.debug(10*'#'+":runEficas: code="+str(code))
+    logger.debug(10*'#'+":runEficas: fichier="+str(fichier))
+    logger.debug(10*'#'+":runEficas: module="+str(module))
+    logger.debug(10*'#'+":runEficas: version="+str(version))
+
     if not appli: #une seul instance possible!        
         appli = MyEficas( SalomePyQt.SalomePyQt().getDesktop(), code = code, fichier = fichier, module = module, version=version )
+    logger.debug(10*'#'+":runEficas: END")
+
         
         
  
@@ -866,19 +864,10 @@ def runAster(parent = SalomePyQt.SalomePyQt().getDesktop(), palStudyManager = st
         appli = MyEficas( parent, palStudyManager, code = code, fichier = fichier )
 """    
 
-    
-     
-# Init globale du module
-root = Tkinter.Tk()
-root.withdraw()
-
-
 appli = None
 
 
 
-logger=ExtLogger( "eficasSalome.py" )
-
 
 
 
index 2461546328cf6fde6d6aeaf1807cc661f8fde504..eedfcbee6adddc571e2d5dc95f7c5183e58af439 100644 (file)
@@ -374,23 +374,23 @@ class SalomeStudy(   salomedsgui.guiDS ):
             if self.isMainShape(  mainShapeEntry ):
                 mainShapeSO = salome.IDToSObject( mainShapeEntry )
                 SObjectList = self._myStudy.FindDependances( mainShapeSO )
-                print '####  mainShapeSO=%s , SObjectList  = %s'%( mainShapeSO, SObjectList )
+                #print '####  mainShapeSO=%s , SObjectList  = %s'%( mainShapeSO, SObjectList )
                 if SObjectList: #Ok, il y a des objet référençant la mainShape
                     for SObject in SObjectList: # Recherche du type de chacun des objets
                         SFatherComponent = SObject.GetFatherComponent()
-                        print '####  SFatherComponent = %s'%SFatherComponent 
+                        #print '####  SFatherComponent = %s'%SFatherComponent 
                         if SFatherComponent.GetName() == SMesh: #Ok, l'objet est un objet du composant 'Mesh'
                             SFather = SObject.GetFather()
-                            print '####  SFather= %s'%SFather
+                            #print '####  SFather= %s'%SFather
                             ##CorbaObject = SFather.GetObject()
                             FatherEntry = SFather.GetID()
                             CorbaObject  = self.__getCORBAObject(  FatherEntry )
-                            print '####  CorbaObject = %s'%CorbaObject 
+                            #print '####  CorbaObject = %s'%CorbaObject 
                             MeshObject = CorbaObject ._narrow( SMESH.SMESH_Mesh )
-                            print '####  MeshObject = %s'%MeshObject 
+                            #print '####  MeshObject = %s'%MeshObject 
                             if MeshObject : #Ok, l'objet est un objet 'maillage'
                                 MeshObjectEntry = self.__getEntry( MeshObject )
-                                print '####  MeshObjectEntry = %s'%MeshObjectEntry 
+                                #print '####  MeshObjectEntry = %s'%MeshObjectEntry 
                                 if MeshObjectEntry:
                                     result.append( MeshObjectEntry )  # On l'ajoute ds la liste résultat!
             else: # c'est pas une mainShape !