X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2Feditor.py;h=ed534c90ba357b6457e7fbfaff9e8e7ad7cdb3be;hb=9bf98fc1cb51814c31679120598dc309e0802e31;hp=e1d6f68f1987087d7190bf431076a14c633d55b0;hpb=9f4ff7ed9afd87c96e11d61e442e39e5511f60d1;p=tools%2Feficas.git diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index e1d6f68f..ed534c90 100755 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -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) @@ -191,10 +192,10 @@ class JDCEditor(Ui_baseWidget,QWidget): 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: @@ -319,6 +320,16 @@ class JDCEditor(Ui_baseWidget,QWidget): #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): #--------------------------------# @@ -725,34 +736,23 @@ class JDCEditor(Ui_baseWidget,QWidget): 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 = '' @@ -778,6 +778,7 @@ class JDCEditor(Ui_baseWidget,QWidget): # 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 ')) @@ -935,6 +936,7 @@ class JDCEditor(Ui_baseWidget,QWidget): 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 @@ -970,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): @@ -1202,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"): #-----------------------------------------------------------------# @@ -1359,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") @@ -1388,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") @@ -1398,13 +1422,69 @@ 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: + 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) @@ -1414,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 @@ -1429,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 @@ -1440,11 +1521,16 @@ class JDCEditor(Ui_baseWidget,QWidget): 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 : @@ -1453,6 +1539,21 @@ class JDCEditor(Ui_baseWidget,QWidget): 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 @@ -1466,7 +1567,12 @@ 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: + if e.nom == etape : etape=e; break + if etape == None : return definitionEtape=getattr(self.jdc.cata[0],etape) ouChercher=definitionEtape for k in listeAvant : @@ -1478,9 +1584,10 @@ class JDCEditor(Ui_baseWidget,QWidget): #-------------------------------------------------------------# - 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] @@ -1488,17 +1595,62 @@ 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,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