]> SALOME platform Git repositories - tools/eficas.git/blobdiff - Editeur/cataediteur.py
Salome HOME
PN
[tools/eficas.git] / Editeur / cataediteur.py
index 5cdbe21154c826d8f01b25aae87e11ff28050f72..cac0254d7ea45e919c06e911db5ee43eb13e4eb8 100644 (file)
@@ -1,9 +1,22 @@
-#@ MODIF cataediteur Editeur  DATE 02/07/2001   AUTEUR D6BHHJP J.P.LEFEBVRE 
+# -*- coding: utf-8 -*-
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
-# COPYRIGHT (C) 1991 - 2001  EDF R&D                  WWW.CODE-ASTER.ORG
-#              SEE THE FILE "LICENSE.TERMS" FOR INFORMATION ON USAGE AND
-#              REDISTRIBUTION OF THIS FILE.
+# COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+#    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+#
+#
 # ======================================================================
 # Modules Python
 import os
@@ -11,7 +24,7 @@ import sys
 import types
 import string
 import Pmw
-from tkMessageBox import showinfo,askyesno,showerror,askretrycancel
+from widgets import showinfo
 from Tkinter import *
 
 # Modules Eficas
@@ -26,8 +39,8 @@ from Accas import ASSD,GEOM
 import definition_cata
 
 #
-__version__="$Name: V1_1p1 $"
-__Id__="$Id: cataediteur.py,v 1.1.1.1 2001/12/04 15:38:22 eficas Exp $"
+__version__="$Name:  $"
+__Id__="$Id: cataediteur.py,v 1.8 2005/11/29 11:14:14 eficas Exp $"
 #
 
 Fonte_Niveau = fontes.canvas_gras_italique
@@ -98,13 +111,10 @@ class Panel(Frame) :
       """ Permet d'ouvrir le fichier doc U de la commande au format pdf avec Acrobat Reader
         - Ne fonctionne pas sous UNIX (chemin d'accès Acrobat Reader)
         - indication du chemin d'accès aux fichiers pdf à revoir : trop statique"""
-      #cle_doc = self.node.item.get_docu()
       cle_doc = self.parent.appli.get_docu(self.node)
       if cle_doc == None : return
       cle_doc = string.replace(cle_doc,'.','')
-      #cle_doc = string.upper(cle_doc)
       commande = self.parent.appli.CONFIGURATION.exec_acrobat
-      #nom_fichier = cle_doc+".pdf"
       nom_fichier = cle_doc+".doc"
       rep_fichier = cle_doc[0:2]
       fichier = os.path.abspath(os.path.join(self.parent.appli.CONFIGURATION.path_doc,rep_fichier,nom_fichier))
@@ -134,7 +144,7 @@ class Panel(Frame) :
       texte_infos = ''
       for e in cmd.entites.keys() :
           if e == name :
-              texte_infos=cmd.entites[e].fr
+              texte_infos=getattr(cmd.entites[e],'fr')
               break
       if texte_infos == '' : texte_infos="Pas d'infos disponibles"
       self.parent.appli.affiche_infos(texte_infos)
@@ -190,6 +200,7 @@ class OngletPanel(Panel) :
       self._any = Entry(page,relief='sunken')
       self._any.place(relx=0.35,rely=0.4,relwidth=0.5)
       self._any.bind("<Return>",lambda e,s=self:s.execConcept())
+      self._any.bind("<KP_Enter>",lambda e,s=self:s.execConcept())
       self._any.insert(0,self.node.item.GetText())
       type_sd = self.node.item.object.get_type_sd_prod()
       if type_sd :
@@ -334,7 +345,7 @@ class OPERPanel(OngletPanel):
     nb.tab('Mocles').focus_set()
     nb.setnaturalsize()
     self.affiche()
-   
+
 class SIMPPanel(OngletPanel):
   def init(self):
     nb = Pmw.NoteBook(self,raisecommand=self.raisecmd)
@@ -366,6 +377,7 @@ class SIMPPanel(OngletPanel):
     self.e_nom = Entry(fr1)
     self.e_nom.place(relx=0.35,rely=0.3,relwidth=0.3,anchor='w')
     self.e_nom.bind("<Return>",lambda e,s=self : s.set_valeur_attribut('nom',None))
+    self.e_nom.bind("<KP_Enter>",lambda e,s=self : s.set_valeur_attribut('nom',None))
     self.e_nom.insert(0,self.get_valeur_attribut('nom'))
     # Statut
     Label(fr1,text='Statut : ').place(relx=0.05,rely=0.7,anchor='w')
@@ -406,6 +418,7 @@ class SIMPPanel(OngletPanel):
       if self.node.item.object.get_valeur_attribut('defaut') :
         self.e_defaut.insert(0,self.node.item.object.get_valeur_attribut('defaut'))
       self.e_defaut.bind("<Return>",lambda e,s=self : s.set_valeur_attribut('defaut',None))
+      self.e_defaut.bind("<KP_Enter>",lambda e,s=self : s.set_valeur_attribut('defaut',None))
     else :
       # dans le cas discret, la valeur par défaut doit être dans l'ensemble des valeurs possibles (into)
       liste = self.node.item.object.get_valeur_attribut('into')
@@ -521,6 +534,7 @@ class SIMPPanel(OngletPanel):
       self.e_val_min = Entry(fr3)
       self.e_val_min.place(relx=0.35,rely=0.5,relwidth=0.5,anchor='w')
       self.e_val_min.bind("<Return>",lambda e,s=self : s.set_valeur_attribut('val_min',None))
+      self.e_val_min.bind("<KP_Enter>",lambda e,s=self : s.set_valeur_attribut('val_min',None))
       self.set_valeur_attribut('val_min',self.get_valeur_attribut('val_min'))
       # val_max
       self.l_val_max = Label(fr3,text='Valeur maximale : ')
@@ -528,6 +542,7 @@ class SIMPPanel(OngletPanel):
       self.e_val_max = Entry(fr3)
       self.e_val_max.place(relx=0.35,rely=0.8,relwidth=0.5,anchor='w')
       self.e_val_max.bind("<Return>",lambda e,s=self : s.set_valeur_attribut('val_max',None))
+      self.e_val_max.bind("<KP_Enter>",lambda e,s=self : s.set_valeur_attribut('val_max',None))
       self.set_valeur_attribut('val_max',self.get_valeur_attribut('val_max'))
 
 # ------------------------------------------------------------------
@@ -653,7 +668,7 @@ class OPERItem(OBJECTItem):
     for k in l_cles_fils :
       typ = TYPE_COMPLET(dico_fils[k])
       if type(self.objet_cata_ordonne) == types.InstanceType :
-        objet_cata = self.objet_cata_ordonne.dico[k]
+        objet_cata = self.objet_cata_ordonne.entites[k]
       else :
         objet_cata = self.objet_cata_ordonne.get(k,None)
       item = make_objecttreeitem(self.appli,typ + " : ",dico_fils[k],objet_cata_ordonne = objet_cata)
@@ -665,7 +680,7 @@ class OPERItem(OBJECTItem):
     return self.object.get_valeur_attribut('nom')
 
   def get_liste_mc_ordonnee(self):
-    return self.objet_cata_ordonne.liste
+    return self.objet_cata_ordonne.ordre_mc
 
   def GetIconName(self):
     if self.object.isvalid():
@@ -675,7 +690,7 @@ class OPERItem(OBJECTItem):
 
   def additem(self,name,pos):
       if isinstance(name,TreeItem) :
-          cmd=self.object.addentite(name.object,pos)
+          cmd=self.object.addentite(name.getObject(),pos)
       else :
           cmd = self.object.addentite(name,pos)
       typ = TYPE_COMPLET(cmd)
@@ -754,7 +769,7 @@ class NIVEAUItem(OPERItem):
     for k in l_cles_fils :
       typ = TYPE_COMPLET(dico_fils[k])
       if type(self.objet_cata_ordonne) == types.InstanceType :
-        objet_cata = self.objet_cata_ordonne.dico[k]
+        objet_cata = self.objet_cata_ordonne.entites[k]
       else :
         objet_cata = self.objet_cata_ordonne.get(k,None)
       item = make_objecttreeitem(self.appli,typ + " : ",dico_fils[k],objet_cata_ordonne = objet_cata)
@@ -777,7 +792,7 @@ class NIVEAUItem(OPERItem):
 
   def additem(self,name,pos):
       if isinstance(name,TreeItem) :
-          cmd=self.object.addentite(name.object,pos)
+          cmd=self.object.addentite(name.getObject(),pos)
       else :
           cmd = self.object.addentite(name,pos)
       typ = TYPE_COMPLET(obj)
@@ -786,16 +801,19 @@ class NIVEAUItem(OPERItem):
 
   def suppitem(self,item) :
     # item = item de l'ETAPE à supprimer du JDC
-    # item.object = ETAPE ou _C
+    # item.getObject() = ETAPE ou _C
     # self.object = JDC
-    self.object.suppentite(item.object)
-    if isinstance(item.object,_C):
-        message = "Commentaire supprimé"
-        self.appli.affiche_infos(message)
-    else :
-        message = "Commande " + item.object.nom + " supprimée"
-        self.appli.affiche_infos(message)
-    return 1
+    itemobject=item.getObject()
+    if self.object.suppentite(itemobject):
+       if isinstance(itemobject,_C):
+          message = "Commentaire supprimé"
+       else :
+          message = "Commande " + itemobject.nom + " supprimée"
+       self.appli.affiche_infos(message)
+       return 1
+    else:
+       self.appli.affiche_infos("Pb interne : impossible de supprimer cet objet")
+       return 0
 
   def GetText(self):
       return ''
@@ -836,8 +854,8 @@ class CataEditeur:
                                 hull_width = 800,
                                 hull_height = 500,
                                 orient = 'horizontal')
-    self.pane.add('canvas',min = 0.4, max = 0.6, size = 0.5)
-    self.pane.add('panel',min = 0.4, max = 0.6, size = 0.5)
+    self.pane.add('canvas',min = 0.4, max = 0.6, size = 0.45)
+    self.pane.add('panel',min = 0.4, max = 0.6, size = 0.55)
     self.pane.pack(expand =1, fill = 'both')
     self.scrolledcanvas = Pmw.ScrolledCanvas(self.pane.pane('canvas'),
                                              hull_width=1.,
@@ -888,7 +906,7 @@ class CataEditeur:
 
   def shell(self,event=None):
       import Interp
-      d={'j':self.tree.item.object}
+      d={'j':self.tree.item.getObject()}
       Interp.InterpWindow(d,parent=self.parent)
       
   def visuCR(self,mode='Cata'):