X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Extensions%2Fparametre.py;h=7ec6ce7067f068f9ff668212571a0c9699496fcb;hb=36ca867c4099d6a804374b8f6a2b897d9ea69a09;hp=8c9e8312c743a57e3db7141ef1ea8cf907907997;hpb=dbe648488708009d86ca09a606bd60b274fdd6f6;p=tools%2Feficas.git diff --git a/Extensions/parametre.py b/Extensions/parametre.py index 8c9e8312..7ec6ce70 100644 --- a/Extensions/parametre.py +++ b/Extensions/parametre.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -27,11 +28,14 @@ # import de modules Python import string,types +from math import * # import de modules Eficas from Noyau.N_CR import CR +from Noyau import N_OBJECT +from Ihm import I_OBJECT -class PARAMETRE : +class PARAMETRE(N_OBJECT.OBJECT,I_OBJECT.OBJECT) : """ Cette classe permet de créer des objets de type PARAMETRE cad des affectations directes dans le jeu de commandes (ex: a=10.) @@ -44,6 +48,7 @@ class PARAMETRE : def __init__(self,nom,valeur=None): # parent ne peut être qu'un objet de type JDC + self.dict_valeur=[] self.valeur = self.interprete_valeur(valeur) self.val=valeur self.nom = nom @@ -56,6 +61,124 @@ class PARAMETRE : self.state='undetermined' self.register() + def __getitem__(self,key): + param_item=ITEM_PARAMETRE(self,key) + return param_item + + def __neg__(self): + try: + return -1*self.valeur + except: + print "******* Probleme : pas de valeur négative" + return None + + def __add__(self,a): + try : + return self.valeur+a.valeur + except : + print "******* Probleme : a l addition" + return None + + def __radd__(self,a): + try : + return self.valeur+a.valeur + except : + print "******* Probleme : a l addition" + return None + + def __sub__(self,a): + try : + return self.valeur - a.valeur + except : + print "******* Probleme : a la soustraction" + return None + + def __rsub__(self,a): + try : + return a.valeur - self.valeur + except : + print "******* Probleme : a la soustraction" + return None + + def __mul__(self,a): + try : + return self.valeur*a.valeur + except : + print "******* Probleme : a la multiplication" + return None + + def __rmul__(self,a): + try : + return self.valeur*a.valeur + except : + print "******* Probleme : a la multiplication" + return None + + def __mul__(self,a): + try : + return self.valeur*a.valeur + except : + print "******* Probleme : a la multiplication" + return None + + def __rmul__(self,a): + try : + return self.valeur*a.valeur + except : + print "******* Probleme : a la multiplication" + return None + + def __add__(self,other): + try : + return self.valeur+other + except : + print "******* Probleme : a l addition" + return None + + def __radd__(self,other): + try : + return self.valeur+other + except : + print "******* Probleme : a l addition" + return None + + def __sub__(self,other): + try : + return self.valeur - other + except : + print "******* Probleme : a la soustraction" + return None + + def __rsub__(self,other): + try : + return other - self.valeur + except : + print "******* Probleme : a la soustraction" + return None + + def __mul__ (self,other): + retour=None + try : + retour = eval(self.valeur) * other + except : + try : + retour = self.valeur * other + except : + print "******* Probleme : a la multiplication" + return retour + + def __rmul__ (self,other): + retour=None + try : + retour = eval(self.valeur) * other + except : + try : + retour = self.valeur * other + except : + print "******* Probleme : a la multiplication" + return retour + + def interprete_valeur(self,val): """ Essaie d'interpréter val (chaîne de caractères)comme : @@ -84,6 +207,7 @@ class PARAMETRE : valeur = eval(val) except: pass + #PN je n ose pas modifier je rajoute if valeur != None : if type(valeur) == types.TupleType: l_new_val = [] @@ -100,13 +224,28 @@ class PARAMETRE : return val l_new_val.append(v) return tuple(l_new_val) - else: + # PN : commente le print + #else: # on a réussi à évaluer val en autre chose qu'un tuple ... - print "on a réussi à évaluer %s en autre chose qu'un tuple ..." %val - print 'on trouve : ',str(valeur),' de type : ',type(valeur) + #print "on a réussi à évaluer %s en autre chose qu'un tuple ..." %val + #print 'on trouve : ',str(valeur),' de type : ',type(valeur) # on retourne val comme une string car on n'a pas su l'interpréter + if valeur != None : + if type(valeur).__name__ == 'list': + self.dict_valeur=[] + for i in range(len(valeur)): + self.dict_valeur.append(valeur[i]) return val + def get_valeurs(self): + valeurretour=[] + if self.dict_valeur != []: + for val in self.dict_valeur: + valeurretour.append(val) + else: + valeurretour.append(self.valeur) + return valeurretour + def set_valeur(self,new_valeur): """ Remplace la valeur de self par new_valeur interprétée @@ -282,4 +421,24 @@ class PARAMETRE : +class ITEM_PARAMETRE : + def __init__(self,param_pere,item=None): + self.param_pere = param_pere + self.item = item + + def __repr__(self): + return self.param_pere.nom+'['+str(self.item)+']' + + + def isvalid(self): + isvalid = 1 + if self.item < 0: + isvalid = 0 + try: + longueur= len(self.param_pere.dict_valeur) - 1 + except: + longueur=0 + if self.item > longueur : + isvalid= 0 + return isvalid