From 07810a3d5cbe12a2ce032ee042e587e5ff89d8c3 Mon Sep 17 00:00:00 2001 From: Pascale Noyret Date: Mon, 12 Jan 2009 14:44:28 +0000 Subject: [PATCH] pour ecriture scientifique --- InterfaceQT/monFonctionPanel.py | 31 +++++++++++++++++------ InterfaceQT/monPlusieursBasePanel.py | 9 +++++-- InterfaceQT/monSelectVal.py | 16 +++++++----- InterfaceQT/politiquesValidation.py | 37 +++++++++++++++++++++++----- InterfaceQT/qtSaisie.py | 13 ++++++---- 5 files changed, 80 insertions(+), 26 deletions(-) diff --git a/InterfaceQT/monFonctionPanel.py b/InterfaceQT/monFonctionPanel.py index b69d3819..2e67b106 100644 --- a/InterfaceQT/monFonctionPanel.py +++ b/InterfaceQT/monFonctionPanel.py @@ -52,8 +52,7 @@ class MonFonctionPanel(MonPlusieursBasePanel): l_valeurs=[] if (len(liste)% self.nbValeurs != 0): message="La cardinalité n'est pas correcte, la dernière valeur est ignorée" - #self.Commentaire.setText(QString(commentaire)) - self.editor.affiche_infos(commentaire) + self.editor.affiche_infos(message) for i in range(len(liste)/ self.nbValeurs) : if (self.nbValeurs==2): t=(liste[i*self.nbValeurs], liste[i*self.nbValeurs+1]) @@ -66,12 +65,23 @@ class MonFonctionPanel(MonPlusieursBasePanel): self.LBValeurs.clear() listeValeurs=self.node.item.GetListeValeurs() for valeur in self.DecoupeListeValeurs(listeValeurs): - self.LBValeurs.insertItem(str(valeur)) + if type(valeur) == types.TupleType: + TupleEnTexte="(" + for val in valeur : + TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", " + TupleEnTexte = TupleEnTexte[0:-2] +")" + self.LBValeurs.insertItem(TupleEnTexte) + else : + self.LBValeurs.insertItem(QString(str(valeur))) def Ajout1Valeur(self,liste=[]): # Pour être appele a partir du Panel Importer (donc plusieurs fois par AjouterNValeur) if liste == [] : - liste,validite=SaisieValeur.TraiteLEValeur(self) + liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self) + if validite : + for val in texteBrut.split(',') : + print val + self.politique.AjoutDsDictReel(val) else : validite=1 if validite == 0 : return @@ -90,12 +100,12 @@ class MonFonctionPanel(MonPlusieursBasePanel): index=self.LBValeurs.currentItem() +1 indexListe=index*self.nbValeurs if index == 0 : - index = -1 + index = len(self.listeValeursCourantes) indexListe=len(self.listeValeursCourantes) listeVal=[] for valeur in self.listeValeursCourantes : listeVal.append(valeur) - validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index,listeVal) + validite,comm,comm2,listeRetour=self.politique.AjoutValeurs(liste,index+1,listeVal) self.Commentaire.setText(comm2) if not validite : self.editor.affiche_infos(comm) @@ -104,7 +114,14 @@ class MonFonctionPanel(MonPlusieursBasePanel): l1=self.listeValeursCourantes[:indexListe] l3=self.listeValeursCourantes[indexListe:] for valeur in self.DecoupeListeValeurs(listeRetour): - self.LBValeurs.insertItem(QString(str(valeur)),index) + if type(valeur) == types.TupleType: + TupleEnTexte="(" + for val in valeur : + TupleEnTexte = TupleEnTexte + str(self.politique.GetValeurTexte(val)) +", " + TupleEnTexte = TupleEnTexte[0:-2] +")" + self.LBValeurs.insertItem(TupleEnTexte,index) + else : + self.LBValeurs.insertItem(QString(str(valeur)),index) index=index+1 self.listeValeursCourantes=l1+listeRetour+l3 diff --git a/InterfaceQT/monPlusieursBasePanel.py b/InterfaceQT/monPlusieursBasePanel.py index 50eeb339..023a1ffd 100644 --- a/InterfaceQT/monPlusieursBasePanel.py +++ b/InterfaceQT/monPlusieursBasePanel.py @@ -60,7 +60,7 @@ class MonPlusieursBasePanel(DPlusBase,QTPanel,SaisieValeur): def BuildLBValeurs(self): # redefinit en raison de l heritage par monFonctionPanel - SaisieValeur.BuildLBValeurs(self) + SaisieValeur.BuildLBValeurs(self,politique=self.politique) def BOkPourListePressed(self): if self.listeValeursCourantes == [] : @@ -91,9 +91,14 @@ class MonPlusieursBasePanel(DPlusBase,QTPanel,SaisieValeur): def Ajout1Valeur(self,valeur=None): - liste,validite=SaisieValeur.TraiteLEValeur(self,valeur) + print "je passe par la" + liste,validite,texteBrut=SaisieValeur.TraiteLEValeur(self,valeur) + print texteBrut if validite == 0 : return if liste ==[] : return + for val in texteBrut.split(',') : + print val + self.politique.AjoutDsDictReel(val) index=self.LBValeurs.currentItem() + 1 listeVal=[] diff --git a/InterfaceQT/monSelectVal.py b/InterfaceQT/monSelectVal.py index c3c64148..16b8c856 100644 --- a/InterfaceQT/monSelectVal.py +++ b/InterfaceQT/monSelectVal.py @@ -44,6 +44,7 @@ class MonSelectVal(DSelVal): self.initVal() def readVal(self): + if self.file == "" : return f = open(self.file, "rb") self.texte = f.read() f.close() @@ -62,6 +63,7 @@ class MonSelectVal(DSelVal): def BImportSelPressed(self): text=str(self.TBtext.selectedText()) self.textTraite=text + if self.textTraite == "" : return self.Traitement() def BImportToutPressed(self): @@ -75,10 +77,12 @@ class MonSelectVal(DSelVal): liste1=self.textTraite.split(self.separateur) liste=[] for val in liste1 : - val=str(val) - try : - val=eval(val,{}) - except : - pass - liste.append(val) + if val != '' and val != ' ' and val != self.separateur : + val=str(val) + try : + val2=eval(val,{}) + liste.append(val) + except : + pass self.FonctPanel.AjoutNValeur(liste) + print liste diff --git a/InterfaceQT/politiquesValidation.py b/InterfaceQT/politiquesValidation.py index 539f6113..1de0d4b3 100644 --- a/InterfaceQT/politiquesValidation.py +++ b/InterfaceQT/politiquesValidation.py @@ -59,7 +59,7 @@ class Validation : def SetValeurTexte(self,texteValeur) : try : if "R" in self.node.item.object.definition.type: - if texteValeur[0] != "'": + if str(texteValeur)[0] != "'": clef=eval(texteValeur) if str(clef) != str(texteValeur) : self.node.item.object.init_modif() @@ -72,6 +72,23 @@ class Validation : except: pass + def AjoutDsDictReel(self,texteValeur): + try : + #if 1 : + if "R" in self.node.item.object.definition.type: + if str(texteValeur)[0] != "'": + clef=eval(texteValeur) + if str(clef) != str(texteValeur) : + clefobj=self.node.item.object.GetNomConcept() + if not self.parent.dict_reels.has_key(clefobj): + self.parent.dict_reels[clefobj] = {} + self.parent.dict_reels[clefobj][clef]=texteValeur + self.parent.dict_reels[clefobj] + except: + #else: + #print "pb ds try de AjoutDsDictReel" + pass + def GetValeurTexte(self,valeur) : valeurTexte=valeur if "R" in self.node.item.object.definition.type: @@ -106,9 +123,9 @@ class PolitiqueUnique(Validation) : return validite, commentaire -#------------------------ -class PolitiquePlusieurs: -#------------------------ +#------------------------------------- +class PolitiquePlusieurs (Validation): +#------------------------------------- """ classe servant pour les entrees ne demandant qu un mot clef """ @@ -118,6 +135,7 @@ class PolitiquePlusieurs: def AjoutValeurs(self,listevaleur,index,listecourante): + print "debut politique pour ", listevaleur listeRetour=[] commentaire="Nouvelle valeur acceptée" commentaire2="" @@ -127,11 +145,10 @@ class PolitiquePlusieurs: if not( type(listevaleur) in (types.ListType,types.TupleType)) : listevaleur=tuple(listevaleur) for valeur in listevaleur : + valeurScientifique=valeur # On teste le type de la valeur valide=self.node.item.valide_item(valeur) if not valide : - #print self.__class__ - #if not testtype : try : valeur,valide=self.node.item.eval_valeur(valeur) valide,commentaire = self.node.item.object.verif_type(valeur) @@ -145,6 +162,7 @@ class PolitiquePlusieurs: # On valide la liste obtenue encorevalide=self.node.item.valide_liste_partielle(valeur,listecourante) + print "listecourante", listecourante if not encorevalide : commentaire2=self.node.item.info_erreur_liste() # On traite le cas ou la liste n est pas valide pour un pb de cardinalite @@ -153,8 +171,15 @@ class PolitiquePlusieurs: commentaire="La liste a déjà atteint le nombre maximum d'éléments,ajout refusé" return valide,commentaire,commentaire2,listeRetour if len(listecourante) + 1 > min : + commentaire="" return valide,commentaire,commentaire2,listeRetour # On ajoute la valeur testee a la liste courante et a la liste acceptee + print "dans politique" + print valeurScientifique + self.AjoutDsDictReel(valeurScientifique) + print valeur + print self.GetValeurTexte(valeur) + print self.parent.dict_reels listecourante.insert(index,valeur) index=index+1 listeRetour.append(valeur) diff --git a/InterfaceQT/qtSaisie.py b/InterfaceQT/qtSaisie.py index 03fee3ee..938ff077 100644 --- a/InterfaceQT/qtSaisie.py +++ b/InterfaceQT/qtSaisie.py @@ -45,11 +45,14 @@ class SaisieValeur: self.listBoxASSD.setCurrentItem(0) - def BuildLBValeurs(self): + def BuildLBValeurs(self,politique=None): self.LBValeurs.clear() listeValeurs=self.node.item.GetListeValeurs() for valeur in listeValeurs: - self.LBValeurs.insertItem(str(valeur)) + if politique : + self.LBValeurs.insertItem(str(self.politique.GetValeurTexte(valeur))) + else : + self.LBValeurs.insertItem(str(valeur)) if listeValeurs != None and listeValeurs != [] : self.LBValeurs.setCurrentItem(len(listeValeurs) - 1) @@ -116,7 +119,7 @@ class SaisieValeur: valeurBrute=str(self.LEValeur.text()) else : valeurBrute=valeurTraitee - if valeurBrute == str("") : return listeValeurs,1 + if valeurBrute == str("") : return listeValeurs,1,valeurBrute try : valeur=eval(valeurBrute,{}) except : @@ -134,7 +137,7 @@ class SaisieValeur: except : commentaire = "Veuillez entrer le complexe sous forme aster ou sous forme python" self.editor.affiche_infos(commentaire) - return listeValeurs,0 + return listeValeurs,0,valeurBrute else : # ce n'est pas un tuple à la mode aster @@ -150,7 +153,7 @@ class SaisieValeur: else: listeValeurs.append(valeur) - return listeValeurs,1 + return listeValeurs,1,valeurBrute class SaisieSDCO : -- 2.39.2