From: eficas <> Date: Mon, 7 Nov 2005 16:50:15 +0000 (+0000) Subject: PN : pour les complexes, le retour arrière sur les listes et l historique des fichiers X-Git-Tag: CC_param_poursuite~66 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=7d176a844bc047582b6879ac55f11878cc3604f8;p=modules%2Feficas.git PN : pour les complexes, le retour arrière sur les listes et l historique des fichiers --- diff --git a/Editeur/appli.py b/Editeur/appli.py index 30d696d9..d60bf829 100644 --- a/Editeur/appli.py +++ b/Editeur/appli.py @@ -43,6 +43,7 @@ import properties from widgets import Fenetre from Misc import MakeNomComplet import session +import listeFichiers VERSION="EFICAS v1.9" @@ -77,6 +78,7 @@ class APPLI: self.cree_composants_graphiques() # Creation des autres composants graphiques dont le bureau (parametrable par prefs.py) self.load_appli_composants() + self.listeFichiers=listeFichiers.listeFichiers(self) # PN : ajout d un attribut pour indiquer si # l appli a ete lance depuis Salome diff --git a/Editeur/basestyle.py b/Editeur/basestyle.py index 4330be36..f260dd47 100644 --- a/Editeur/basestyle.py +++ b/Editeur/basestyle.py @@ -1,26 +1,26 @@ class STYLE: - background='gray' + background='gray90' foreground='black' entry_background='white' list_background='white' list_select_background='#00008b' - list_select_foreground='white' + list_select_foreground='grey' tooltip_background="yellow" - standard = ("Times",10) - standard_italique = ("Times",10,'italic') - standard_gras = ("Times",10,'bold') - standard_gras_souligne = ("Times",10,'bold','underline') + standard = ("Helvetica",12) + standard_italique = ("Helvetica",12,'italic') + standard_gras = ("Helvetica",12,'bold') + standard_gras_souligne = ("Helvetica",12,'bold','underline') - canvas = ('times',8) - canvas_italique = ('times',8,'italic') - canvas_gras = ("Times",8,'bold') - canvas_gras_italique = ("Times",10,'bold','italic') + canvas = ('Helvetica',10) + canvas_italique = ('Helvetica',10,'italic') + canvas_gras = ("Helvetica",10,'bold') + canvas_gras_italique = ("Helvetica",12,'bold','italic') - standard12 = ("Times",12) - standard12_gras = ("Times",12,'bold') - standard12_gras_italique = ( "times",12,'bold','italic') + standard12 = ("Helvetica",14) + standard12_gras = ("Helvetica",14,'bold') + standard12_gras_italique = ( "Helvetica",14,'bold','italic') - standardcourier10 = ("Courier",10) + standardcourier10 = ("Courier",14) style=STYLE() diff --git a/Editeur/bureau.py b/Editeur/bureau.py index 0480fb6f..73bdbd23 100644 --- a/Editeur/bureau.py +++ b/Editeur/bureau.py @@ -307,7 +307,7 @@ class BUREAU: Demande à l'utilisateur quel JDC existant il veut ouvrir """ if self.code == 'ASTER': - filetypes = ( ("format "+self.appli.format_fichier.get(), ".comm"),("Tous",'*')) + filetypes = ( ("format "+self.appli.format_fichier.get(), ".com*"),("Tous",'*')) elif self.code == 'HOMARD' : filetypes = ( ("format "+self.appli.format_fichier.get(), ".py"),("Tous",'*')) else: @@ -341,6 +341,7 @@ 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) else: # Il n'existe pas c'est une erreur self.appli.affiche_infos("Type de fichier non reconnu") @@ -438,14 +439,14 @@ class BUREAU: from panelsSalome import SALOME_UNIQUE_BASE_Panel if len(SALOME_UNIQUE_BASE_Panel.dict_fichier_unite) > 0 : self.appli.salome.creeConfigTxt(self.appli.CONFIGURATION.initialdir,SALOME_UNIQUE_BASE_Panel.dict_fichier_unite) - try : - #if ( 1 == 1 ) : + #try : + if ( 1 == 1 ) : import eficasCL MyCLinit=eficasCL.CLinit() MyCLinit.traiteCL() MyCLinit.clean() - except : - #else : + #except : + else : pass #PN Fin Ajout --> Salome # le JDC a déjà un nom : on sauvegarde directement sans demander diff --git a/Editeur/composimp.py b/Editeur/composimp.py index d5fc8d8a..b5e71374 100644 --- a/Editeur/composimp.py +++ b/Editeur/composimp.py @@ -79,8 +79,10 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): self.panel = PLUSIEURS_ASSD_Panel else: # on attend une liste de valeurs de types debase (entiers, réels,...) - from plusieursbasepanel import PLUSIEURS_BASE_OR_UNELISTE_Panel - self.panel = PLUSIEURS_BASE_OR_UNELISTE_Panel + #from plusieursbasepanel import PLUSIEURS_BASE_OR_UNELISTE_Panel + #self.panel = PLUSIEURS_BASE_OR_UNELISTE_Panel + from plusieursbasepanel import PLUSIEURS_BASE_Panel + self.panel = PLUSIEURS_BASE_Panel else: # on n'attend qu'une seule valeur mais de quel type ? if self.wait_co(): diff --git a/Editeur/icons/New24.gif b/Editeur/icons/New24.gif index 1cc488d4..a3ba6a56 100755 Binary files a/Editeur/icons/New24.gif and b/Editeur/icons/New24.gif differ diff --git a/Editeur/icons/Open24.gif b/Editeur/icons/Open24.gif index 6d93b758..fd875058 100755 Binary files a/Editeur/icons/Open24.gif and b/Editeur/icons/Open24.gif differ diff --git a/Editeur/icons/Save24.gif b/Editeur/icons/Save24.gif index e1539ac4..e45db0a2 100755 Binary files a/Editeur/icons/Save24.gif and b/Editeur/icons/Save24.gif differ diff --git a/Editeur/listeFichiers.py b/Editeur/listeFichiers.py new file mode 100644 index 00000000..e5c01cb6 --- /dev/null +++ b/Editeur/listeFichiers.py @@ -0,0 +1,81 @@ +import string + +class listeFichiers : + + def __init__(self,appli): + self.appli=appli + self.premiere=1 + self.nbfich=0 + self.rep=self.appli.CONFIGURATION.rep_user + self.menuFichier=self.appli.menubar.menudict['Fichier'] + self.monFichier=self.rep+"/listefichiers" + self.liste_Fichiers=[] + self.init_Fichier() + self.traite_liste() + + def init_Fichier(self): + index=0 + try : + f=open(self.monFichier) + while ( index < 5) : + ligne=f.readline() + if ligne != "" : + l=(ligne.split("\n"))[0] + self.liste_Fichiers.append(l) + index=index+1 + except : + pass + try : + f.close() + except : + pass + + def sauve_Fichier(self): + try : + if len(self.liste_Fichiers) == 0 : + return + f=open(self.monFichier,'w') + index=0 + while ( index < len(self.liste_Fichiers)): + ligne=self.liste_Fichiers[index]+"\n" + f.write(ligne) + index=index+1 + except : + pass + try : + f.close() + except : + pass + + def traite_liste(self): + index=0 + for index in range(self.nbfich): + self.menuFichier.delete(9) + self.nbfich = 0 + index = 0 + while( index < len(self.liste_Fichiers)) : + self.ajout_item(index) + index=index+1 + + def ajout_item(self,index): + if self.premiere and (len(self.liste_Fichiers)!=0): + self.premiere=0 + self.menuFichier.add_separator() + label=self.liste_Fichiers[index] + self.menuFichier.insert_command(9,label=label,command= lambda self=self, l=label:self.coucou (l)); + self.nbfich=self.nbfich+1 + + def coucou(self,label): + self.appli.bureau.openJDC(file=label) + + def aOuvert(self,file): + if file not in self.liste_Fichiers : + if (len(self.liste_Fichiers) > 4) : + f=self.liste_Fichiers[0] + self.liste_Fichiers.remove(f) + self.liste_Fichiers.insert(len(self.liste_Fichiers),file) + else: + self.liste_Fichiers.remove(file) + self.liste_Fichiers.insert(len(self.liste_Fichiers),file) + self.traite_liste() + self.sauve_Fichier() diff --git a/Editeur/panelsSalome.py b/Editeur/panelsSalome.py index 8753d112..cbe30ffc 100644 --- a/Editeur/panelsSalome.py +++ b/Editeur/panelsSalome.py @@ -10,6 +10,7 @@ from shellpanel import SHELLPanel from plusieursintopanel import PLUSIEURS_INTO_Panel from plusieursassdpanel import PLUSIEURS_ASSD_Panel from plusieursbasepanel import PLUSIEURS_BASE_Panel +from plusieursbasepanel import PLUSIEURS_BASE_OR_UNELISTE_Panel from uniquesdcopanel import UNIQUE_SDCO_Panel from uniqueassdpanel import UNIQUE_ASSD_Panel from uniqueintopanel import UNIQUE_INTO_Panel @@ -89,9 +90,12 @@ class SALOME_UNIQUE_ASSD_Panel_Reel (UNIQUE_ASSD_Panel_Reel): # # ------------------------------------------------------------------------------# -class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel): +class SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_OR_UNELISTE_Panel): + "" + +class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel): def convertit_group_no_from_salome(self,liste_in): newr=[] #try: @@ -139,8 +143,8 @@ class SALOME_PLUSIEURS_BASE_Panel(PLUSIEURS_BASE_Panel): return newr def convertit_entrees_en_valeurs(self,entrychaine): - if SALOME_PLUSIEURS_BASE_Panel.__dict__.has_key(self.clef_fonction): - valeur=apply(SALOME_PLUSIEURS_BASE_Panel.__dict__[self.clef_fonction],(self,entrychaine)) + if SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel.__dict__.has_key(self.clef_fonction): + valeur=apply(SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel.__dict__[self.clef_fonction],(self,entrychaine)) else : 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")) : @@ -568,6 +572,7 @@ dict_classes_salome = { SHELLPanel : SALOME_SHELLPanel, PLUSIEURS_INTO_Panel : SALOME_PLUSIEURS_INTO_Panel, PLUSIEURS_ASSD_Panel : SALOME_PLUSIEURS_ASSD_Panel, PLUSIEURS_BASE_Panel : SALOME_PLUSIEURS_BASE_Panel, + PLUSIEURS_BASE_OR_UNELISTE_Panel : SALOME_PLUSIEURS_BASE_OR_UNELISTE_Panel, UNIQUE_INTO_Panel : SALOME_UNIQUE_INTO_Panel, UNIQUE_SDCO_Panel : SALOME_UNIQUE_SDCO_Panel, UNIQUE_ASSD_Panel : SALOME_UNIQUE_ASSD_Panel, diff --git a/Editeur/plusieursbasepanel.py b/Editeur/plusieursbasepanel.py index 4133c67c..f60dec7f 100644 --- a/Editeur/plusieursbasepanel.py +++ b/Editeur/plusieursbasepanel.py @@ -59,94 +59,97 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): Crée la page de saisie d'une liste de valeurs à priori quelconques, cad qui ne sont pas à choisir dans une liste prédéfinie """ - print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" - print " " - print "A priori on ne doit plus passer dans cette methode " - print " " - print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" + #print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" + #print " " + #print "A priori on ne doit plus passer dans cette methode " + #print " " + #print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" # On récupère la bulle d'aide du panneau, l'objet, l'aide,min et max (cardinalité de la liste), # et la liste des valeurs déjà affectées à l'objet courant - #bulle_aide=self.get_bulle_aide() - #objet_mc = self.node.item.get_definition() - #aide = self.get_aide() - #aide = justify_text(texte=aide) - #min,max = self.node.item.GetMinMax() - #l_valeurs = self.node.item.GetListeValeurs() + bulle_aide=self.get_bulle_aide() + objet_mc = self.node.item.get_definition() + aide = self.get_aide() + aide = justify_text(texte=aide) + min,max = self.node.item.GetMinMax() + l_valeurs = self.node.item.GetListeValeurs() # création des frames globales - #self.frame1 = Frame(page,relief='groove',bd=2) - #self.frame2 = Frame(page) - #self.frame1.place(relx=0.,rely=0.,relwidth=1.,relheight=0.85) - #self.frame2.place(relx=0.,rely=0.85,relwidth=1,relheight=0.15) - #self.frame_right = Frame(self.frame1) - #self.frame_right.place(relx=0.35,rely=0.,relwidth=0.65,relheight=1.) + self.frame1 = Frame(page,relief='groove',bd=2) + self.frame2 = Frame(page) + self.frame1.place(relx=0.,rely=0.,relwidth=1.,relheight=0.85) + self.frame2.place(relx=0.,rely=0.85,relwidth=1,relheight=0.15) + self.frame_right = Frame(self.frame1) + self.frame_right.place(relx=0.35,rely=0.,relwidth=0.65,relheight=1.) # création des frames internes - #self.frame_valeurs = Frame(self.frame1) - #self.frame_valeurs.place(relx=0.02,rely=0.05,relwidth=0.35,relheight=0.95) - #self.frame_boutons_fleches = Frame(self.frame_right) - #self.frame_boutons_fleches.place(relx=0.,rely=0.2,relwidth=0.2,relheight=0.5) - #self.frame_choix = Frame(self.frame_right) - #self.frame_choix.place(relx=0.2,rely=0.2,relwidth=0.7,relheight=0.8) - #self.frame_aide = Frame(self.frame_right) - #self.frame_aide.place(relx=0.1,rely=0.8,relwidth=0.8,relheight=0.2) - #self.frame_boutons = Frame(self.frame2) + self.frame_valeurs = Frame(self.frame1) + self.frame_valeurs.place(relx=0.02,rely=0.05,relwidth=0.35,relheight=0.95) + self.frame_boutons_fleches = Frame(self.frame_right) + self.frame_boutons_fleches.place(relx=0.,rely=0.2,relwidth=0.2,relheight=0.5) + self.frame_choix = Frame(self.frame_right) + self.frame_choix.place(relx=0.2,rely=0.2,relwidth=0.7,relheight=0.8) + self.frame_aide = Frame(self.frame_right) + self.frame_aide.place(relx=0.1,rely=0.8,relwidth=0.8,relheight=0.2) + self.frame_boutons = Frame(self.frame2) #self.frame_boutons.place(relx=0.35,rely=0.,relwidth=0.3,relheight=1.) - #for fram in (self.frame1,self.frame2,self.frame_right,self.frame_valeurs, - # self.frame_boutons_fleches,self.frame_choix,self.frame_aide,self.frame_boutons): - # fram.bind("",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) - # fram.bind("",self.parent.appli.efface_aide) + self.frame_boutons.place(relx=0.2,rely=0.,relwidth=1,relheight=1.) + for fram in (self.frame1,self.frame2,self.frame_right,self.frame_valeurs, + self.frame_boutons_fleches,self.frame_choix,self.frame_aide,self.frame_boutons): + fram.bind("",lambda e,s=self,a=bulle_aide : s.parent.appli.affiche_aide(e,a)) + fram.bind("",self.parent.appli.efface_aide) # création des objets dans les frames - #liste_commandes_valeurs = (("",self.selectValeur), - # ("",self.deselectValeur), - # ("",self.sup_valeur_sans_into)) - #self.Liste_valeurs=ListeChoix(self,self.frame_valeurs,l_valeurs,liste_commandes = liste_commandes_valeurs, - # titre="Valeur(s) actuelle(s)") + liste_commandes_valeurs = (("",self.selectValeur), + ("",self.deselectValeur), + ("",self.sup_valeur_sans_into)) + self.Liste_valeurs=ListeChoix(self,self.frame_valeurs,l_valeurs,liste_commandes = liste_commandes_valeurs, + titre="Valeur(s) actuelle(s)") # Création de l'entry ou de la liste des SD # PN : pour ajouter les validators - #self.label = Label(self.frame_choix,text="Valeur :") - #self.make_entry(frame = self.frame_choix,command = self.add_valeur_plusieurs_base) - #self.label.place(relx=0.05,rely=0.2) + self.label = Label(self.frame_choix,text="Valeur :") + self.make_entry(frame = self.frame_choix,command = self.add_valeur_plusieurs_base) + self.label.place(relx=0.05,rely=0.2) # Création d'un bouton "Importer ..." et d'un bouton "Paramatres" sur le panel. - #bouton_valeurs_fichier = Button(self.frame_choix, - # text="Importer", - # command=self.select_in_file) - #bouton_valeurs_fichier.place(relx=0.28,rely=0.4,relwidth=0.6) - #bouton_parametres = Button(self.frame_choix, text="Parametres", command=self.affiche_parametre) - #bouton_parametres.place(relx=0.28,rely=0.6,relwidth=0.6) - #self.ajout_valeurs = None + bouton_valeurs_fichier = Button(self.frame_choix, + text="Importer", + command=self.select_in_file) + bouton_valeurs_fichier.place(relx=0.28,rely=0.4,relwidth=0.6) + bouton_parametres = Button(self.frame_choix, text="Parametres", command=self.affiche_parametre) + bouton_parametres.place(relx=0.28,rely=0.6,relwidth=0.6) + self.ajout_valeurs = None # boutons Ajouter et Supprimer - #bouton_add = Button(self.frame_boutons_fleches, - # image = images.get_image('arrow_left'), - # command = self.add_valeur_plusieurs_base) - #bouton_sup = Button(self.frame_boutons_fleches, - # image = images.get_image('arrow_right'), - # command = self.sup_valeur_sans_into) - #bouton_add.place(relx=0.3,rely=0.35) - #bouton_sup.place(relx=0.3,rely=0.65) - ## affichage de l'aide - #self.frame_aide.update() - #self.aide = Label(self.frame_aide, - # text = aide, - # justify='center', - # anchor='center', - # wraplength=int(self.frame_aide.winfo_width()*0.8)) - #self.aide.place(relx=0.5,rely=0.5,anchor='center',relwidth=1) - #self.Liste_valeurs.affiche_liste() - #if len(l_valeurs) > 0 : - # liste_marque=l_valeurs[-1] - # self.Liste_valeurs.surligne(liste_marque) + bouton_add = Button(self.frame_boutons_fleches, + image = images.get_image('arrow_left'), + command = self.add_valeur_plusieurs_base) + bouton_sup = Button(self.frame_boutons_fleches, + image = images.get_image('arrow_right'), + command = self.sup_valeur_sans_into) + bouton_add.place(relx=0.3,rely=0.35) + bouton_sup.place(relx=0.3,rely=0.65) + # affichage de l'aide + self.frame_aide.update() + self.aide = Label(self.frame_aide, + text = aide, + justify='center', + anchor='center', + wraplength=int(self.frame_aide.winfo_width()*0.8)) + self.aide.place(relx=0.5,rely=0.5,anchor='center',relwidth=1) + self.Liste_valeurs.affiche_liste() + if len(l_valeurs) > 0 : + liste_marque=l_valeurs[-1] + self.Liste_valeurs.surligne(liste_marque) # boutons Accepter et Annuler - #bouton_accepter = Button(self.frame_boutons, - # text='Valider', - # command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M)) - #bouton_annuler = Button(self.frame_boutons, - # text = 'Annuler', - # command = self.annule_modifs_valeur) + bouton_accepter = Button(self.frame_boutons, + text='Valider', + command = lambda s=self,m=min,M=max : s.accepte_modifs_valeur(m,M)) + bouton_annuler = Button(self.frame_boutons, + text = 'Annuler', + command = self.annule_modifs_valeur) + bouton_accepter.place(relx=0.2, rely=0.2,relwidth=0.25) + bouton_annuler.place(relx=0.5, rely=0.2,relwidth=0.25) #for but in (bouton_accepter,bouton_annuler): # but.pack(side='left',padx=4) @@ -269,15 +272,22 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): return commentaire def make_entry(self,frame,command,x=0.28,y=0.2): + self.entry = Entry(frame,relief='sunken') + self.entry.place(relx=0.28,rely=y,relwidth=0.6) + self.entry.bind("",lambda e,c=command:c()) + self.entry.bind("",lambda e,c=command:c()) + self.entry.focus() + + #def make_entry(self,frame,command,x=0.28,y=0.2): """ Crée l'entry de saisie de la valeur souhaitée : distingue le cas d'un complexe attendu, d'une autre valeur quelconque """ - print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" - print " " - print "A priori on ne doit plus passer dans cette methode " - print " " - print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" + #print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" + #print " " + #print "A priori on ne doit plus passer dans cette methode " + #print " " + #print "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #if self.node.item.wait_complex(): # self.typ_cplx=StringVar() # self.typ_cplx.set('RI') @@ -472,7 +482,7 @@ class PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_Panel,UNIQUE_ASSD_Panel): bouton_annuler = Button(self.frame2, text = 'Annuler', command = self.annule_modifs_valeur) for but in (bouton_accepter,bouton_annuler): - but.pack(side='left',padx=4) + but.pack(side='left',padx=5) # création des objets dans les frames liste_commandes_valeurs = (("",self.selectValeur), @@ -531,7 +541,7 @@ class PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_Panel,UNIQUE_ASSD_Panel): 'I' : type(0), 'C' : type(a)} - # On enelve seulement ceux qu'on peut + # On enleve seulement ceux qu'on peut # Sur certaines listes, il est possible qu'on ne # sache pas déterminer le type listefinale=[] @@ -555,9 +565,3 @@ class PLUSIEURS_BASE_OR_UNELISTE_Panel(PLUSIEURS_BASE_Panel,UNIQUE_ASSD_Panel): listefinale.append(liste) return listefinale - def make_entry(self,frame,command,x=0.28,y=0.2): - self.entry = Entry(frame,relief='sunken') - self.entry.place(relx=0.28,rely=y,relwidth=0.6) - self.entry.bind("",lambda e,c=command:c()) - self.entry.bind("",lambda e,c=command:c()) - self.entry.focus() diff --git a/Editeur/uniquecomppanel.py b/Editeur/uniquecomppanel.py index 64f6d776..ec6814c4 100644 --- a/Editeur/uniquecomppanel.py +++ b/Editeur/uniquecomppanel.py @@ -99,7 +99,7 @@ class UNIQUE_COMP_Panel(UNIQUE_Panel): self.entry2.delete(0,END) self.entry3.delete(0,END) if type(valeur) not in (types.ListType,types.TupleType) : - self.display_complexe + self.display_complexe() else: typ_cplx,x1,x2=valeur self.typ_cplx.set(typ_cplx)