Salome HOME
synchronisation avec Yoann
[tools/eficas.git] / InterfaceQT4 / editor.py
index 10084641f6d38b386ce7cd77f7a201ff16ef3587..ed534c90ba357b6457e7fbfaff9e8e7ad7cdb3be 100755 (executable)
@@ -138,6 +138,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
         self.liste_simp_reel=[]
         self.ihm="QT"
         self.dicoNouveauxMC={}
+        self.dicoNouveauxFact={}
 
         nameConf='configuration_'+self.code
         configuration=__import__(nameConf)
@@ -971,13 +972,13 @@ class JDCEditor(Ui_baseWidget,QWidget):
     #------------#
       fonction="run"+self.code
       #print fonction
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction],(self,)
+      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
 
     #------------#
     def saveRun(self):
     #------------#
       fonction="saveRun"+self.code
-      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction],(self,)
+      if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,)
 
     #---------------#
     def runMAP(self):
@@ -1203,6 +1204,14 @@ class JDCEditor(Ui_baseWidget,QWidget):
         #else :
            pass
 
+    #-----------------------------------------------------------------#
+    def saveFileLegerAs(self, fileName = None) :
+    #-----------------------------------------------------------------#
+        if fileName != None :
+           self.fichier = fileName
+           return self.saveFileLeger()
+        return self.saveFileLeger()
+
     #-----------------------------------------------------------------#
     def saveFileLeger(self, path = None, saveas= 0,formatLigne="beautifie"):
     #-----------------------------------------------------------------#
@@ -1360,24 +1369,37 @@ class JDCEditor(Ui_baseWidget,QWidget):
             jdcText = ''
         return ulfile, jdcText
 
-    #-------------------------------#
+    #-----------------------------------#
     def updateJdc(self, itemApres,texte):
-    #--------------------------------#
+    #------------------------------------#
+    # ajoute une etape  de JdC a partir d un texte
         monItem=itemApres
         etape=monItem.item.object
-
         CONTEXT.set_current_step(etape)
         etape.build_includeInclude(texte)
         self.tree.racine.build_children()
 
+    #-----------------------------------#
+    def updateJdcEtape(self, itemApres,texte):
+    #------------------------------------#
+    # ajoute une etape  de JdC a partir d un texte
+        monItem=itemApres
+        etape=monItem.item.object
+        CONTEXT.set_current_step(etape)
+        etape.build_includeEtape(texte)
+        self.tree.racine.build_children()
+
+
     #-------------------------------------#
     def deleteEtape(self,etape):
     #-------------------------------------#
+    # dans le JDC
         self.jdc.suppentite(etape)
 
     #-------------------------------------#
     def deleteMC(self,etape,MCFils,listeAvant=()):
     #-------------------------------------#
+    # dans le JDC
         ouChercher=etape
         for mot in listeAvant :
               ouChercher=ouChercher.get_child(mot,restreint="oui")
@@ -1389,6 +1411,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
     #-------------------------------------#
     def ajoutMC(self,etape,MCFils,valeurs,listeAvant=()):
     #-------------------------------------#
+    # dans le JDC
         ouChercher=etape
         for mot in listeAvant :
               ouChercher=ouChercher.get_child(mot,restreint="oui")
@@ -1399,9 +1422,25 @@ class JDCEditor(Ui_baseWidget,QWidget):
         monMC.state='changed'
         monMC.isvalid()
 
+    #----------------------------------------------#
+    def ajoutMCFact(self,etape,MCFils,listeAvant=()):
+    #----------------------------------------------#
+    # dans le JDC
+        print ('ajoutMCFact')
+        ouChercher=etape
+        print (ouChercher)
+        for mot in listeAvant :
+              ouChercher=ouChercher.get_child(mot,restreint="oui")
+              print (mot)
+              print (ouChercher)
+        monMC=etape.get_child(ouChercher,restreint="oui")
+        if monMC== None : monMC= ouChercher.addentite(MCFils)
+        monMC.isvalid()
+
     #-------------------------------------#
     def getValeur(self,nomEtape,MCFils,listeAvant=()):
     #-------------------------------------#
+    # dans le JDC
 
         ouChercher=None
         for e in self.jdc.etapes:
@@ -1409,15 +1448,33 @@ class JDCEditor(Ui_baseWidget,QWidget):
         if ouChercher==None : return None
         for mot in listeAvant :
               ouChercher=ouChercher.get_child(mot,restreint="oui")
+              #print (mot, ouChercher)
               if ouChercher==None : return None
-        print ('apres', ouChercher)
         monMC=ouChercher.get_child(MCFils,restreint="oui")
         if monMC== None : return None
         return monMC.valeur
 
+    #-----------------------------------------------------------#
+    def setValeur(self,nomEtape,MCFils,valeur,listeAvant=()):
+    #--------------------------------------------------------#
+    # dans le JDC
+
+        ouChercher=None
+        for e in self.jdc.etapes:
+            if e.nom == nomEtape : ouChercher=e; break
+        if ouChercher==None : return None
+        for mot in listeAvant :
+              ouChercher=ouChercher.get_child(mot,restreint="oui")
+              #print (mot, ouChercher)
+              if ouChercher==None : return None
+        monMC=ouChercher.get_child(MCFils,restreint="oui")
+        monMC.set_valeur(valeur)
+        monMC.isvalid()
+
     #-----------------------------------------------------------#
     def changeIntoMC(self,etape,MCFils,valeurs, listeAvant=()):
     #-----------------------------------------------------------#
+    # dans le JDC
         ouChercher=etape
         if isinstance (etape, str):
            ouChercher=None
@@ -1437,9 +1494,10 @@ class JDCEditor(Ui_baseWidget,QWidget):
         monMC.state='changed'
         monMC.isvalid()
 
-    #----------------------------------------------------#
+    #-------------------------------------------------------------------#
     def reCalculeValiditeMCApresChgtInto(self,nomEtape,MCFils,listeAvant=()):
-    #----------------------------------------------------#
+    #-------------------------------------------------------------------#
+    # dans le JDC
         for e in self.jdc.etapes:
             if e.nom == nomEtape : ouChercher=e; break
         
@@ -1452,8 +1510,8 @@ class JDCEditor(Ui_baseWidget,QWidget):
            monMC=ouChercher.get_child(MCFils,restreint="oui")
         # Le mot clef n est pas la
         except : return 0
+        if monMC == None : return 0
 
-        #print ('________',monMC)
         if hasattr(monMC.definition,'into') :
            if type(monMC.definition.into) ==types.FunctionType : maListeDeValeur=monMC.definition.into()
            else : maListeDeValeur=monMC.definition.into
@@ -1466,12 +1524,13 @@ class JDCEditor(Ui_baseWidget,QWidget):
     #-------------------------------------#
     def changeDefautDefMC(self,nomEtape,listeMC,valeurs):
     #-------------------------------------#
+    # dans le MDD
 
         #if isinstance (etape, str):
         #  for e in self.jdc.etapes:
         #    if e.nom == etape : etape=e; break
         #if etape == None : return
-        definitionEtape=getattr(self.jdc.cata[0],etape)
+        definitionEtape=getattr(self.jdc.cata[0],nomEtape)
         ouChercher=definitionEtape
         if len(listeMC) > 1 :
 
@@ -1479,15 +1538,14 @@ class JDCEditor(Ui_baseWidget,QWidget):
              mcfact=ouChercher.entites[mc]
              ouChercher=mcfact
            
-        print (ouChercher)
         mcAccas=ouChercher.entites[listeMC[-1]]
         mcAccas.defaut=valeurs
-        print (mcAccas.defaut)
         return 1
 
     #------------------------------------------------#
     def changeIntoDefMC(self,nomEtape,listeMC,valeurs):
     #------------------------------------------------#
+    # dans le MDD
         definitionEtape=getattr(self.jdc.cata[0],nomEtape)
         ouChercher=definitionEtape
 
@@ -1509,6 +1567,7 @@ class JDCEditor(Ui_baseWidget,QWidget):
     #-------------------------------------------------------------#
     def deleteDefinitionMC(self,etape,listeAvant,nomDuMC):
     #-------------------------------------------------------------#
+    # dans le MDD
         #print 'in deleteDefinitionMC', etape,listeAvant,nomDuMC
         if isinstance (etape, str):
           for e in self.jdc.etapes:
@@ -1525,13 +1584,10 @@ class JDCEditor(Ui_baseWidget,QWidget):
 
 
     #-------------------------------------------------------------#
-    def ajoutDefinitionMC(self,etape,listeAvant,nomDuMC,typ,**args):
+    def ajoutDefinitionMC(self,nomEtape,listeAvant,nomDuMC,typ,**args):
     #-------------------------------------------------------------#
-        if isinstance (etape, str):
-          for e in self.jdc.etapes:
-            if e.nom == etape : etape=e; break
-        if etape == None : return
-        definitionEtape=getattr(self.jdc.cata[0],etape)
+    # dans le MDD
+        definitionEtape=getattr(self.jdc.cata[0],nomEtape)
         ouChercher=definitionEtape
         for k in listeAvant : 
             ouChercher=ouChercher.entites[k]
@@ -1539,15 +1595,46 @@ class JDCEditor(Ui_baseWidget,QWidget):
         Nouveau=A_SIMP.SIMP(typ,**args)
         Nouveau.pere=ouChercher
         Nouveau.nom=nomDuMC
-        Nouveau.ordre_mc=[]
+        #Nouveau.ordre_mc=[]
         ouChercher.entites[nomDuMC]=Nouveau
         ouChercher.ordre_mc.append(nomDuMC)
-        self.dicoNouveauxMC[nomDuMC]=('ajoutDefinitionMC',etape,listeAvant,nomDuMC,typ,args)
+        self.dicoNouveauxMC[nomDuMC]=('ajoutDefinitionMC',nomEtape,listeAvant,nomDuMC,typ,args)
+        #print self.dicoNouveauxMC
+
+    #---------------------------------------------------------------------#
+    def ajoutDefinitionMCFact(self,nomEtape,listeAvant,nomDuMC,listeMC,**args):
+    #---------------------------------------------------------------------#
+    # dans le MDD
+        print ('ajoutDefinitionMCFact', nomDuMC)
+        definitionEtape=getattr(self.jdc.cata[0],nomEtape)
+        ouChercher=definitionEtape
+        for k in listeAvant : 
+            ouChercher=ouChercher.entites[k]
+        from Accas import A_SIMP
+        for mc in listeMC :
+            nomMC=mc[0]
+            typMC=mc[1]
+            argsMC=mc[2]
+            nouveauMC=A_SIMP.SIMP(typMC,**argsMC)
+            nouveauMC.nom=nomMC
+            args[nomMC]=nouveauMC
+        from Accas import A_FACT
+        nouveauFact=A_FACT.FACT(**args)
+        nouveauFact.pere=ouChercher
+        nouveauFact.nom=nomDuMC
+        from Editeur.autre_analyse_cata import traite_entite
+        traite_entite(nouveauFact,[])
+        ouChercher.entites[nomDuMC]=nouveauFact
+        ouChercher.ordre_mc.append(nomDuMC)
+        self.dicoNouveauxFact[nomDuMC]=('ajoutDefinitionMC',nomEtape,listeAvant,nomDuMC,listeMC,args)
         #print self.dicoNouveauxMC
 
+    #----------------------------------------------------#
+
     #----------------------------------------------------#
     def changeIntoMCandSet(self,etape,listeMC,into,valeurs):
     #----------------------------------------------------#
+    # dans le MDD et le JDC
 
         self.changeIntoDefMC(etape,listeMC,into)
 
@@ -1561,10 +1648,8 @@ class JDCEditor(Ui_baseWidget,QWidget):
             ouChercher=ouChercher.get_child(mot,restreint="oui")
             if ouChercher==None : return 
         MCFils=listeMC[-1]
-        print (MCFils)
         monMC=ouChercher.get_child(MCFils,restreint="oui")
         if monMC== None : monMC= etape.addentite(MCFils)
-        print (monMC)
 
         monMC.definition.into=into
         monMC.valeur=valeurs