self.liste_simp_reel=[]
self.ihm="QT"
self.dicoNouveauxMC={}
+ self.dicoNouveauxFact={}
nameConf='configuration_'+self.code
configuration=__import__(nameConf)
self.fileInfo = QFileInfo(self.fichier)
self.fileInfo.setCaching(0)
if jdc==None :
- #try :
+ try :
self.jdc = self.readFile(self.fichier)
- #except :
- # print ("mauvaise lecture")
+ except :
+ print ("mauvaise lecture")
else :
self.jdc=jdc
if self.jdc is not None and units is not None:
#return self.get_Dico()
+ #-------------------# Pour execution avec output et error dans le bash
+ def process_VP(self):
+ #-------------------#
+ if 'dicoImbrique' in generator.plugins:
+ self.generator=generator.plugins['dicoImbrique']()
+ jdc_formate=self.generator.gener(self.jdc)
+ dico=self.get_Dico() #generator.Dico
+ return dico
+
+
#--------------------------------#
def ajoutCommentaire(self):
#--------------------------------#
tr("Copie impossible"),
tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne"))
return
+ noeudOuColler=self.node_selected[0]
if len(self.QWParent.noeud_a_editer)!=1:
- self.handleEditPasteMultiple()
+ #self.handleEditPasteMultiple()
+ QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
return
- noeudOuColler=self.node_selected[0]
- pos='after'
- if noeudOuColler == self.tree.racine:
- indexNoeudOuColler=0
- pos='before'
- else :
- indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler)
- indexNoeudOuColler=self.getTreeIndex(noeudOuColler)
-
- try :
- noeudACopier=self.QWParent.noeud_a_editer[0]
- indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier)
- indexNoeudACopier=self.getTreeIndex(noeudACopier)
- except :
- QMessageBox.information( self, tr("Copie impossible"), tr("Aucun Objet n a ete copie ou coupe"))
- return
+ noeudACopier=self.QWParent.noeud_a_editer[0]
if (self.QWParent.edit != "couper"):
+ #print (noeudOuColler.item.parent.get_child(noeudOuColler.item.nom))
try:
if noeudOuColler == self.tree.racine :
child=noeudOuColler.doPastePremier(noeudACopier)
else :
- child=noeudACopier.doPaste(noeudOuColler,pos)
+ child=noeudACopier.doPaste(noeudOuColler,'after')
+
if child==None or child==0:
QMessageBox.critical( self,tr( "Copie refusee"),tr('Eficas n a pas reussi a copier l objet'))
self.message = ''
# si possible on renomme l objet comme le noeud couper
if (self.QWParent.edit == "couper"):
+ print ('je pass la')
if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor:
QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee '))
try :
jdc_formate=self.generator.gener(self.jdc,format=formatLigne,config=self.appliEficas.CONFIGURATION,appli=self.appliEficas)
if pourRun : jdc_formate=self.generator.textePourRun
+ if self.code == 'TELEMAC' : jdc_formate=self.generator.texteDico
except ValueError as e:
QMessageBox.critical(self, tr("Erreur a la generation"),str(e))
return
#------------#
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):
#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"):
#-----------------------------------------------------------------#
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")
#-------------------------------------#
def ajoutMC(self,etape,MCFils,valeurs,listeAvant=()):
#-------------------------------------#
+ # dans le JDC
ouChercher=etape
for mot in listeAvant :
ouChercher=ouChercher.get_child(mot,restreint="oui")
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:
+ 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")
+ 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
+ for e in self.jdc.etapes:
+ if e.nom == etape : ouChercher=e; break
+ if ouChercher==None : return
+
for mot in listeAvant :
ouChercher=ouChercher.get_child(mot,restreint="oui")
- if ouChercher ==None : print ('SOUCI'); return
+ if ouChercher==None : return
monMC=ouChercher.get_child(MCFils,restreint="oui")
if monMC== None : monMC= ouChercher.addentite(MCFils)
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
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
monMC.state='changed'
return 1
-
#-------------------------------------#
- def changeIntoDefMC(self,etape,listeMC,valeurs):
+ def changeDefautDefMC(self,nomEtape,listeMC,valeurs):
#-------------------------------------#
- definitionEtape=getattr(self.jdc.cata[0],etape)
+ # 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],nomEtape)
ouChercher=definitionEtape
if len(listeMC) > 1 :
ouChercher=mcfact
mcAccas=ouChercher.entites[listeMC[-1]]
+ mcAccas.defaut=valeurs
+ return 1
+
+ #------------------------------------------------#
+ def changeIntoDefMC(self,nomEtape,listeMC,valeurs):
+ #------------------------------------------------#
+ # dans le MDD
+ definitionEtape=getattr(self.jdc.cata[0],nomEtape)
+ ouChercher=definitionEtape
+
+ if len(listeMC) > 1 :
+ for mc in listeMC[0:-1]:
+ mcfact=ouChercher.entites[mc]
+ ouChercher=mcfact
+ mcAccas=ouChercher.entites[listeMC[-1]]
if hasattr(mcAccas,'into') : oldValeurs=mcAccas.into
else : oldValeurs=None
#-------------------------------------------------------------#
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:
+ if e.nom == etape : etape=e; break
+ if etape == None : return
definitionEtape=getattr(self.jdc.cata[0],etape)
ouChercher=definitionEtape
for k in listeAvant :
#-------------------------------------------------------------#
- def ajoutDefinitionMC(self,etape,listeAvant,nomDuMC,typ,**args):
+ def ajoutDefinitionMC(self,nomEtape,listeAvant,nomDuMC,typ,**args):
#-------------------------------------------------------------#
- 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]
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,MCFils,into,valeurs):
+
+ #----------------------------------------------------#
+ def changeIntoMCandSet(self,etape,listeMC,into,valeurs):
#----------------------------------------------------#
- monMC=etape.get_child(MCFils,restreint="oui")
+ # dans le MDD et le JDC
+
+ self.changeIntoDefMC(etape,listeMC,into)
+
+ if isinstance (etape, str):
+ for e in self.jdc.etapes:
+ if e.nom == etape : etape=e; break
+ if etape == None : return
+
+ ouChercher = etape
+ for mot in listeMC[:-1] :
+ ouChercher=ouChercher.get_child(mot,restreint="oui")
+ if ouChercher==None : return
+ MCFils=listeMC[-1]
+ monMC=ouChercher.get_child(MCFils,restreint="oui")
if monMC== None : monMC= etape.addentite(MCFils)
+
monMC.definition.into=into
monMC.valeur=valeurs
monMC.val=valeurs