#PN correction de bugs
#print ('suppEntite', etape.nom)
if etape not in self.etapes: return 0
+ #print ('suppEntite', etape.nom)
+ if etape.nom == 'ExpressionIncertitude' :
+ etape.delieIncertitude()
self.initModif()
index_etape=self.etapes.index(etape)
#etape.delObjPyxb()
self.etapes.remove(etape)
+ #print ('suppEntite', etape.nom)
if etape.niveau is not self:
# Dans ce cas l'etape est enregistree dans un niveau
# Il faut la desenregistrer
Retourne 1 si la suppression a pu etre effectuee,
Retourne 0 dans le cas contraire
"""
- #print ('suppEntite', self.nom,objet.nom)
+ #print ('suppEntite de MCCOMPO', self.nom,objet)
if not objet in self.mcListe:
# Impossible de supprimer objet. Il n'est pas dans mcListe
return 0
+ if objet.nom == 'VariableProbabiliste' :
+ if objet[0].variableDeterministe :
+ objet[0].variableDeterministe.variableProbabiliste = None
+ objet[0].variableDeterministe.associeVariableUQ = False
self.initModif()
objet.delObjPyxb()
objet.deleteRef()
obj.supprime()
self.etape.modified()
self.finModif()
+ if obj.nom == 'VariableProbabiliste' :
+ if obj.variableDeterministe :
+ obj.variableDeterministe.variableProbabiliste = None
+ obj.variableDeterministe.associeVariableUQ = False
return 1
def addEntite(self,obj,pos=None):
if self.definition.position == 'global' :
self.etape.deepUpdateConditionBloc()
elif self.definition.position == 'reCalculeEtape' :
- print ('je passe par la pour ', self.nom)
+ #print ('je passe par la pour ', self.nom)
self.etape.deepUpdateConditionBloc()
self.etape.demandeRedessine()
elif self.definition.position == 'global_jdc' :
if etape :
etape.mc_globaux[self.nom]=self
etape.doitEtreRecalculee=True
- print ('je mets doitEtreRecalculee = True avec', self.nom ,' pour ', etape.nom)
- print ('j ajoute au mc_globaux')
+ #print ('je mets doitEtreRecalculee = True avec', self.nom ,' pour ', etape.nom)
+ #print ('j ajoute au mc_globaux')
elif self.definition.position == 'global_jdc' :
if self.jdc:
self.jdc.mc_globaux[self.nom]=self
if (hasattr (val, 'enleveUtilisePar')) : val.enleveUtilisePar(self)
def updateAutresMotsClefs(self):
- print ('updateAutresMotsClefs')
+ #print ('updateAutresMotsClefs')
for (nomMC, Xpath) in self.definition.metAJour :
exp=Xpath+'.getChild("'+nomMC+'")'
try :
for leMotCle in listeMotsClefsAppel:
leMotCle.demandeRedessine()
- print ('fin updateAutresMotsClefs')
+ #print ('fin updateAutresMotsClefs')
def UQPossible(self):
# Plus facile de mettre cette methode dans le SIMP, car on connait son nom
return self.associeVariableUQ
def lieVariableUQ(self):
+ #print ('je passe dans lieVariableUQ')
self.associeVariableUQ=True
etapeIncertitude=self.jdc.getEtapesByName('ExpressionIncertitude')
if etapeIncertitude == [] :
incertitudeInput = etapeIncertitude.getChildOrChildInBloc('Input')
nodeVariableProbabiliste=incertitudeInput.node.appendChild('VariableProbabiliste', 'first')
# le buildChildren a une mcliste --> on est oblige de mettre first mais en fait c est last
+ # PN a cooriger
if nodeVariableProbabiliste.item.object.nature=='MCFACT' :
newVariable=nodeVariableProbabiliste.item.object
else :
newVariable=nodeVariableProbabiliste.item.object[-1]
newVariable.variableDeterministe = self
+ self.variableProbabiliste=newVariable
itemModelVariable=newVariable.getChild('ModelVariable')
itemModelVariable.setValeur(self.nom)
itemConsigne.setValeur('la valeur entrée pour {} est {}'.format(self.nom, self.valeur))
itemXPath=newVariable.getChild('xPathVariable')
- #itemXPath.reparent(newVariable)
itemXPath.setValeur(self.getGenealogiePrecise())
#print (itemXPath)
- self.variableProbabiliste=nodeVariableProbabiliste.item
self.definition.siValide = self.changeValeursRefUQ
def changeValeursRefUQ (self, motClef):
def delieVariableUQ(self):
- print ('pas encore programme')
+ self.associeVariableUQ=False
+ # Attention, on n a pas le MCLIST mais le MCLIST(0) dans la variableProbabiliste
+ # si self est le seul alors on enleve la MCLIST du MCCOMPO
+ mcVP=self.variableProbabiliste.parent.getChild('VariableProbabiliste')
+ if len(mcVP) == 1 :
+ ret = self.variableProbabiliste.parent.suppEntite(mcVP)
+ else :
+ ret = mcVP.suppEntite(self.variableProbabiliste)
+ return ret
def handleOnItem(self,item,int):
#----------------------------------
- print ("je passe dans handleOnItem pour ",self, item.item.nom, item, item.item, item.item.getLabelText())
+ #print ("je passe dans handleOnItem pour ",self, item.item.nom, item, item.item, item.item.getLabelText())
from InterfaceQT4 import composimp
self.inhibeExpand = True
self.nouveau=0
if self.fichier is not None: # fichier jdc fourni
if jdc==None :
- print ('PNPN : chgt try en if')
- #try :
- if 1 :
+ #print ('PNPN : chgt try en if')
+ try :
+ #if 1 :
self.jdc = self.readFile(self.fichier)
- #except :
- # print ("mauvaise lecture du fichier")
+ except :
+ print ("mauvaise lecture du fichier")
if self.salome :
try : self.appliEficas.addJdcInSalome( self.fichier)
except : print ("mauvais enregistrement dans Salome")
import types,os
import traceback
-from PyQt5.QtWidgets import QToolButton ,QWidget
+from PyQt5.QtWidgets import QToolButton ,QWidget, QMessageBox
from PyQt5.QtGui import QFont, QFontMetrics, QFontInfo, QPalette
from PyQt5.QtCore import Qt
nomMax=230
# empirique les metrics ne fonctionnent pas
+
# ---------------------------------------------------------------------- #
class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
# --------------------------------------------------------------------- #
self.checkBoxUQ.close()
return
if not self.objSimp.UQPossible() : return
+ if hasattr(self,'checkBoxUQ') :
+ if self.objSimp.isUQActivate() : self.checkBoxUQ.setChecked(True)
+ else : self.checkBoxUQ.setChecked(False)
self.checkBoxUQ.toggled.connect(self.setEnabledUQ)
- if self.objSimp.isUQActivate() and hasattr(self,'checkBoxUQ') :
- self.checkBoxUQ.setChecked(True)
def setEnabledUQ(self) :
if self.checkBoxUQ.isChecked() : self.objSimp.lieVariableUQ()
- else : self.objSimp.delieVariableUQ()
+ else :
+ ret = self.objSimp.delieVariableUQ()
+ if not ret : QMessageBox.warning( self,tr( "Variable associée non trouvée "),tr( "prevenez la maintenance"))
+ else :
+ etape=self.objSimp.getJdcRoot().getEtapesByName('ExpressionIncertitude')[0]
+ etape.node.buildChildren()
def setNom(self):
self.debutToolTip=""
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)