for nom, val in args.items():
if val.label == 'SIMP':
mcs.add(nom)
- #XXX
#if val.max != 1 and val.type == 'TXM':
#print "#CMD", parent, nom
elif val.label == 'FACT':
for nom, val in args.items():
if val.label == 'BLOC':
mcbloc = val.checkDefinition(parent)
- #XXX
#print "#BLOC", parent, re.sub('\s+', ' ', val.condition)
#assert mcs.isdisjoint(mcbloc), "Commande %s : Mot(s)-clef(s) vu(s) plusieurs fois : %s" \
# % (parent, tuple(mcs.intersection(mcbloc)))
return mcs
#
+ def UQPossible(self):
+ return True
return self.definition.homo=='information'
-
def validVal(self,valeur):
"""
Verifie que la valeur passee en argument (valeur) est valide
#print ('demandeRedessine pour', self.nom, self, tout)
CONNECTOR.Emit(self,"redessine")
+ def isUQActivate(self):
+ # valide uniquement pour les MCSIMP
+ return True
class ErrorObj(OBJECT):pass
_temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0)
#print (_temp)
MonWidgetSimpTuple = getattr(_temp,nomDeLaClasse)
+ #print (MonWidgetSimpTuple)
except :
print ("Pas de Tuple de longueur : ", num)
# print ("Prevenir la maintenance ")
self.withXSD=False
self.afficheIhm=True
+ self.afficheUQ=False
+ #self.afficheUQ=True
self.setIconesGenerales()
self.setCommentaire()
self.setZoneInfo()
+ self.setUnite()
+ self.setUQ()
+ def setUnite(self):
+ if self.monSimpDef.unite == None :
+ if hasattr( self,'lineEditUnite') : self.lineEditUnite.setText(' ')
+ else :
+ if hasattr( self,'lineEditUnite') : self.lineEditUnite.setText(self.monSimpDef.unite)
+ else : self.editor.informe('Erreur de Catalogue','Champ Unite non prevu pour '+ self.nom + ' correction du catalogue souhaitable, prevenez la maintenance', False)
+
+ def setUQ(self):
+ if not (self.editor.appliEficas.maConfiguration.afficheUQ) and hasattr(self,'checkBoxUQ') :
+ self.checkBoxUQ.close()
+ return
+ if not self.monSimpDef.UQPossible():
+ self.checkBoxUQ.close()
+ return
+ if self.objSimp.isUQActivate() and hasattr(self,'checkBoxUQ') :
+ self.checkBoxUQ.setChecked(True)
+
def setNom(self):
self.debutToolTip=""
nomTraduit=tr(self.objSimp.nom)
- #metrix= QFontMetrics(self.label.font())
- #maxLongueur = self.label.width() - 2
- #print ('______________________')
- #print (nomTraduit)
- #print (self.label.font().pixelSize())
- #longueur2 = metrix.boundingRect(nomTraduit).width()
longueur=QFontMetrics(self.label.font()).width(nomTraduit)
if longueur >= nomMax :
nouveauNom=self.formate(nomTraduit)
#if (clippedText != nomTraduit): self.label.setToolTip(nomTraduit)
#self.label.setText(clippedText)
- #def agrandit(self):
- # inutile pour certains widgets
- # if self.height() < 40 :
- # self.setMinimumHeight(50)
- # self.resize(self.width(),200)
-
- #def mousePressEvent(self, event):
- #print 'mousePressEvent'
- #import inspect
- #print (inspect.getmro(self.__class__))
- #self.__class__.mousePressEvent(self, event)
# --------------------------- #
def __init__(self,parent):
# index sera mis a jour par TupleCustom
+ print ('je passe la pour ', self, parent)
+ print ('je passe la ', parent.parent())
+ print ('je passe la ', parent.parent().parent())
+ print ('je passe la ', parent.parent().parent().parent())
parentQt=parent.parent().parent().parent()
LECustom. __init__(self,parent,parentQt,0)
#print (dir(self))
listeEtapesDejaPresentes.append(e.nom)
for c in aExclure :
if c not in listeEtapesDejaPresentes : aExclure.remove(c)
- for e in self.jdc.etapes:
- print (e.nom)
- print (e.definition.repetable)
- if e.definition.repetable == 'n' : aExclure.append(e.nom)
- print (aExclure)
+ #for e in self.jdc.etapes:
+ # print (e.nom)
+ # print (e.definition.repetable)
+ # if e.definition.repetable == 'n' : aExclure.append(e.nom)
+ #print (aExclure)
for l in self.jdc.getListeCmd():
print (l)
if l not in aExclure :
def ajoutLineEdit(self,valeur=None,):
- print ('ajoutLineEdit plusieursBase')
+ #print ('ajoutLineEdit plusieursBase')
#print ('self.indexDernierLabel', self.indexDernierLabel)
self.indexDernierLabel=self.indexDernierLabel+1
nomLineEdit="lineEditVal"+str(self.indexDernierLabel)
for i in range(self.tailleTuple):
- nomLE="lineEditVal_"+str(i+1)
+ nomLE="lineEditVal"+str(i+1)
courant=getattr(self,nomLE)
courant.num=index
courant.dansUnTuple=True
listeVal=[]
for i in range(self.tailleTuple):
- nomLE="lineEditVal_"+str(i+1)
+ nomLE="lineEditVal"+str(i+1)
courant=getattr(self,nomLE)
val=str(courant.text())
listeVal=[]
valeurNulle=True
for i in range(self.tailleTuple):
- nomLE="lineEditVal_"+str(i+1)
+ nomLE="lineEditVal"+str(i+1)
courant=getattr(self,nomLE)
try :
if str(value[i]) != "" : valeurNulle=False
vide=True
print (self.tailleTuple)
for i in range(self.tailleTuple):
- nomLE="lineEditVal_"+str(i+1)
+ nomLE="lineEditVal"+str(i+1)
courant=getattr(self,nomLE)
self.valeur.append(courant.valeur)
if courant.valeur!= None : vide = False
#-------------------
self.valeur=None
for i in range(self.tailleTuple):
- nomLE="lineEditVal_"+str(i+1)
+ nomLE="lineEditVal"+str(i+1)
courant=getattr(self,nomLE)
courant.setText("")
for i in range(self.nbValeurs) :
num=i+1
- nomLineEdit='lineEditVal_'+str(num)
+ nomLineEdit='lineEditVal'+str(num)
lineEditVal=getattr(nouveauLE,nomLineEdit)
self.listeAffichageWidget.append(lineEditVal)
- #self.listeAffichageWidget.append(nouveauLE.lineEditVal_1)
- #self.listeAffichageWidget.append(nouveauLE.lineEditVal_2)
- #if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal_3)
+ #self.listeAffichageWidget.append(nouveauLE.lineEditVal1)
+ #self.listeAffichageWidget.append(nouveauLE.lineEditVal2)
+ #if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal3)
self.etablitOrdre()
# deux lignes pour que le ensureVisible fonctionne
- self.estVisible=nouveauLE.lineEditVal_1
+ self.estVisible=nouveauLE.lineEditVal1
if inInit==False :QTimer.singleShot(1, self.rendVisibleLigne)
def etablitOrdre(self):
self.changeValeur(changeDePlace=True)
self.numLineEditEnCours=num2
self.lineEditEnCours=courant2
- courant2.lineEditVal_1.setFocus(True)
+ courant2.lineEditVal1.setFocus(True)
def ajoutNValeur(self,liste):
#----------------------------
nomLEARemplir=self.nomLine+str(indexDernierRempli+1)
LEARemplir=getattr(self,nomLEARemplir)
for n in range(self.nbValeurs) :
- nomLineEdit='lineEditVal_'+str(n+1)
+ nomLineEdit='lineEditVal'+str(n+1)
lineEditVal=getattr(LEARemplir,nomLineEdit)
lineEditVal.setText(str(t[n]))
else :
nouveauLE.setValeur(t)
for n in range(self.nbValeurs) :
- nomLineEdit='lineEditVal_'+str(n+1)
+ nomLineEdit='lineEditVal'+str(n+1)
lineEditVal=getattr(nouveauLE,nomLineEdit)
self.listeAffichageWidget.append(lineEditVal)
indexDernierRempli = indexDernierRempli+1
def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+ if 'R' or 'I' in self.monSimpDef.type : self.lineEditVal.setMinimumWidth(525)
self.parentQt.commandesLayout.insertWidget(-1,self,1)
self.setFocusPolicy(Qt.StrongFocus)
if monSimpDef.homo == 'constant' : self.lineEditVal.setReadOnly(True)
elif repr(valeurTexte.__class__).find("PARAMETRE") > 0:
chaine = repr(valeur)
else :
- #PN ????
- #try :
- # chaine=QString("").setNum(valeurTexte)
- #except :
chaine=str(valeurTexte)
self.oldValeurTexte=chaine
self.lineEditVal.setText(chaine)
self.LEReel.returnPressed.connect(self.LEReelRPressed)
self.RBRI.clicked.connect(self.valeurPressed )
self.RBMP.clicked.connect(self.valeurPressed )
- self.LEComp.returnPressed.connect(self.LECompRPressed)
- self.maCommande.listeAffichageWidget.append(self.LEComp)
- #self.maCommande.listeAffichageWidget.append(self.RBRI)
- #self.maCommande.listeAffichageWidget.append(self.RBMP)
- #self.maCommande.listeAffichageWidget.append(self.LEReel)
- #self.maCommande.listeAffichageWidget.append(self.LEImag)
+ self.maCommande.listeAffichageWidget.append(self.RBRI)
+ self.maCommande.listeAffichageWidget.append(self.RBMP)
+ self.maCommande.listeAffichageWidget.append(self.LEReel)
+ self.maCommande.listeAffichageWidget.append(self.LEImag)
def setValeurs(self):
if valeur == None or valeur == '' : return
if type(valeur) not in (list,tuple) :
self.LEComp.setText(str(valeur))
+ commentaire=tr('complexe form deprecated, od value : ', valeur)
+ self.editor.afficheInfos(commentaire,Qt.red)
else :
typ_cplx,x1,x2=valeur
self.LEReel.setText(str(x1))
else :
self.RBMP.setChecked(1)
- def LECompRPressed(self) :
- self.LEReel.clear()
- self.LEImag.clear()
- commentaire=tr("expression valide")
- valeur = str(self.LEComp.text())
- d={}
- try :
- v=eval(valeur,d)
- except :
- commentaire=tr("expression invalide")
- self.editor.afficheInfos(commentaire,Qt.red)
- return
- try :
- i=v.imag
- self.editor.afficheInfos(commentaire)
- self.valeurPressed()
- except :
- commentaire=tr("l expression n est pas de la forme a+bj")
- self.editor.afficheInfos(commentaire,Qt.red)
+ #def LECompRPressed(self) :
+ # self.LEReel.clear()
+ # self.LEImag.clear()
+ # commentaire=tr("expression valide")
+ # valeur = str(self.LEComp.text())
+ # d={}
+ # if 1 :
+ # try :
+ # v=eval(valeur,d)
+ # except :
+ # commentaire=tr("expression invalide")
+ # self.editor.afficheInfos(commentaire,Qt.red)
+ # return
+ # try :
+ # i=v.imag
+ # self.editor.afficheInfos(commentaire)
+ # self.valeurPressed()
+ # except :
+ # commentaire=tr("l expression n est pas de la forme a+bj")
+ # self.editor.afficheInfos(commentaire,Qt.red)
def LEReelRPressed(self):
- self.LEComp.clear()
+ #self.LEComp.clear()
commentaire=tr("expression valide")
valeur = str(self.LEReel.text())
try :
commentaire=tr("expression invalide")
self.editor.afficheInfos(commentaire,Qt.red)
if self.LEImag.text()!="" : self.valeurPressed()
+ else : self.LEImag.setFocus(True)
def LEImagRPressed(self):
- self.LEComp.clear()
commentaire=tr("expression valide")
valeur = str(self.LEImag.text())
try :
commentaire=tr("expression invalide")
self.editor.afficheInfos(commentaire,Qt.red)
if self.LEReel.text()!="" : self.valeurPressed()
+ else : self.LEReel.setFocus(True)
def finCommentaire(self):
commentaire="valeur de type complexe"
return commentaire
- def getValeurComp(self):
- commentaire=tr("expression valide")
- valeur = str(self.LEComp.text())
- d={}
- try :
- v=eval(valeur,d)
- except :
- commentaire=tr("expression invalide")
- self.editor.afficheInfos(commentaire,Qt.red)
- return None
- try :
- i=v.imag
- except :
- commentaire=tr("expression n est pas de la forme a+bj")
- self.editor.afficheInfos(commentaire,Qt.red)
- return None
- return v
+ #def getValeurComp(self):
+ # commentaire=tr("expression valide")
+ # valeur = str(self.LEComp.text())
+ # d={}
+ # try :
+ # v=eval(valeur,d)
+ # except :
+ # commentaire=tr("expression invalide")
+ # self.editor.afficheInfos(commentaire,Qt.red)
+ # return None
+ # try :
+ # i=v.imag
+ # except :
+ # commentaire=tr("expression n est pas de la forme a+bj")
+ # self.editor.afficheInfos(commentaire,Qt.red)
+ # return None
+ # return v
def valeurPressed(self):
- if self.LEComp.text()== "" and (self.LEReel.text()=="" or self.LEImag.text()=="") :
- return
- if self.LEComp.text()== "" : valeur = self.getValeurRI()
- else :
- if self.LEReel.text() != "" or self.LEImag.text() != "" :
- commentaire=tr("entrer une seule valeur SVP")
- self.editor.afficheInfos(commentaire,Qt.red)
- return
- valeur= self.getValeurComp()
+ if (self.LEReel.text()=="" and self.LEImag.text()=="") : self.LEReel.setFocus(True)
+ if (self.LEReel.text()=="" and self.LEImag.text()!="") : self.LEReel.setFocus(True)
+ if (self.LEReel.text()!="" and self.LEImag.text()=="") : self.LEImag.setFocus(True)
+ valeur = self.getValeurRI()
self.politique.recordValeur(valeur)
self.reaffiche()
self.parentQt.donneFocus()
Retourne le complexe saisi par l'utilisateur
"""
l=[]
- if (self.RBMP.isChecked() == 1 ) :
- l.append("MP")
- elif (self.RBRI.isChecked() == 1) :
- l.append("RI")
+ if (self.RBMP.isChecked() == 1 ) : l.append("MP")
+ elif (self.RBRI.isChecked() == 1) : l.append("RI")
else :
- commentaire=tr("saisir le type de complexe")
self.editor.afficheInfos(commentaire,Qt.red)
+ self.RBMP.setFocus(True)
return None
try :
l.append(locale.atof(str(self.LEReel.text())))
def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
self.nbValeurs=2
MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
+ #print (self,node,monSimpDef,nom,objSimp,parentQt,commande)
+ #import traceback
+ #traceback.print_stack()
if self.objSimp.isImmuable() :
self.lineEditVal1.setDisabled(True)
self.lineEditVal2.setDisabled(True)
if self.objSimp.isImmuable() :
self.lineEditVal1.setDisabled(True)
self.lineEditVal2.setDisabled(True)
+ self.lineEditVal3.setDisabled(True)
self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
+ self.lineEditVal3.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n")
self.lineEditVal1.setToolTip(tr("Valeur non modifiable"))
self.lineEditVal2.setToolTip(tr("Valeur non modifiable"))
+ self.lineEditVal3.setToolTip(tr("Valeur non modifiable"))
else :
self.maCommande.listeAffichageWidget.append(self.lineEditVal1)
class MonWidgetSimpTuple4 (Ui_WidgetTuple4,MonWidgetSimpTuple):
def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande):
+ #print (self,node,monSimpDef,nom,objSimp,parentQt,commande)
self.nbValeurs=4
MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande)
N_OBJECT.OBJECT.supprime(self)
def getUserAssdPossible(self):
+ debug=False
+ if self.nom == 'ApplyOn' : debug = True
+ if debug : print ('____________', self, self.nom)
classeAChercher = self.definition.type
+ if debug : print ('____________', classeAChercher)
l=[]
dicoValeurs={}
d={}
+ if debug : print ('____________', self.definition.filtreVariables)
if self.definition.filtreVariables != None :
for (nomMC, Xpath) in self.definition.filtreVariables :
- # print (nomMC, Xpath)
+ if debug : print (nomMC, Xpath)
if Xpath == None : dicoValeurs[nomMC] = getattr(self,nomMC)
else :
try: #if 1 :
pereMC=eval(Xpath)
+ if debug : print ('pereMC :',pereMC)
if pereMC :
exp=Xpath+'.getChild("'+nomMC+'")'
leMotCle=eval(exp)
else : leMotCle=None
+ if debug : print ('leMotCle', leMotCle)
if leMotCle :
if leMotCle.val : dicoValeurs[nomMC]=leMotCle.val
elif leMotCle.definition.max != 1 : dicoValeurs[nomMC] = []
else : dicoValeurs[nomMC] = None
+ if debug : print ('dicoValeurs', dicoValeurs)
else :
#PN PN est-ce sur ? sinon quoi None ou []
# je pense que les 2 valeurs doivent être renseignees si le filtre depend de 2 valeurs
for k,v in self.parent.jdc.sdsDict.items():
if (isinstance(v, classeAChercher)) :
+ if debug : print ('je traite', v)
if self.definition.filtreExpression :
+ if debug : print ('expression', self.definition.filtreExpression)
+ if debug :
+ print (v.executeExpression(self.definition.filtreExpression ,dicoValeurs) )
try :
if v.executeExpression(self.definition.filtreExpression ,dicoValeurs) : l.append(v)
except :
min=1, max=1, homo=1, position='local',filtre=None,
val_min=float('-inf'), val_max=float('inf'), docu="", validators=None, nomXML=None,
sug=None,fenetreIhm=None, attribut=False, sortie='n', intoXML=None, metAJour=None,
- avecBlancs=False):
+ avecBlancs=False, unite=None):
"""
Un mot-clé simple est caractérisé par les attributs suivants :
- type : cet attribut est obligatoire et indique le type de valeur attendue
self.sortie = sortie
self.filtre = filtre
self.avecBlancs = avecBlancs
+ self.unite = unite
if not(self.avecBlancs) and self.max > 1 and 'TXM' in self.type and self.into != None :
for val in self.into :
- if val.find(' ') :
+ if val.find(' ') > -1:
self.avecBlancs = True
break
- if not(self.avecBlancs) and self.max > 1 and 'TXM' in self.type and self.into != None :
+ if not(self.avecBlancs) and self.max > 1 and 'TXM' in self.type and self.intoXML != None :
for val in self.intoXML :
- if val.find(' ') :
+ if val.find(' ') > -1:
self.avecBlancs = True
break
if self.avecBlancs and not ('TXM' in self.type) :
self.typEltInto = typEltInto
self.jdc=None
self.coloree=coloree
- self.coloree=True
if self.coloree : self.activeCouleur()
def __convert__(self, valeur):
self.jdc.delConcept(self.nom)
def executeExpression(self, condition, dico) :
- #print ('je suis dans executeExpression ', self.nom, ' ', condition)
+ #if self.nom == 'shape1' : print ('je suis dans executeExpression ', self.nom, ' ', condition)
dict = locals()
dict.update(dico)
- #if self.nom == 'CS_Num1__CS_Num2_Velocity' :
- # print ('--------------------------------------------------------------------------')
- # #print ((set(("Pressure",)).intersection(set(self.getEficasAttribut("InvolvedStateVariable"))) != set()))
- # print (self.getEficasAttribut("InvolvedStateVariable"))
- # print ('--------------------------------------------------------------------------')
- # return 0
+ #if self.nom == 'shape1' or self.nom == 'G1' : print (dict)
+ #if self.nom == 'shape1' :
+ # print (self.getParentsWithId().getListeUserASSD("systemGeometryId"))
+ # print (self.getParentsWithId().getListeUserASSD("SystemGeometryId"))
+ # test = eval(condition, globals(), dict)
+ # print ('-------------------------------------------------------------------------')
try :
test = eval(condition, globals(), dict)
except :