]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
PN : Ajouts de .comm d exemple
authoreficas <>
Mon, 14 Nov 2005 15:31:18 +0000 (15:31 +0000)
committereficas <>
Mon, 14 Nov 2005 15:31:18 +0000 (15:31 +0000)
Editeur/appli.py
Editeur/bureau.py
Editeur/listePatrons.py [new file with mode: 0644]

index d60bf8294135baad1c30020e622ba1c97490d1d6..072fb5456650adaa1e868d5b1a0da4674e219361 100644 (file)
@@ -44,6 +44,7 @@ from widgets import Fenetre
 from Misc import MakeNomComplet
 import session
 import listeFichiers
+import listePatrons
 
 VERSION="EFICAS v1.9"
 
@@ -79,6 +80,7 @@ class APPLI:
       # Creation des autres composants graphiques dont le bureau (parametrable par prefs.py)
       self.load_appli_composants()             
       self.listeFichiers=listeFichiers.listeFichiers(self)
+      self.listePatrons=listePatrons.listePatrons(self)
 
       # PN : ajout d un attribut pour indiquer si 
       # l appli a ete lance depuis Salome
@@ -246,7 +248,8 @@ class APPLI:
          number_item=number_item + 1
         raccourci_label=""
          if not item :
-            menu.add_separator()
+            #menu.add_separator()
+           pass
          else:
             if len(item)==3:
                raccourci=item[2]
index 73bdbd23177fb1606fbcf4a1882f8eef2c5b6a62..c67df204bbda432ef168bbe9c4ff09a88fca2363 100644 (file)
@@ -110,6 +110,7 @@ class BUREAU:
       comploader.charger_composants()
       self.cree_cataitem()
       self.text_reel=""
+      self.initialdir = self.appli.CONFIGURATION.initialdir
 
    def cree_cataitem(self):
       """
@@ -184,7 +185,7 @@ class BUREAU:
       self.ShowJDC(J,self.JDCName)
       self.appli.toolbar.active_boutons()
 
-   def ShowJDC(self,JDC,nom,label_onglet=None,JDCDISPLAY=JDCDISPLAY):
+   def ShowJDC(self,JDC,nom,label_onglet=None,JDCDISPLAY=JDCDISPLAY,enregistre="non"):
       """
           Lance l'affichage du JDC cad création du JDCDisplay
           Rajoute le JDCDisplay à la liste des JDCDisplay si label_onglet == None cad si on crée
@@ -203,7 +204,10 @@ class BUREAU:
       if new == 'oui':
           self.liste_JDCDisplay.append(self.JDCDisplay_courant)
       self.JDCDisplay_courant.modified='n'
-      self.JDCDisplay_courant.fichier=self.fileName
+      if enregistre != "non" :
+         self.JDCDisplay_courant.fichier=self.fileName
+      else :
+         self.initialdir = self.appli.CONFIGURATION.rep_user
       self.nb.selectpage(label_onglet)
       self.nb.setnaturalsize()
       texte = "Jeu de commandes :" + self.JDCName+" ouvert"
@@ -302,7 +306,7 @@ class BUREAU:
       texte_cr = str(cr)
       self.visu_texte_cr = Fenetre(self.appli,titre=titre,texte=texte_cr)
 
-   def openJDC(self,event=None,file=None,units=None):
+   def openJDC(self,event=None,file=None,units=None,enregistre="oui"):
       """
           Demande à l'utilisateur quel JDC existant il veut ouvrir
       """
@@ -341,7 +345,8 @@ class BUREAU:
                     titre="compte-rendu d'erreurs, EFICAS ne sait pas convertir ce fichier",
                     texte = str(p.cr)).wait()
             return
-        self.appli.listeFichiers.aOuvert(file)
+        if enregistre == "oui" :
+           self.appli.listeFichiers.aOuvert(file)
       else:
          # Il n'existe pas c'est une erreur
          self.appli.affiche_infos("Type de fichier non reconnu")
@@ -372,7 +377,7 @@ class BUREAU:
           if self.appli.test == 0 :
              showerror("Erreur fatale au chargement d'un fichier",txt_exception)
       else:
-          self.ShowJDC(J,self.JDCName)
+          self.ShowJDC(J,self.JDCName,enregistre=enregistre)
           self.appli.toolbar.active_boutons()
          # si le JDC ne contient rien (vide), on retourne ici
          if len(self.JDC.etapes) == 0 : return
@@ -380,6 +385,7 @@ class BUREAU:
           if not self.JDC.isvalid():
             self.appli.top.update()
             self.visuCR(mode='JDC')
+      # On a ouvert un Patron
 
    def GetLabelJDC(self,nb_jdc = 'absent'):
       """
@@ -473,8 +479,9 @@ class BUREAU:
       sauvegarde = asksaveasfilename(title=titre,
                                      defaultextension=defext,
                                      filetypes = filtyp,
-                                     initialdir = self.appli.CONFIGURATION.initialdir)
-                                     #initialdir = self.appli.CONFIGURATION.rep_user)
+                                     initialdir = self.initialdir)
+                            #initialdir = self.appli.CONFIGURATION.initialdir)
+                            #initialdir = self.appli.CONFIGURATION.rep_user)
       if sauvegarde :
           # PN ajout --> Salome
           # Pour sauvegarde dans l etude si lancement depuis salome
diff --git a/Editeur/listePatrons.py b/Editeur/listePatrons.py
new file mode 100644 (file)
index 0000000..532c01e
--- /dev/null
@@ -0,0 +1,45 @@
+import os
+import re
+import Tkinter
+
+# le dictionnaire sous menu est indexe parceque l'ordre des
+# recherches est important
+
+sous_menu={0:{"3D":"3D.comm"},1:{"pou":"pou.comm"},2:{"divers":"comm"}}
+
+class listePatrons :
+
+    def __init__(self,appli):
+       self.appli=appli
+       rep_ini=self.appli.CONFIGURATION.rep_ini
+       self.rep_patrons=rep_ini+"/../Editeur/Patrons"
+       self.liste={}
+       self.traite_liste()
+       self.ajout_menu()
+
+
+    def traite_liste(self):
+        for file in os.listdir(self.rep_patrons):
+           for i in range(len(sous_menu)):
+               clef=sous_menu[i].keys()[0]
+               chaine=sous_menu[i][clef]
+               if re.search(chaine,file) :
+                  if clef in self.liste.keys():
+                     self.liste[clef].append(file)
+                  else :
+                     self.liste[clef]=[file]
+                  break
+
+    def ajout_menu(self):
+        menuFichier=self.appli.menubar.menubar
+       menu_cascade=Tkinter.Menu(menuFichier,tearoff=0)
+       menuFichier.add_cascade(label="Patrons",menu=menu_cascade)
+        for ss_menu in self.liste.keys():
+          ssmenu=Tkinter.Menu(menu_cascade,tearoff=0)
+          menu_cascade.add_cascade(label=ss_menu,menu=ssmenu)
+          for fichier in self.liste[ss_menu]:
+               ssmenu.add_command(label=fichier,command= lambda self=self, l=fichier:self.ouvre(l));
+
+    def ouvre(self,label):
+        fichier=self.rep_patrons+"/"+label
+        self.appli.bureau.openJDC(file=fichier,enregistre="non")