Salome HOME
*** empty log message ***
[tools/eficas.git] / Editeur / panelsSalome.py
index 57efd365b5c53d39d2c0bdbfdc8bc76248ce044f..ac1a3ac44e435c8005a808eef094c1c74d57bfd5 100644 (file)
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 print "Import de panelsSalome"
 
 from Tkinter import *
@@ -14,6 +15,7 @@ from uniqueassdpanel    import UNIQUE_ASSD_Panel
 from uniqueintopanel    import UNIQUE_INTO_Panel
 from uniquecomppanel    import UNIQUE_COMP_Panel
 from uniquebasepanel    import UNIQUE_BASE_Panel
+from uniqueassdpanel    import UNIQUE_ASSD_Panel_Reel
 
 from Noyau.N_CR import justify_text
 
@@ -74,6 +76,9 @@ class SALOME_UNIQUE_ASSD_Panel (UNIQUE_ASSD_Panel):
 class SALOME_UNIQUE_COMP_Panel (UNIQUE_COMP_Panel):
        ""
 
+class SALOME_UNIQUE_ASSD_Panel_Reel (UNIQUE_ASSD_Panel_Reel):
+       ""
+
 # ------------------------------------------------------------------------------#
 # classe SALOME_PLUSIEURS_BASE_Panel
 #
@@ -89,8 +94,8 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
 
   def convertit_group_no_from_salome(self,liste_in):
       newr=[]
-      try:
-          print liste_in
+      #try:
+      if ( 1 == 1 ) :
          for entree in liste_in :
               travail=[]
               travail.append(entree)
@@ -103,14 +108,16 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
                   dict_geom_numgroupe[entreeName]=r
                for i in r :
                    newr.append(i)
-      except:
+      #except:
+      else :
           print "pas de groupe de noeuds associé"
           showerror("Pas de groupe associé","Cet Objet ne peut pas être défini comme un ensemble de groupe de noeuds")
       return newr
 
   def convertit_group_maille_from_salome(self,liste_in):
       newr=[]
-      try:
+      #try:
+      if [ 1 == 1 ]:
           print liste_in
          for entree in liste_in :
               travail=[]
@@ -124,7 +131,8 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
                   dict_geom_numgroupe[entreeName]=r
                for i in r :
                    newr.append(i)
-      except:
+      #except:
+      else :
           print "pas de groupe de maille associé"
           showerror("Pas de groupe associé","Cet Objet ne peut pas être défini comme un ensemble de groupe de maille")
       return newr
@@ -133,7 +141,12 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
       if SALOME_PLUSIEURS_BASE_Panel.__dict__.has_key(self.clef_fonction):
            valeur=apply(SALOME_PLUSIEURS_BASE_Panel.__dict__[self.clef_fonction],(self,entrychaine))
       else :
-          if self.clef_fonction.find("GROUP_NO") != -1 :
+           if (self.clef_fonction.find("GROUP_NO") != -1) and (self.clef_fonction.find("GROUP_MA") != -1) :
+              if (self.clef_fonction.find("GROUP_NO") < self.clef_fonction.find("GROUP_MA")) :
+               valeur=self.convertit_group_maille_from_salome(entrychaine)
+             else :
+               valeur=self.convertit_group_no_from_salome(entrychaine)  
+          elif self.clef_fonction.find("GROUP_NO") != -1 :
               valeur=self.convertit_group_no_from_salome(entrychaine)
           else :
               if self.clef_fonction.find("GROUP_MA") != -1 :
@@ -165,7 +178,6 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
           pass
 
       entryname_list=SMESH_utils.entryToName(salome.myStudy,entrychaine)
-      print  entryname_list
       self.entrygroupe.delete(0,END)
       self.sortie.delete(0,END)
       for entryname in entryname_list:
@@ -205,7 +217,6 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
               if i not in liste_valeurs:
                 valeur.append(i)
              
-          print valeur
           if valeur==[]:
             entryname_list=[]
 
@@ -313,12 +324,12 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel):
       self.ajout_valeurs = None
       self.b = Button(self.frame_choix,text='ajouter  selection',command=self.add_valeur_from_salome)
 
-      self.b.place(relx=0.05,rely=0.05)
+      self.b.place(relx=0.02,rely=0.05)
       self.entrygroupe = Entry(self.frame_choix,relief='sunken')
       self.entrygroupe.place(relx=0.50,rely=0.05)
 
       self.a = Button(self.frame_choix,text='enlever selection',command=self.sup_valeur_from_salome)
-      self.a.place(relx=0.05,rely=0.2)
+      self.a.place(relx=0.02,rely=0.2)
       self.sortie = Entry(self.frame_choix,relief='sunken')
       self.sortie.place(relx=0.50,rely=0.2)
 
@@ -377,6 +388,66 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel):
 
   dict_fichier_unite={}
 
+
+  def SALOME_DONNEES_HOMARD_TRAITEMENT_FICHIER_MED_MAILLAGE_N(self):
+      entrychaine=salome.sg.getAllSelected()
+      if entrychaine != '':
+          self.entry2.delete(0,END)
+          try:
+              SO = salome.myStudy.FindObjectID(entrychaine[0])
+          except:
+              boo = 0
+              SO = None
+
+          FileName=''
+          if SO != None:
+              myBuilder = salome.myStudy.NewBuilder()
+              boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeFileType")
+              if boo:
+                 val=FileAttr.Value()
+                 if (val !="FICHIERMED"):
+                     boo=0
+                     showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
+                 else:
+                     boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeExternalFileDef")
+              if boo :
+                FileName=FileAttr.Value()
+              else:
+                 showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
+          if FileName != '' :
+              self.entry2.insert(0,FileName)
+              self.entry.delete(0,END)
+              self.entry.insert(0,FileName)
+              self.valid_valeur()
+
+
+  def SALOME_DONNEES_HOMARD_TRAITEMENT_NOM_MED_MAILLAGE_N(self):
+      EntryName=''
+      entrychaine=salome.sg.getAllSelected()
+      if entrychaine != '':
+          self.entry2.delete(0,END)
+          try:
+              SO = salome.myStudy.FindObjectID(entrychaine[0])
+          except:
+              boo = 0
+              SO = None
+
+          if SO is not None:
+            myBuilder = salome.myStudy.NewBuilder()
+             ok, AtName = myBuilder.FindAttribute(SO,"AttributeName")
+            if ok:
+               EntryName=AtName.Value()
+
+      if EntryName != '':
+          self.entry2.insert(0,EntryName)
+          self.entry.delete(0,END)
+          self.entry.insert(0,EntryName)
+          self.valid_valeur()
+
+  def SALOME_DONNEES_HOMARD_TRAITEMENT_FICHIER_MED_MAILLAGE_NP1(self):
+      self.SALOME_DONNEES_HOMARD_TRAITEMENT_FICHIER_MED_MAILLAGE_N()
+
+
   def SALOME_LIRE_MAILLAGE_UNITE(self):
 
       unite=self.node.item.get_valeur()
@@ -385,9 +456,7 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel):
          self.entry2.delete(0,END)
 
           try:
-             print salome.myStudy
               SO = salome.myStudy.FindObjectID(entrychaine[0])
-             print SO
           except:
               boo = 0
               SO = None
@@ -396,28 +465,38 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel):
              myBuilder = salome.myStudy.NewBuilder()
               boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeComment")
 
-          if boo == 0 :
-            FileName=''
-             print "a"
-          else :
-            Comment=FileAttr.Value()
-             print "ICI"
-             print Comment
-             if Comment.find("FICHIERMED")== -1 :
-                FileName=''
-             else :
-                FileName=Comment[10:]
-
+          FileName=''
+          if SO != None:
+              myBuilder = salome.myStudy.NewBuilder()
+              boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeFileType")
+              if boo:
+                 boo=0
+                 val=FileAttr.Value()
+                 if (val !="FICHIERMED"):
+                     showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
+                 else:
+                     boo,FileAttr = myBuilder.FindAttribute(SO,"AttributeExternalFileDef")
+          if boo :
+              FileName=FileAttr.Value()
+          else:
+              showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
 
           print "FileName = " , FileName
-         if FileName != '' :
-              print FileName
-             self.entry2.insert(0,FileName)
+          if FileName != '' :
+              self.entry2.insert(0,FileName)
               typefic='D'
               SALOME_UNIQUE_BASE_Panel.dict_fichier_unite[unite]=typefic+FileName
           else :
-             print "il faut afficher une Fenetre d impossibilité"
-             showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associé")
+              print "il faut afficher une Fenetre d impossibilit\xe9"
+              showerror("Pas de Fichier MED","Cet Objet n a pas de fichier MED Associ\xe9")
+
+  def redistribue_selon_simp(self):
+      genea = self.node.item.get_genealogie()
+      commande="SALOME"
+      for i in range(0,len( genea )) :
+        commande=commande+"_"+ genea[i]
+      (SALOME_UNIQUE_BASE_Panel.__dict__[commande])(self)
+
 
   def makeValeurPage(self,page):
       """
@@ -442,8 +521,8 @@ class SALOME_UNIQUE_BASE_Panel(UNIQUE_BASE_Panel):
       self.entry.bind("<Return>",lambda e,c=self.valid_valeur:c())
 
       # PN : Ajout d'un bouton pour selectionner  à partir de Salome  
-      self.b = Button(self.frame_valeur,text='Relier a selection',command=self.SALOME_LIRE_MAILLAGE_UNITE)
-      self.b.place(relx=0.1,rely=0.1)
+      self.b = Button(self.frame_valeur,text='Relier selection',command=self.redistribue_selon_simp)
+      self.b.place(relx=0.05,rely=0.1)
       unite=self.node.item.get_valeur()
       self.entry2 = Entry(self.frame_valeur,relief='sunken')
       self.entry2.place(relx=0.3,rely=0.1)
@@ -478,6 +557,7 @@ dict_classes_salome = { SHELLPanel : SALOME_SHELLPanel,
                          UNIQUE_INTO_Panel :  SALOME_UNIQUE_INTO_Panel,
                          UNIQUE_SDCO_Panel : SALOME_UNIQUE_SDCO_Panel,
                          UNIQUE_ASSD_Panel : SALOME_UNIQUE_ASSD_Panel,
+                         UNIQUE_ASSD_Panel_Reel : SALOME_UNIQUE_ASSD_Panel_Reel,
                          UNIQUE_COMP_Panel : SALOME_UNIQUE_COMP_Panel,
                          UNIQUE_BASE_Panel : SALOME_UNIQUE_BASE_Panel}