]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
1ere version Ihm incertitudes
authorPASCALE NOYRET <pascale.noyret@edf.fr>
Wed, 8 Jun 2022 15:39:08 +0000 (17:39 +0200)
committerPASCALE NOYRET <pascale.noyret@edf.fr>
Wed, 8 Jun 2022 15:39:08 +0000 (17:39 +0200)
Ihm/I_JDC.py
Ihm/I_MCCOMPO.py
Ihm/I_MCLIST.py
Ihm/I_MCSIMP.py
InterfaceQT4/browser.py
InterfaceQT4/editorSsIhm.py
InterfaceQT4/feuille.py
Noyau/N_MCSIMP.py

index 395f262566d6d0ffcf9f7c7b8540af49434542ac..9488009f76d0e462679bfade98829f8095fb71db 100644 (file)
@@ -494,6 +494,9 @@ class JDC(I_OBJECT.OBJECT):
         #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)
@@ -501,6 +504,7 @@ class JDC(I_OBJECT.OBJECT):
         #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
index c322aa8c656cc0fc9b5975e3ad823dc1477266b5..c1cb22d6cf8ee3b42af8602dc3678936aaf17862 100644 (file)
@@ -218,11 +218,15 @@ class MCCOMPO(I_OBJECT.OBJECT):
             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()
index e52a5b5cf27b81794f18f4fa9671c097c95649b6..ea3b4ba611e489807932a8f19672efcce868f921 100644 (file)
@@ -84,6 +84,10 @@ class MCList:
         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):
index ac9dd0bec4f0d84d7b4da06eb640f3b0a2bc87d1..072e15cdd11e4980c4ab1dda225ff7019f377420 100644 (file)
@@ -360,7 +360,7 @@ class MCSIMP(I_OBJECT.OBJECT):
         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' :
@@ -692,8 +692,8 @@ class MCSIMP(I_OBJECT.OBJECT):
             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
@@ -862,7 +862,7 @@ class MCSIMP(I_OBJECT.OBJECT):
                 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 :
@@ -882,7 +882,7 @@ class MCSIMP(I_OBJECT.OBJECT):
             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
@@ -896,6 +896,7 @@ class MCSIMP(I_OBJECT.OBJECT):
         return self.associeVariableUQ
     
     def lieVariableUQ(self):
+        #print ('je passe dans lieVariableUQ')
         self.associeVariableUQ=True
         etapeIncertitude=self.jdc.getEtapesByName('ExpressionIncertitude')
         if etapeIncertitude == [] :
@@ -905,11 +906,13 @@ class MCSIMP(I_OBJECT.OBJECT):
         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)
@@ -918,11 +921,9 @@ class MCSIMP(I_OBJECT.OBJECT):
         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):
@@ -933,5 +934,13 @@ class MCSIMP(I_OBJECT.OBJECT):
 
 
     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
 
index edfe9c5ed6241c32493b2384ebcb32dcc5e39f2c..fcf62bbac13ff168ca9d2ce8a07f75d62e5cce43 100644 (file)
@@ -152,7 +152,7 @@ class JDCTree( QTreeWidget,GereRegles ):
 
     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
index 78763b576e0b304e13d12055ddf725f92ec691ad..4e45be1168cae8a37cb7c5e7b089b232b39ed4cc 100755 (executable)
@@ -142,12 +142,12 @@ class JDCEditorSsIhm :
         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")
index 8923b2f147d4e2ef19711fec18b47790112b50d6..4d075a3777cebd93f7d010128d2dfac01ced4a5a 100644 (file)
@@ -26,7 +26,7 @@ except :
 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
 
@@ -38,6 +38,7 @@ from .qtSaisie    import SaisieValeur
 
 nomMax=230
 # empirique les metrics ne fonctionnent pas
+
 # ---------------------------------------------------------------------- #
 class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel):
 # --------------------------------------------------------------------- #
@@ -100,13 +101,19 @@ 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=""
index 49a49fee9d30e138ffd2a4c3054ec9682cc5873a..81918a1a58e667b3bdd7f9e911bff410a555cf02 100644 (file)
@@ -317,7 +317,6 @@ class MCSIMP(N_OBJECT.OBJECT):
 
     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)