X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=InterfaceQT4%2Feditor.py;h=4769c91583b7b33b5fbabd8675650f0988ad353f;hb=108e744248ce24d85a96ab83969cd337acf78408;hp=e3259a91ceaba03fff7c99679cf5ddaf81736d3f;hpb=e4f9ed44499c18435beb762c4deb1df9f1c8343a;p=tools%2Feficas.git diff --git a/InterfaceQT4/editor.py b/InterfaceQT4/editor.py index e3259a91..4769c915 100755 --- a/InterfaceQT4/editor.py +++ b/InterfaceQT4/editor.py @@ -20,8 +20,8 @@ from __future__ import absolute_import from __future__ import print_function try : - from builtins import str - from builtins import range + from builtins import str + from builtins import range except : pass import types,sys,os, re @@ -45,12 +45,12 @@ from InterfaceQT4 import browser from desBaseWidget import Ui_baseWidget from InterfaceQT4.monViewTexte import ViewText -from monWidgetCreeParam import MonWidgetCreeParam +from monWidgetCreeParam import MonWidgetCreeParam DictExtensions= {"MAP" : ".map", "TELEMAC" : '.cas'} debug = False - + from InterfaceQT4.editorSsIhm import JDCEditorSsIhm @@ -82,8 +82,8 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): JDCEditorSsIhm. __init__ (self,appliEficas,fichier, jdc,units,include) if self.jdc: - comploader.chargerComposants() - self.jdc_item=Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdc ) + comploader.chargerComposants() + self.jdc_item=Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdc ) # Particularites IHM : met la fenetre a jour @@ -102,7 +102,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): if self.maConfiguration.closeOptionnel : self.fermeOptionnel() if self.maConfiguration.boutonDsMenuBar : self.appliEficas.remplitIconesCommandes() - + self.formatFichierOut = self.appliEficas.formatFichierOut self.formatFichierIn = self.appliEficas.formatFichierIn @@ -120,11 +120,11 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): self.Commandes_Ordre_Catalogue =self.readercata.Commandes_Ordre_Catalogue if self.appliEficas.readercata.demandeCatalogue==True : - nomFichierTranslation='translatorFichier'+'_'+str(self.appliEficas.readercata.labelCode) - if hasattr(self.appliEficas.maConfiguration,nomFichierTranslation) : - translatorFichier=getattr(self.appliEficas.maConfiguration,nomFichierTranslation) - from Extensions import localisation - localisation.localise(None,self.appliEficas.langue,translatorFichier=translatorFichier) + nomFichierTranslation='translatorFichier'+'_'+str(self.appliEficas.readercata.labelCode) + if hasattr(self.appliEficas.maConfiguration,nomFichierTranslation) : + translatorFichier=getattr(self.appliEficas.maConfiguration,nomFichierTranslation) + from Extensions import localisation + localisation.localise(None,self.appliEficas.langue,translatorFichier=translatorFichier) if self.jdc_item and self.appliEficas.ssIhm==False : @@ -175,7 +175,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): # saveFileLegerAs # --------------------------------------------- -# Methodes Surchargees +# Methodes Surchargees # --------------------------------------------- #-----------------------------------------------------------------------# @@ -187,20 +187,20 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): #--------------------------------# def informe(self,titre,txt,critique=True): #--------------------------------# - if critique : - self.afficheInfos(tr(txt),Qt.red) - QMessageBox.critical( self, tr(titre), tr(txt)) - else : - QMessageBox.warning( self, tr(titre),tr(txt)) + if critique : + self.afficheInfos(tr(txt),Qt.red) + QMessageBox.critical( self, tr(titre), tr(txt)) + else : + QMessageBox.warning( self, tr(titre),tr(txt)) #--------------------------------# def ajoutCommentaire(self): #--------------------------------# if self.tree.selectedItems()==[] : - QMessageBox.warning( self, tr("Pas de noeud selectionne"),tr("Selectionnez un Noeud \nLe commentaire sera place apres le noeud selectionne")) - return + QMessageBox.warning( self, tr("Pas de noeud selectionne"),tr("Selectionnez un Noeud \nLe commentaire sera place apres le noeud selectionne")) + return noeudAvantCommentaire=self.tree.selectedItems()[0] - if noeudAvantCommentaire ==self.tree.racine : + if noeudAvantCommentaire ==self.tree.racine : self.tree.racine.appendChild("COMMENTAIRE",pos=0) return noeudAvantCommentaire.addComment(True) @@ -224,10 +224,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): self.monExe.closeWriteChannel() self.w.exec_() try: - commande="rm "+ nomFichier - os.system(commande) + commande="rm "+ nomFichier + os.system(commande) except : - pass + pass def readFromStdErr(self): a=self.monExe.readAllStandardError() @@ -237,7 +237,7 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): a=self.monExe.readAllStandardOutput() self.w.view.append(str(a.data())) - + #-----------------------# def gestionParam(self): #-----------------------# @@ -259,11 +259,11 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): #----------------------------------------------# if couleur=='red' : couleur = Qt.red if self.sb: - mapalette=self.sb.palette() - mapalette.setColor( QPalette.WindowText, couleur ) - self.sb.setPalette( mapalette ); - self.sb.showMessage(message,4000) - self.couleur=couleur + mapalette=self.sb.palette() + mapalette.setColor( QPalette.WindowText, couleur ) + self.sb.setPalette( mapalette ); + self.sb.showMessage(message,4000) + self.couleur=couleur #------------------------------# def afficheAlerte(self,titre,message): @@ -285,166 +285,166 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): #---------------------------------------# def chercheNoeudSelectionne(self,copie=1): #---------------------------------------# - """ - appele par Cut et Copy pour positionner self.node_selected - """ - self.node_selected=[] - if len(self.tree.selectedItems()) == 0 : return - self.node_selected=self.tree.selectedItems() + """ + appele par Cut et Copy pour positionner self.node_selected + """ + self.node_selected=[] + if len(self.tree.selectedItems()) == 0 : return + self.node_selected=self.tree.selectedItems() #---------------------# def handleSupprimer(self): #---------------------# - self.chercheNoeudSelectionne() - if len(self.node_selected) == 0 : return - self.QWParent.noeud_a_editer = [] - if self.node_selected[0]==self.tree.racine: return - if len(self.node_selected) == 1 : self.node_selected[0].delete() - else : self.node_selected[0].deleteMultiple(self.node_selected) + self.chercheNoeudSelectionne() + if len(self.node_selected) == 0 : return + self.QWParent.noeud_a_editer = [] + if self.node_selected[0]==self.tree.racine: return + if len(self.node_selected) == 1 : self.node_selected[0].delete() + else : self.node_selected[0].deleteMultiple(self.node_selected) #---------------------# def handleRechercher(self): #---------------------# - from .monRecherche import DRecherche - monRechercheDialg=DRecherche(parent=self,fl=0) - monRechercheDialg.show() + from .monRecherche import DRecherche + monRechercheDialg=DRecherche(parent=self,fl=0) + monRechercheDialg.show() #--------------------------------# def handleRechercherDsCatalogue(self): #-----------------------------# - from .monRechercheCatalogue import DRechercheCatalogue - monRechercheDialg=DRechercheCatalogue(self.QWParent,self) - monRechercheDialg.show() + from .monRechercheCatalogue import DRechercheCatalogue + monRechercheDialg=DRechercheCatalogue(self.QWParent,self) + monRechercheDialg.show() #---------------------# def handleDeplier(self): #---------------------# - if self.tree == None : return - #self.tree.collapseAll() - if self.deplier : - #print "je plie" - self.tree.expandItem(self.tree.topLevelItem(0)) - self.deplier = False - if self.fenetreCentraleAffichee != None : - if hasattr(self.fenetreCentraleAffichee.node,'plieToutEtReaffiche'): - self.fenetreCentraleAffichee.node.plieToutEtReaffiche() - else: - #print "je deplie" - self.tree.expandItem(self.tree.topLevelItem(0)) - self.deplier = True - if self.fenetreCentraleAffichee != None : - if hasattr(self.fenetreCentraleAffichee.node,'deplieToutEtReaffiche'): - self.fenetreCentraleAffichee.node.deplieToutEtReaffiche() + if self.tree == None : return + #self.tree.collapseAll() + if self.deplier : + #print "je plie" + self.tree.expandItem(self.tree.topLevelItem(0)) + self.deplier = False + if self.fenetreCentraleAffichee != None : + if hasattr(self.fenetreCentraleAffichee.node,'plieToutEtReaffiche'): + self.fenetreCentraleAffichee.node.plieToutEtReaffiche() + else: + #print "je deplie" + self.tree.expandItem(self.tree.topLevelItem(0)) + self.deplier = True + if self.fenetreCentraleAffichee != None : + if hasattr(self.fenetreCentraleAffichee.node,'deplieToutEtReaffiche'): + self.fenetreCentraleAffichee.node.deplieToutEtReaffiche() #---------------------# def handleEditCut(self): #---------------------# - """ - Stocke dans Eficas.noeud_a_editer le noeud a couper - """ - #print "handleEditCut" - self.chercheNoeudSelectionne() - self.QWParent.edit="couper" - self.QWParent.noeud_a_editer = self.node_selected + """ + Stocke dans Eficas.noeud_a_editer le noeud a couper + """ + #print "handleEditCut" + self.chercheNoeudSelectionne() + self.QWParent.edit="couper" + self.QWParent.noeud_a_editer = self.node_selected #-----------------------# def handleEditCopy(self): #-----------------------# - """ - Stocke dans Eficas.noeud_a_editer le noeud a copier - """ - self.chercheNoeudSelectionne() - if len(self.node_selected) == 0 : return - if len(self.node_selected) == 1 : self.node_selected[0].updateNodeLabelInBlue() - else : self.node_selected[0].updatePlusieursNodeLabelInBlue(self.node_selected) - self.QWParent.edit="copier" - self.QWParent.noeud_a_editer = self.node_selected + """ + Stocke dans Eficas.noeud_a_editer le noeud a copier + """ + self.chercheNoeudSelectionne() + if len(self.node_selected) == 0 : return + if len(self.node_selected) == 1 : self.node_selected[0].updateNodeLabelInBlue() + else : self.node_selected[0].updatePlusieursNodeLabelInBlue(self.node_selected) + self.QWParent.edit="copier" + self.QWParent.noeud_a_editer = self.node_selected #------------------------# def handleEditPaste(self): #------------------------# - """ - Lance la copie de l'objet place dans self.QWParent.noeud_a_editer - Ne permet que la copie d'objets de type Commande ou MCF - """ - self.chercheNoeudSelectionne() - if (not(hasattr(self.QWParent,'noeud_a_editer'))) or len(self.QWParent.noeud_a_editer)==0: - QMessageBox.information( self, - tr("Copie impossible"), - tr("Veuillez selectionner un objet a copier")) - return - if len(self.node_selected) != 1 : - QMessageBox.information( 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() - 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.getChild(noeudOuColler.item.nom)) - try: - if noeudOuColler == self.tree.racine : - child=noeudOuColler.doPastePremier(noeudACopier) - else : - 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 = '' - self.afficheInfos("Copie refusee",Qt.red) - if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor: - try : - nom=noeudACopier.item.sd.nom - child.item.nommeSd(nom) - except : - pass - return - self.initModif() - child.select() - except : - traceback.print_exc() - QMessageBox.critical( self,tr( "Copie refusee"),tr('Copie refusee pour ce type d objet')) - self.message = '' - self.afficheInfos("Copie refusee",Qt.red) - return - - # il faut declarer le JDCDisplay_courant modifie - # suppression eventuelle du noeud selectionne - # si possible on renomme l objet comme le noeud couper - - if (self.QWParent.edit == "couper"): - if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor: - QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee ')) - - #if 1: - try : - # indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier) - indexNoeudACopier=self.getTreeIndex(noeudACopier) - noeudACopier.treeParent.item.deplaceEntite(indexNoeudACopier,indexNoeudOuColler,pos) - noeudACopier.treeParent.buildChildren() - - #else: - except: - pass - self.QWParent.noeud_a_editer=[] + """ + Lance la copie de l'objet place dans self.QWParent.noeud_a_editer + Ne permet que la copie d'objets de type Commande ou MCF + """ + self.chercheNoeudSelectionne() + if (not(hasattr(self.QWParent,'noeud_a_editer'))) or len(self.QWParent.noeud_a_editer)==0: + QMessageBox.information( self, + tr("Copie impossible"), + tr("Veuillez selectionner un objet a copier")) + return + if len(self.node_selected) != 1 : + QMessageBox.information( self, + tr("Copie impossible"), + tr("Veuillez selectionner un seul objet : la copie se fera apres le noeud selectionne")) + return + noeudOuColler=self.node_selected[0] - # on rend la copie a nouveau possible en liberant le flag edit - self.QWParent.edit="copier" - noeudACopier.select() + if len(self.QWParent.noeud_a_editer)!=1: + #self.handleEditPasteMultiple() + 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.getChild(noeudOuColler.item.nom)) + try: + if noeudOuColler == self.tree.racine : + child=noeudOuColler.doPastePremier(noeudACopier) + else : + 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 = '' + self.afficheInfos("Copie refusee",Qt.red) + if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor: + try : + nom=noeudACopier.item.sd.nom + child.item.nommeSd(nom) + except : + pass + return + self.initModif() + child.select() + except : + traceback.print_exc() + QMessageBox.critical( self,tr( "Copie refusee"),tr('Copie refusee pour ce type d objet')) + self.message = '' + self.afficheInfos("Copie refusee",Qt.red) + return + + # il faut declarer le JDCDisplay_courant modifie + # suppression eventuelle du noeud selectionne + # si possible on renomme l objet comme le noeud couper + + if (self.QWParent.edit == "couper"): + if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor: + QMessageBox.critical( self, tr("Deplacement refuse"),tr('Deplacement refuse entre 2 fichiers. Seule la copie est autorisee ')) + + #if 1: + try : + # indexNoeudACopier=noeudACopier.treeParent.children.index(noeudACopier) + indexNoeudACopier=self.getTreeIndex(noeudACopier) + noeudACopier.treeParent.item.deplaceEntite(indexNoeudACopier,indexNoeudOuColler,pos) + noeudACopier.treeParent.buildChildren() + + #else: + except: + pass + self.QWParent.noeud_a_editer=[] + + # on rend la copie a nouveau possible en liberant le flag edit + self.QWParent.edit="copier" + noeudACopier.select() #----------------------------------# def handleDeplaceMultiple(self): #----------------------------------# - pass + pass #----------------------------------# def handleEditPasteMultiple(self): @@ -452,270 +452,270 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): # On ne garde que les niveaux "Etape" # On insere dans l'ordre du JDC - listeNoeudsACouper=[] - listeIndex=[] - listeChild=[] - listeItem=[] - from InterfaceQT4 import compojdc - noeudOuColler=self.node_selected[0] - if not (isinstance(noeudOuColler.treeParent, compojdc.Node)): - QMessageBox.information( self, - tr("Copie impossible a cet endroit",), - tr("Veuillez selectionner une commande, un parametre, un commentaire ou une macro")) - return - indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler) - - for noeud in self.QWParent.noeud_a_editer : - if not (isinstance(noeud.treeParent, compojdc.Node)): continue - indexInTree=noeud.treeParent.children.index(noeud) - indice = 0 + listeNoeudsACouper=[] + listeIndex=[] + listeChild=[] + listeItem=[] + from InterfaceQT4 import compojdc + noeudOuColler=self.node_selected[0] + if not (isinstance(noeudOuColler.treeParent, compojdc.Node)): + QMessageBox.information( self, + tr("Copie impossible a cet endroit",), + tr("Veuillez selectionner une commande, un parametre, un commentaire ou une macro")) + return + indexNoeudOuColler=noeudOuColler.treeParent.children.index(noeudOuColler) + + for noeud in self.QWParent.noeud_a_editer : + if not (isinstance(noeud.treeParent, compojdc.Node)): continue + indexInTree=noeud.treeParent.children.index(noeud) + indice = 0 + for index in listeIndex: + if index < indexInTree : indice = indice +1 + listeIndex.insert(indice, indexInTree) + listeNoeudsACouper.insert(indice, noeud) + + noeudJdc=noeudOuColler.treeParent + dejaCrees=0 + # on les cree a l'envers parcequ'on ajoute a NoeudOuColler + listeIndex.reverse() + for index in listeIndex: + indexTravail=index + if indexNoeudOuColler < index: + indexTravail=indexTravail+dejaCrees + noeudOuColler=noeudJdc.children[indexNoeudOuColler] + noeud=noeudJdc.children[indexTravail] + child=noeud.doPaste(noeudOuColler) + listeChild.append(child) + dejaCrees=dejaCrees+1 + + self.QWParent.noeud_a_editer = [] + for i in range(len(listeIndex)): + noeud=noeudJdc.children[indexNoeudOuColler+1+i] + self.QWParent.noeud_a_editer.append(noeud) + + listeASupprimer=[] + if self.QWParent.edit !="couper" : return + for index in listeIndex: - if index < indexInTree : indice = indice +1 - listeIndex.insert(indice, indexInTree) - listeNoeudsACouper.insert(indice, noeud) - - noeudJdc=noeudOuColler.treeParent - dejaCrees=0 - # on les cree a l'envers parcequ'on ajoute a NoeudOuColler - listeIndex.reverse() - for index in listeIndex: - indexTravail=index - if indexNoeudOuColler < index: - indexTravail=indexTravail+dejaCrees - noeudOuColler=noeudJdc.children[indexNoeudOuColler] - noeud=noeudJdc.children[indexTravail] - child=noeud.doPaste(noeudOuColler) - listeChild.append(child) - dejaCrees=dejaCrees+1 - - self.QWParent.noeud_a_editer = [] - for i in range(len(listeIndex)): - noeud=noeudJdc.children[indexNoeudOuColler+1+i] - self.QWParent.noeud_a_editer.append(noeud) - - listeASupprimer=[] - if self.QWParent.edit !="couper" : return - - for index in listeIndex: - indexTravail=index - if indexNoeudOuColler < index: - indexTravail=indexTravail+(len(listeIndex)) - noeud=noeudJdc.children[indexTravail] - - listeItem.append(noeud.item) - listeASupprimer.append(noeud) - - for i in range(len(listeChild)): - self.tree.item.suppItem(listeItem[i]) - listeChild[i].item.update(listeItem[i]) - - self.QWParent.noeud_a_editer = [] + indexTravail=index + if indexNoeudOuColler < index: + indexTravail=indexTravail+(len(listeIndex)) + noeud=noeudJdc.children[indexTravail] + + listeItem.append(noeud.item) + listeASupprimer.append(noeud) + + for i in range(len(listeChild)): + self.tree.item.suppItem(listeItem[i]) + listeChild[i].item.update(listeItem[i]) + + self.QWParent.noeud_a_editer = [] #----------------------------------# def handleAjoutEtape(self,nomEtape): #----------------------------------# - self.chercheNoeudSelectionne() - if len(self.node_selected) == 0 or self.node_selected[0] == self.tree.racine : - nodeOuAjouter=self.tree.racine - nouveau=nodeOuAjouter.appendChild(nomEtape,pos='first') - else : - nodeOuAjouter=self.node_selected[0] - if nodeOuAjouter != self.tree.racine : - while nodeOuAjouter.treeParent != self.tree.racine: - nodeOuAjouter=nodeOuAjouter.treeParent - nouveau=nodeOuAjouter.appendBrother(nomEtape) - try : - self.node_selected[0].setSelected(False) - except : pass - nouveau.setSelected(True) - nouveau.affichePanneau() + self.chercheNoeudSelectionne() + if len(self.node_selected) == 0 or self.node_selected[0] == self.tree.racine : + nodeOuAjouter=self.tree.racine + nouveau=nodeOuAjouter.appendChild(nomEtape,pos='first') + else : + nodeOuAjouter=self.node_selected[0] + if nodeOuAjouter != self.tree.racine : + while nodeOuAjouter.treeParent != self.tree.racine: + nodeOuAjouter=nodeOuAjouter.treeParent + nouveau=nodeOuAjouter.appendBrother(nomEtape) + try : + self.node_selected[0].setSelected(False) + except : pass + nouveau.setSelected(True) + nouveau.affichePanneau() #---------------------------# def getFileVariable(self) : #---------------------------# - titre = tr("Choix d'un fichier XML") - texte = tr("Le fichier contient une commande MODEL\n") - texte = texte+tr('Donnez le nom du fichier XML qui contient la description des variables') - QMessageBox.information( self, titre,tr(texte)) + titre = tr("Choix d'un fichier XML") + texte = tr("Le fichier contient une commande MODEL\n") + texte = texte+tr('Donnez le nom du fichier XML qui contient la description des variables') + QMessageBox.information( self, titre,tr(texte)) - fichier = QFileDialog.getOpenFileName(self.appliEficas, - tr('Ouvrir Fichier'), - self.appliEficas.maConfiguration.savedir, - tr('Wrapper Files (*.xml);;''All Files (*)')) - return fichier + fichier = QFileDialog.getOpenFileName(self.appliEficas, + tr('Ouvrir Fichier'), + self.appliEficas.maConfiguration.savedir, + tr('Wrapper Files (*.xml);;''All Files (*)')) + return fichier #------------# def run(self): #------------# - fonction="run"+self.code - if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,) + fonction="run"+self.code + 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,) + fonction="saveRun"+self.code + if fonction in JDCEditor.__dict__: JDCEditor.__dict__[fonction](self,) # --------------------------------------------- -# Methodes Non Crees dans ssIHM +# Methodes Non Crees dans ssIHM # --------------------------------------------- #---------------# def runVP(self): #---------------# - texte=self.getTextJDC("MAPVp",pourRun=1) - print (texte) + texte=self.getTextJDC("MAPVp",pourRun=1) + print (texte) #---------------# def runMAP(self): #---------------# - if not(self.jdc.isValid()): - QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution MAP")) - return - if len(self.jdc.etapes) != 1 : - QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant")) - return - if self.modified or self.fichier==None : - self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map") - texte=self.getTextJDC("MAP") - self.writeFile( self.fichierMapInput, txt = texte) - else : - self.fichierMapInput=self.fichier - composant=self.jdc.etapes[0].nom.lower()[0:-5] - - - # :TRICKY: to determine if a component requires SALOME, loads the component from Eficas catalog - # then instantiate corresponding class and call getUseSalome() method - try: - from mapengine.spec import factory - mapComponent = factory.new(composant)[0] - - command = "map" - if mapComponent.getUseSalome(): - command += " -r sappli" - textePython=(command + " run -n "+composant +" -i "+self.fichierMapInput) - - #textePython="ls -l" - self._viewTextExecute( textePython,"map_run",".sh") - #try: - # commande="rm "+self.fichierMapInput - # os.system(commande) - #except : - # pass - except Exception as e: - print((traceback.print_exc())) + if not(self.jdc.isValid()): + QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution MAP")) + return + if len(self.jdc.etapes) != 1 : + QMessageBox.critical( self, tr("Execution impossible "),tr("le JDC doit contenir un et un seul composant")) + return + if self.modified or self.fichier==None : + self.fichierMapInput = self.__generateTempFilename(prefix = "map_run", suffix = ".map") + texte=self.getTextJDC("MAP") + self.writeFile( self.fichierMapInput, txt = texte) + else : + self.fichierMapInput=self.fichier + composant=self.jdc.etapes[0].nom.lower()[0:-5] + + + # :TRICKY: to determine if a component requires SALOME, loads the component from Eficas catalog + # then instantiate corresponding class and call getUseSalome() method + try: + from mapengine.spec import factory + mapComponent = factory.new(composant)[0] + + command = "map" + if mapComponent.getUseSalome(): + command += " -r sappli" + textePython=(command + " run -n "+composant +" -i "+self.fichierMapInput) + + #textePython="ls -l" + self._viewTextExecute( textePython,"map_run",".sh") + #try: + # commande="rm "+self.fichierMapInput + # os.system(commande) + #except : + # pass + except Exception as e: + print((traceback.print_exc())) #-------------------# def runZCRACKS(self): #-------------------# - if not(self.jdc.isValid()): - QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution ")) - return - if self.modified or self.fichier==None : - #if 1: - self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p") - texte=self.getTextJDC("ZCRACKS",pourRun=1) - self.writeFile( self.fichierZcracksInput, txt = texte) - else : - self.fichierZcracksInput=self.fichier - try : - #commande ="Zrun -zp " - commande="more " - textePython=(commande + self.fichierZcracksInput) - self._viewTextExecute( textePython,"run_zcracks",".sh") - except Exception as e: - print((traceback.print_exc())) + if not(self.jdc.isValid()): + QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution ")) + return + if self.modified or self.fichier==None : + #if 1: + self.fichierZcracksInput = self.__generateTempFilename(prefix = "zcracks_run", suffix = ".z7p") + texte=self.getTextJDC("ZCRACKS",pourRun=1) + self.writeFile( self.fichierZcracksInput, txt = texte) + else : + self.fichierZcracksInput=self.fichier + try : + #commande ="Zrun -zp " + commande="more " + textePython=(commande + self.fichierZcracksInput) + self._viewTextExecute( textePython,"run_zcracks",".sh") + except Exception as e: + print((traceback.print_exc())) #-------------------# def runCARMELCND(self): #-------------------# - #if not(self.jdc.isValid()): - # QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution ")) - # return - if self.modified or self.fichier==None : - QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution ")) - return - if not hasattr(self,'generator'): texte=self.getTextJDC(self.formatFichierOut) - from PrepareRunCarmel import prepareRunCarmel - fichierGenerique=os.path.basename(self.fichier).split(".")[0] - repMed=os.path.dirname(self.fichier) - repExeCarmel=self.generator.get_repExeCarmel() - textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique) - nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh") - f=open(nomFichier,'w') - f.write(textePython) - f.close() - commande="xterm -e sh "+nomFichier +"\n" - os.system(commande) + #if not(self.jdc.isValid()): + # QMessageBox.critical( self, tr( "Execution impossible "),tr("le JDC doit etre valide pour une execution ")) + # return + if self.modified or self.fichier==None : + QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution ")) + return + if not hasattr(self,'generator'): texte=self.getTextJDC(self.formatFichierOut) + from PrepareRunCarmel import prepareRunCarmel + fichierGenerique=os.path.basename(self.fichier).split(".")[0] + repMed=os.path.dirname(self.fichier) + repExeCarmel=self.generator.get_repExeCarmel() + textePython=prepareRunCarmel(repExeCarmel,repMed,fichierGenerique) + nomFichier = self.__generateTempFilename("carmel_run", suffix = ".sh") + f=open(nomFichier,'w') + f.write(textePython) + f.close() + commande="xterm -e sh "+nomFichier +"\n" + os.system(commande) #-------------------# def runCarmelCS(self): #-------------------# - try : - commande="runSession pilotyacsCS.py" - os.system(commande) - except Exception as e: - print((traceback.print_exc())) + try : + commande="runSession pilotyacsCS.py" + os.system(commande) + except Exception as e: + print((traceback.print_exc())) #-----------------------------------------------------# def determineNomFichier(self,path,extension): #-----------------------------------------------------# - if self.appliEficas.code in DictExtensions: - chaine1=DictExtensions[self.appliEficas.code]+" (*."+DictExtensions[self.appliEficas.code]+");;" - extensions= tr(chaine1+ "All Files (*)") - else : - extensions= tr("JDC (*.comm);;" "All Files (*)") - - if self.appliEficas.code == "MAP" : - extensions = extensions + ";; Run (*.input);;" - - fn = QFileDialog.getSaveFileName( self, - tr("sauvegarde"), path, - extensions,None, - QFileDialog.DontConfirmOverwrite) - if fn == None : return (0, None) - fn=fn[0] - if fn=='': return (0, None) - - ext = QFileInfo(fn).suffix() - if ext == '': fn+=extension - - if QFileInfo(fn).exists(): - msgBox = QMessageBox(self) - msgBox.setWindowTitle(tr("Sauvegarde du Fichier")) - msgBox.setText(tr("Le fichier")+ " "+str(fn)+ " " +tr("existe deja")) - msgBox.addButton(tr("&Ecraser"),0) - msgBox.addButton(tr("&Abandonner"),1) - abort=msgBox.exec_() - if abort == 1 : return (0, "") - return (1,fn) + if self.appliEficas.code in DictExtensions: + chaine1=DictExtensions[self.appliEficas.code]+" (*."+DictExtensions[self.appliEficas.code]+");;" + extensions= tr(chaine1+ "All Files (*)") + else : + extensions= tr("JDC (*.comm);;" "All Files (*)") + + if self.appliEficas.code == "MAP" : + extensions = extensions + ";; Run (*.input);;" + + fn = QFileDialog.getSaveFileName( self, + tr("sauvegarde"), path, + extensions,None, + QFileDialog.DontConfirmOverwrite) + if fn == None : return (0, None) + fn=fn[0] + if fn=='': return (0, None) + + ext = QFileInfo(fn).suffix() + if ext == '': fn+=extension + + if QFileInfo(fn).exists(): + msgBox = QMessageBox(self) + msgBox.setWindowTitle(tr("Sauvegarde du Fichier")) + msgBox.setText(tr("Le fichier")+ " "+str(fn)+ " " +tr("existe deja")) + msgBox.addButton(tr("&Ecraser"),0) + msgBox.addButton(tr("&Abandonner"),1) + abort=msgBox.exec_() + if abort == 1 : return (0, "") + return (1,fn) #-----------------# def saveRunMAP(self): #-----------------# extension=".input" if not(self.jdc.isValid()): - QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "), - tr("Un JdC valide est necessaire pour creer un .input") - ) - return + QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "), + tr("Un JdC valide est necessaire pour creer un .input") + ) + return try : - composant=self.jdc.etapes[0].nom.lower()[0:-5] + composant=self.jdc.etapes[0].nom.lower()[0:-5] except : - QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "), - tr("Choix du composant obligatoire") - ) - return + QMessageBox.critical( self, tr( "Sauvegarde de l'input impossible "), + tr("Choix du composant obligatoire") + ) + return if hasattr(self.maConfiguration, "savedir"): path=self.maConfiguration.savedir else : path='C:/' monNomFichier="" if self.fichier is not None and self.fichier != "" : - maBase=str(QFileInfo(self.fichier).baseName())+".input" - monPath=str(QFileInfo(self.fichier).absolutePath()) - monNomFichier=os.path.join(monPath,maBase) + maBase=str(QFileInfo(self.fichier).baseName())+".input" + monPath=str(QFileInfo(self.fichier).absolutePath()) + monNomFichier=os.path.join(monPath,maBase) elif hasattr(self,'monNomFichierInput'): monNomFichier=self.monNomFichierInput @@ -726,10 +726,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): for c in monDialog.children(): if isinstance(c,QDialogButtonBox): - for b in c.children(): - if isinstance(b,QPushButton): - avant=b.text() - if avant=="&Open": b.setText("Save") + for b in c.children(): + if isinstance(b,QPushButton): + avant=b.text() + if avant=="&Open": b.setText("Save") mesFiltres= "input Map (*.input);;All Files (*)" monDialog.setNameFilters(mesFiltres) if monNomFichier!="" : monDialog.selectFile(monNomFichier) @@ -764,13 +764,13 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): #-----------------------------------------# try : #if 1: - from ajoutGroupe import handleAjoutGroupFiltre - #print listeGroup - handleAjoutGroupFiltre(self,listeGroup) - #print "apres handleAjoutGroupFiltre" + from ajoutGroupe import handleAjoutGroupFiltre + #print listeGroup + handleAjoutGroupFiltre(self,listeGroup) + #print "apres handleAjoutGroupFiltre" except : #else : - pass + pass #-----------------------------------------------------------------# @@ -781,15 +781,15 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): #saveas=True # Pour forcer le nom self.generator=self.maConfiguration.mesGenerators.plugins[self.formatFichierOut]() if self.fichierComplet is None or saveas: - if path is None: path=self.maConfiguration.savedir - bOK, fn=self.determineNomFichier(path,extension) - if bOK == 0 : return (0, None) - if fn == None : return (0, None) - if fn== '' : return (0, None) + if path is None: path=self.maConfiguration.savedir + bOK, fn=self.determineNomFichier(path,extension) + if bOK == 0 : return (0, None) + if fn == None : return (0, None) + if fn== '' : return (0, None) - ulfile = os.path.abspath(fn) - self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0] - fn = QDir.toNativeSeparators(fn) + ulfile = os.path.abspath(fn) + self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0] + fn = QDir.toNativeSeparators(fn) self.fichierComplet = os.path.splitext(fn)[0]+extension @@ -819,43 +819,43 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): return (0, None) # do nothing if text wasn't changed if self.appliEficas.code in DictExtensions : - extension=DictExtensions[self.appliEficas.code] + extension=DictExtensions[self.appliEficas.code] else : - extension='.comm' + extension='.comm' newName = None fn = self.fichier if self.fichier is None or saveas: - if path is None: path=self.maConfiguration.savedir - bOK, fn=self.determineNomFichier(path,extension) - if bOK == 0 : return (0, None) - if fn == None : return (0, None) - if fn== '' : return (0, None) + if path is None: path=self.maConfiguration.savedir + bOK, fn=self.determineNomFichier(path,extension) + if bOK == 0 : return (0, None) + if fn == None : return (0, None) + if fn== '' : return (0, None) - ulfile = os.path.abspath(fn) - self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0] - fn = QDir.toNativeSeparators(fn) - newName = fn + ulfile = os.path.abspath(fn) + self.appliEficas.maConfiguration.savedir=os.path.split(ulfile)[0] + fn = QDir.toNativeSeparators(fn) + newName = fn if not (self.writeFile(fn,formatLigne=formatLigne)): return (0, None) self.fichier = fn self.modified = False if self.fileInfo is None or saveas: - self.fileInfo = QFileInfo(self.fichier) - self.fileInfo.setCaching(0) + self.fileInfo = QFileInfo(self.fichier) + self.fileInfo.setCaching(0) self.lastModified = self.fileInfo.lastModified() if newName is not None: - self.appliEficas.addToRecentList(newName) - self.tree.racine.item.getObject().nom=os.path.basename(newName) - self.tree.racine.updateNodeLabel() + self.appliEficas.addToRecentList(newName) + self.tree.racine.item.getObject().nom=os.path.basename(newName) + self.tree.racine.updateNodeLabel() + - if self.jdc.cata.modeleMetier:self.jdc.toXml(self.fichier) if self.jdc.cata.modeleMetier and self.jdc.isValid(): if self.generator != self.XMLgenerator : - self.XMLgenerator.gener(self.jdc) - self.XMLgenerator.writeDefault(fn) + self.XMLgenerator.gener(self.jdc) + self.XMLgenerator.writeDefault(fn) if self.jdc.isValid() != 0 and hasattr(self.generator, "writeDefault"): #if hasattr(self.generator, "writeDefault"): @@ -869,14 +869,14 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): msgBox.addButton(tr("&Annuler"),2) res=msgBox.exec_() if res == 0 : - self.generator.writeDefault(fn) - return (1, self.fichier) + self.generator.writeDefault(fn) + return (1, self.fichier) if res == 2 : return (0, None) if self.appliEficas.salome : self.appliEficas.close() else : sys.exit(1) if self.salome : - self.appliEficas.addJdcInSalome( self.fichier) + self.appliEficas.addJdcInSalome( self.fichier) self.modified = 0 nouveauTitre=self.titre+" "+str(os.path.basename(self.fichier)) self.appliEficas.setWindowTitle(nouveauTitre) @@ -902,8 +902,8 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): the name of the saved file """ if fileName != None : - self.fichier = fileName - return self.saveFile() + self.fichier = fileName + return self.saveFile() return self.saveFile(path,1,"beautifie") @@ -957,10 +957,10 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): CONTEXT.setCurrentStep(etape) etape.buildIncludeEtape(texte) if not (etape.text_included_converted) : - QMessageBox.information( self, - tr("Impossible d importer le texte"), - etape.text_included_error) - + QMessageBox.information( self, + tr("Impossible d importer le texte"), + etape.text_included_error) + self.tree.racine.buildChildren() #-----------------------------------# @@ -969,16 +969,16 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): # ajoute une etape de JdC a partir d un texte monItem=itemApres etape=monItem.item.object - + CONTEXT.setCurrentStep(etape) try : - ok=etape.buildIncludeEtape(texte) + ok=etape.buildIncludeEtape(texte) except : - ok=0 + ok=0 if not ok : - QMessageBox.information( self, - tr("Import texte"), - tr("Impossible d importer le texte")) + QMessageBox.information( self, + tr("Import texte"), + tr("Impossible d importer le texte")) self.tree.racine.buildChildren() return ok @@ -988,13 +988,13 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): # ajoute une etape de JdC a partir d un texte CONTEXT.setCurrentStep(etape) try : - ok=etape.buildIncludeEtape(texte,doitEtreValide=0) + ok=etape.buildIncludeEtape(texte,doitEtreValide=0) except : - ok=0 + ok=0 if not ok : - QMessageBox.information( self, - tr("Import texte"), - tr("Impossible d importer le texte")) + QMessageBox.information( self, + tr("Import texte"), + tr("Impossible d importer le texte")) self.tree.racine.buildChildren() return ok @@ -1009,197 +1009,197 @@ class JDCEditor(JDCEditorSsIhm,Ui_baseWidget,QWidget): #----------------------------------------- def initSplitterSizes(self, nbWidget=3): #----------------------------------------- - #print ("je passe ds initSplitterSizes", nbWidget) + #print ("je passe ds initSplitterSizes", nbWidget) - if self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes3=[1,1550,300] - #elif self.code in [ 'MAP'] : self.splitterSizes3=[700,300] - else : self.splitterSizes3=[150,1000,300] + if self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes3=[1,1550,300] + #elif self.code in [ 'MAP'] : self.splitterSizes3=[700,300] + else : self.splitterSizes3=[150,1000,300] - if self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes2=[5,1500] - else : self.splitterSizes2=[300,1000] + if self.code in [ 'Adao', 'ADAO','MAP' ] : self.splitterSizes2=[5,1500] + else : self.splitterSizes2=[300,1000] #----------------------------------------- def restoreSplitterSizes(self,nbWidget=3): #---------------------------------------- - - #traceback.print_stack() - #print ("je passe ds restoreSplitterSizes") - if not(hasattr(self,'splitter')) : return - if nbWidget==2 : newSizes=self.splitterSizes2 - if nbWidget==3 : newSizes=self.splitterSizes3 - #self.inhibeSplitter = 1 - #print (newSizes) - self.splitter.setSizes(newSizes) - #self.inhibeSplitter = 0 - QApplication.processEvents() - # seule la fentetre du milieu est necessaire - self.splitter.widget(1).resizeEvent=self.saveSplitterSizes - + + #traceback.print_stack() + #print ("je passe ds restoreSplitterSizes") + if not(hasattr(self,'splitter')) : return + if nbWidget==2 : newSizes=self.splitterSizes2 + if nbWidget==3 : newSizes=self.splitterSizes3 + #self.inhibeSplitter = 1 + #print (newSizes) + self.splitter.setSizes(newSizes) + #self.inhibeSplitter = 0 + QApplication.processEvents() + # seule la fentetre du milieu est necessaire + self.splitter.widget(1).resizeEvent=self.saveSplitterSizes + #----------------------------------------- def saveSplitterSizes(self,event): #----------------------------------------- - #print ("je passe ds saveSplitterSizes") - if self.inhibeSplitter : return - if self.widgetOptionnel == None : self.splitterSizes2 = self.splitter.sizes()[0:2] - else : self.splitterSizes3 = self.splitter.sizes()[0:3] + #print ("je passe ds saveSplitterSizes") + if self.inhibeSplitter : return + if self.widgetOptionnel == None : self.splitterSizes2 = self.splitter.sizes()[0:2] + else : self.splitterSizes3 = self.splitter.sizes()[0:3] #------------------------ def fermeOptionnel(self): #------------------------ - if self.widgetOptionnel == None : return + if self.widgetOptionnel == None : return - self.inhibeSplitter=1 - self.widgetOptionnel.setParent(None) - self.widgetOptionnel.close() - self.widgetOptionnel.deleteLater() - self.widgetOptionnel=None - self.inhibeSplitter=0 - self.restoreSplitterSizes(2) + self.inhibeSplitter=1 + self.widgetOptionnel.setParent(None) + self.widgetOptionnel.close() + self.widgetOptionnel.deleteLater() + self.widgetOptionnel=None + self.inhibeSplitter=0 + self.restoreSplitterSizes(2) #------------------------ def ajoutOptionnel(self): #------------------------ - #if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel) - #else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres - #self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2] - - self.restoreSplitterSizes(3) + #if len(self.splitterSizes) == 2 : self.splitterSizes.append(self.oldSizeWidgetOptionnel) + #else : self.splitterSizes[2] = self.oldSizeWidgetOptionnel # ceinture pour les close bizarres + #self.splitterSizes[1] = self.splitterSizes[1] - self.splitterSizes[2] + + self.restoreSplitterSizes(3) #------------------------ def fermeArbre(self): #------------------------ - #print (self.widgetTree) - self.oldWidgetTree=self.widgetTree - self.widgetTree.hide() - #self.widgetTree=None + #print (self.widgetTree) + self.oldWidgetTree=self.widgetTree + self.widgetTree.hide() + #self.widgetTree=None #------------------------ def ouvreArbre(self): #------------------------ - #print ('je passe la') - #print (self.widgetTree) - #self.widgetTree=self.oldWidgetTree - self.widgetTree.show() - #self.restoreSplitterSizes(3) + #print ('je passe la') + #print (self.widgetTree) + #self.widgetTree=self.oldWidgetTree + self.widgetTree.show() + #self.restoreSplitterSizes(3) #----------------------- def getEtapeCourante(self) : #----------------------- - if len(self.tree.selectedItems()) != 1 : return None - etape=self.tree.selectedItems()[0].item.object.getEtape() - return etape + if len(self.tree.selectedItems()) != 1 : return None + etape=self.tree.selectedItems()[0].item.object.getEtape() + return etape #----------------------------- def getTreeIndex(self,noeud): #---------------------------- - indexNoeud=-1 - if noeud in noeud.treeParent.children : - indexNoeud=noeud.treeParent.children.index(noeud) - else : - if hasattr(noeud,'vraiParent') : - noeudVrai = noeud - noeudVraiParent = noeud.vraiParent - while noeudVraiParent != noeud.treeParent and hasattr(noeudVraiParent,'vraiParent') : - noeudVrai = noeudVraiParent - noeudVraiParent = noeudVraiParent.vraiParent - pass - if noeudVraiParent == noeud.treeParent : - indexNoeud=noeud.treeParent.children.index(noeudVrai) - pass - pass - pass - return indexNoeud + indexNoeud=-1 + if noeud in noeud.treeParent.children : + indexNoeud=noeud.treeParent.children.index(noeud) + else : + if hasattr(noeud,'vraiParent') : + noeudVrai = noeud + noeudVraiParent = noeud.vraiParent + while noeudVraiParent != noeud.treeParent and hasattr(noeudVraiParent,'vraiParent') : + noeudVrai = noeudVraiParent + noeudVraiParent = noeudVraiParent.vraiParent + pass + if noeudVraiParent == noeud.treeParent : + indexNoeud=noeud.treeParent.children.index(noeudVrai) + pass + pass + pass + return indexNoeud #-------------------# Pour execution avec output et error dans le bash def runPSEN(self): #-------------------# - - #if self.modified or self.fichier==None : self.saveFile() - self.saveFile() - - #lancement avec le .bat - path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN')) - WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py') - import subprocess - p = subprocess.Popen(['python',WrapperFilePath]) - (out,err)=p.communicate() - print (out) - print (err) + + #if self.modified or self.fichier==None : self.saveFile() + self.saveFile() + + #lancement avec le .bat + path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN')) + WrapperFilePath = os.path.join(path1, 'PSSEWrapper.py') + import subprocess + p = subprocess.Popen(['python',WrapperFilePath]) + (out,err)=p.communicate() + print (out) + print (err) #-------------------# Pour execution avec output et error dans le bash def runPSEN_N1(self): #-------------------# - - - self.saveFile() - path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs')) - sys.path.append(path1) - - if not(self.jdc.isValid()): - QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored")) - if 'dicoImbrique' in generator.plugins: - self.generator=generator.plugins['dicoImbrique']() - jdc_formate=self.generator.gener(self.jdc) - dico=self.generator.Dico - - ###to delete - #fileDico = r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py' - fileDico = os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py' - f = open( str(fileDico), 'w') - f.write("Dico =" + str(dico) ) - f.close() - ### - - - print ('in runPSEN_N1', dico) - print (dico) - from Run import run - run(dico) - #res,txt_exception=run(dico) - #if res : QMessageBox.information( self, tr("fin de script run"), txt_exception) - #else : QMessageBox.critical( self, tr("Erreur fatale script run"), txt_exception) - + + + self.saveFile() + path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs')) + sys.path.append(path1) + + if not(self.jdc.isValid()): + QMessageBox.information( self, tr( "Unvalid JDC"),tr("incorrect keywords will be ignored")) + if 'dicoImbrique' in generator.plugins: + self.generator=generator.plugins['dicoImbrique']() + jdc_formate=self.generator.gener(self.jdc) + dico=self.generator.Dico + + ###to delete + #fileDico = r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py' + fileDico = os.path.join(path1, 'dicoN1.py') #r'C:\Logiciels DER\PSEN_V16\Code\ProcessOutputs_Eficas\TreatOutputs\dicoN1.py' + f = open( str(fileDico), 'w') + f.write("Dico =" + str(dico) ) + f.close() + ### + + + print ('in runPSEN_N1', dico) + print (dico) + from Run import run + run(dico) + #res,txt_exception=run(dico) + #if res : QMessageBox.information( self, tr("fin de script run"), txt_exception) + #else : QMessageBox.critical( self, tr("Erreur fatale script run"), txt_exception) + #-------------------# Pour execution avec output et error dans le bash def process_N1(self): #-------------------# - path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs')) - sys.path.append(path1) + path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','ProcessOutputs_Eficas','TreatOutputs')) + sys.path.append(path1) - if 'dicoImbrique' in generator.plugins: - self.generator=generator.plugins['dicoImbrique']() - jdc_formate=self.generator.gener(self.jdc) - dico=self.getDico() #generator.Dico + if 'dicoImbrique' in generator.plugins: + self.generator=generator.plugins['dicoImbrique']() + jdc_formate=self.generator.gener(self.jdc) + dico=self.getDico() #generator.Dico - for k in dico['CONTINGENCY_PROCESSING']: - #print (k) - if k[0:19] == 'Component_List_For_' or k[0:21] =='Contingency_List_For_' : - newK=k.replace('__',' ') - l="'"+str(newK)+"'" - dico['CONTINGENCY_PROCESSING'][l]=dico['CONTINGENCY_PROCESSING'][k] - del dico['CONTINGENCY_PROCESSING'][k] + for k in dico['CONTINGENCY_PROCESSING']: + #print (k) + if k[0:19] == 'Component_List_For_' or k[0:21] =='Contingency_List_For_' : + newK=k.replace('__',' ') + l="'"+str(newK)+"'" + dico['CONTINGENCY_PROCESSING'][l]=dico['CONTINGENCY_PROCESSING'][k] + del dico['CONTINGENCY_PROCESSING'][k] - ###to delete - fileDico = os.path.join(path1, 'dicoN1_process.py') - f = open( str(fileDico), 'w') - f.write("Dico =" + str(dico) ) - f.close() - ### - return dico + ###to delete + fileDico = os.path.join(path1, 'dicoN1_process.py') + f = open( str(fileDico), 'w') + f.write("Dico =" + str(dico) ) + f.close() + ### + return dico #return self.getDico() #-------------------# 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.getDico() #generator.Dico - return dico + if 'dicoImbrique' in generator.plugins: + self.generator=generator.plugins['dicoImbrique']() + jdc_formate=self.generator.gener(self.jdc) + dico=self.getDico() #generator.Dico + return dico if __name__ == "__main__": print ('in main')