Salome HOME
PN : les listes sont maintenant "repeat" par defaut
[tools/eficas.git] / Editeur / appli.py
index 1fce87ce7ebfc3c1e8ae9702bcc3b86a1384e6b5..740b1eb8f17167717e5235556ba22dfefbf4685b 100644 (file)
 """
 # Modules Python
 import sys
+import types
 import Pmw
 import Tkinter
+from tkMessageBox import showinfo,askyesno,showerror
 
 # Modules Eficas
 import splash
 import prefs
 import fontes
 import tooltip
+import properties
+from widgets import Fenetre
+from Misc import MakeNomComplet
 
-VERSION="EFICAS v1.3"
+VERSION="EFICAS v1.4"
 
 class APPLI: 
   def __init__ (self,master,code='ASTER',fichier=None) :
@@ -51,9 +56,16 @@ class APPLI:
       self.format_fichier = Tkinter.StringVar()
       self.message=''
       self.cree_composants_graphiques()
-      self.load_appli_composants()
-      self.affiche_FAQ()
+      self.load_appli_composants()                     # Creation du BUREAU
       splash.fini_splash()
+      self.affiche_FAQ()
+      # AY : cas ou le nom du fichier a été passé en argument
+      if fichier :
+           try :
+                self.bureau.openJDC( str(MakeNomComplet.FILENAME(fichier)) )
+           except Exception,e :
+                showerror( "ARGUMENT INVALIDE", str(e) )
+      # AY : fin
 
   def send_message(self,message):
       self.message=message
@@ -76,7 +88,7 @@ class APPLI:
       """
           Cree les constituants de l'application :
            - menubar
-           - tollbar
+           - toolbar
            - bureau
            - statusbar
       """
@@ -151,9 +163,9 @@ class APPLI:
           Retourne un texte d'informations sur la session courante d'EFICAS
       """
       texte = VERSION + '\n\n'
-      texte = texte + 'EFICAS est un produit développé par \nEDF-Division Stratégie et Développement\n'
-      texte = texte + 'Equipe : MTI/MMN\n\n'
-      texte = texte + 'Code utilisé : %s\n' %self.code
+      texte = texte + 'EFICAS est un produit développé par \nEDF-R&D\n'
+      texte = texte + 'Equipe : SINETICS\n\n'
+      texte = texte + 'Code utilisé : %s version %s\n' % (self.code,properties.version)
       return texte
 
   def efface_aide(self,event):
@@ -180,17 +192,47 @@ class APPLI:
       self.aide._showTip()
       return 
 
+  def cree_menu(self,menu,itemlist,appli_composant):
+      """
+          Ajoute les items du tuple itemlist
+          dans le menu menu
+      """
+      number_item=0
+      radio=None
+      for item in itemlist:
+         number_item=number_item + 1
+         if not item :
+            menu.add_separator()
+         else:
+            label,method=item
+            if type(method) == types.TupleType:
+               # On a un tuple => on cree une cascade
+               menu_cascade=Tkinter.Menu(menu)
+               menu.add_cascade(label=label,menu=menu_cascade)
+               self.cree_menu(menu_cascade,method,appli_composant)
+            elif method[0] == '&':
+               # On a une chaine avec & en tete => on cree un radiobouton
+               command=getattr(appli_composant,method[1:])
+               menu.add_radiobutton(label=label,command=command)
+               if radio == None:radio=number_item
+            else:
+               command=getattr(appli_composant,method)
+               menu.add_command(label=label,command=command)
+      # Si au moins un radiobouton existe on invoke le premier
+      if radio:menu.invoke(radio)
+
   def fill_menus(self,appli_composant,defs):
       menudict=self.menubar.menudict
       for mname,itemlist in defs:
           menu=menudict.get(mname)
           if not menu:continue
-          for item in itemlist:
-             if not item :
-                menu.add_separator()
-             else:
-                label,method=item
-                command=getattr(appli_composant,method)
-                menu.add_command(label=label,command=command)
-                
-      
+          self.cree_menu(menu,itemlist,appli_composant)
+
+  def update_jdc_courant(self):
+      self.bureau.update_jdc_courant()
+
+  def affiche_alerte(self,titre,message):
+      f=Fenetre(self, titre="Compte-rendu d'erreur", texte = titre + "\n\n" + message)
+      f.wait()
+
+