# -*- coding: utf-8 -*-
-# Copyright (C) 2007-2015 EDF R&D
+# Copyright (C) 2007-2013 EDF R&D
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import time
+import pdb
from datetime import date
from Extensions.i18n import tr
from Editeur import comploader
from Editeur import Objecttreeitem
from desBaseWidget import Ui_baseWidget
-from monViewTexte import ViewText
-from monWidgetCreeParam import MonWidgetCreeParam
+from monViewTexte import ViewText
+from monViewTexte import ViewText2
+from monWidgetCreeParam import MonWidgetCreeParam
import browser
import readercata
def __init__ (self,appli,fichier = None, jdc = None, QWParent=None, units = None, include=0 , vm=None):
#----------------------------------------------------------------------------------------------------------#
- self.a=0
QtGui.QWidget.__init__(self,None)
self.setupUi(self)
- self.monOptionnel=None
+ self.widgetOptionnel=None
self.fenetreCentraleAffichee=None
self.dejaDansPlieTout=False
self.afficheCommandesPliees = True
self.vm = vm
self.fichier = fichier
self.jdc = jdc
- self.first = True
+ self.first = True
self.QWParent = QWParent
-
+
if appli != None :
self.salome = self.appliEficas.salome
else :
self.code = self.appliEficas.CONFIGURATION.code
self.mode_nouv_commande=self.appliEficas.CONFIGURATION.mode_nouv_commande
self.affiche=self.appliEficas.CONFIGURATION.affiche
+ #if self.code in ['MAP','CARMELCND','PSEN'] : self.afficheCommandesPliees=False
if self.code in ['MAP','CARMELCND'] : self.afficheCommandesPliees=False
- if self.code in ['MAP',] :
+ if self.code in ['MAP',] :
self.widgetTree.close()
self.widgetTree=None
self.appliEficas.resize(1440,self.appliEficas.height())
if self.readercata.fic_cata == None : return #Sortie Salome
self.titre=self.readercata.titre
self.Ordre_Des_Commandes=self.readercata.Ordre_Des_Commandes
+ self.Classement_Commandes_Ds_Arbre=self.readercata.Classement_Commandes_Ds_Arbre
self.format = self.appliEficas.format_fichier
jdc_item=Objecttreeitem.make_objecttreeitem( self, "nom", self.jdc )
if (not self.jdc.isvalid()) and (not self.nouveau) and (self.appliEficas.ssIhm == False):
self.viewJdcRapport()
-
- # if self.code=="TELEMAC" : print "kkkkkkkk"
+
if jdc_item:
self.tree = browser.JDCTree( jdc_item, self )
self.appliEficas.construitMenu()
+ #-------------------# Pour execution avec output sans une fenetre EFICAS. (erreurs encore dans la fenetre bash)
+ def runPSEN_2(self):
+ #-------------------#
+ if self.modified or self.fichier==None :
+ QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
+ return
+
+ #monPython="/home/A96028/salome75/prerequisites/install/Python-273-tcl8513-tk8513/bin/python"
+ #monWrapper="/local00/home/A96028/GitEficasTravail/eficas/PSEN_Eficas/PSSEWrapper.py"
+ path1 = os.path.abspath(os.path.join(os.path.abspath(__file__), '../','../','PSEN_Eficas','PSEN'))
+ monWrapper = os.path.join(path1, 'PSSEWrapper.py')
+ cmd=['python',monWrapper]
+
+ w = ViewText2( self.QWParent, cmd )
+ w.setWindowTitle( "execution" )
+ w.exec_()
+
+
+ #-------------------# Pour execution avec output et error dans le bash
+ def runPSEN(self):
+ #-------------------#
+ if self.modified or self.fichier==None :
+ QMessageBox.critical( self, tr( "Execution impossible "),tr("Sauvegarder SVP avant l'execution "))
+ return
+
+ #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
+
#--------------------------------#
def _newJDC( self ,units = None):
#--------------------------------#
if self.code == "CARMELCND" : texte=self._newJDCCND()
if self.code == "ZCRACKS" : texte=self._newZCRACKS()
if self.code == "TELEMAC" : texte=self._newTELEMAC()
+ if self.code == "PSEN" : texte = self._newPSEN()
# texte=self.newTexteCND
-
+
jdc=self.readercata.cata[0].JdC( procedure =texte,
appli=self,
cata=self.readercata.cata,
def readFromStdOut(self) :
a=self.monExe.readAllStandardOutput()
self.w.view.append(QString.fromUtf8(a.data(),len(a))) ;
-
+
#-----------------------#
def viewJdcRapport(self):
#-----------------------#
strRapport = unicode( self.jdc.report() )
+ # on ajoute les regles
+
self._viewText(strRapport, "JDC_RAPPORT")
#----------------#
# appele par I_MACRO_ETAPE
QMessageBox.information( self, titre, message)
+ #-----------------------------------#
+ def affiche_commentaire(self,message):
+ #-----------------------------------#
+ self.labelCommentaire.setText(message)
+
#-------------------#
def init_modif(self):
#-------------------#
"""
fn = unicode(fn)
-
+
if txt == None :
txt = self.get_text_JDC(self.format,formatLigne=formatLigne)
eol = '\n'
#-----------------------------------------------------------#
if self.code == "MAP" and not(generator.plugins.has_key(format)): format = "MAP"
if generator.plugins.has_key(format):
+
# Le generateur existe on l'utilise
self.generator=generator.plugins[format]()
try :
#textePython="ls -l"
self._viewTextExecute( textePython,"map_run",".sh")
- try:
- commande="rm "+self.fichierMapInput
- os.system(commande)
- except :
- pass
+ #try:
+ # commande="rm "+self.fichierMapInput
+ # os.system(commande)
+ #except :
+ # pass
except Exception, e:
print traceback.print_exc()
)
return
if hasattr(self.CONFIGURATION, "savedir"): path=self.CONFIGURATION.savedir
- else : path=os.environ['HOME']
+ else : path='C:/'
monNomFichier=""
if self.fichier is not None and self.fichier != "" :
(output, err) = p.communicate()
+ #-----------------#
+ def saveRunPSEN(self):
+ #-----------------#
+ print "saveRunPSEN"
+ self.saveFile()
+ return
+ 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
+
+ print generator.plugins.has_key(self.format)
+ if generator.plugins.has_key(self.format):
+ # Le generateur existe on l'utilise
+ self.generator=generator.plugins[self.format]()
+ try :
+ self.generator.gener(self.jdc)
+ self.generator.writeDefault('')
+ except ValueError,e:
+ QMessageBox.critical(self, tr("Erreur a la generation"),str(e))
+ if not self.generator.cr.estvide():
+ self.affiche_infos(tr("Erreur a la generation"),Qt.red)
+ QMessageBox.critical( self, tr("Erreur a la generation"),tr("EFICAS ne sait pas convertir ce JDC"))
+ return ""
+ else:
+ # Il n'existe pas c'est une erreur
+ self.affiche_infos(tr("Format %s non reconnu" , self.format),Qt.red)
+ QMessageBox.critical( self, "Format non reconnu" ,tr("EFICAS ne sait pas convertir le JDC selon le format "+ self.format))
+ return ""
+ print "HELLO"
+
+
+
+
#-----------------------------------------#
def cherche_Groupes(self):
#-----------------------------------------#
dicoCourant=self.generator.dico
return dicoCourant
-
+
#-----------------------------------------#
def handleAjoutGroup(self,listeGroup):
fn = unicode(QDir.convertSeparators(fn))
newName = fn
+
if not (self.writeFile(fn,formatLigne=formatLigne)): return (0, None)
self.fichier = fn
self.modified = False
#texte=""
return texte
+ #---------------------------#
+ def _newPSEN(self):
+ #---------------------------#
+ texte="DIRECTORY() ; PSSE_PARAMETERS() ; SIMULATION() ; sansnom=DISTRIBUTION() ; sansnom=DISTRIBUTION() ; CORRELATION() ;"
+ #texte=""
+ return texte
+
#---------------------------#
#---------------------------#
def _newJDCCND(self):
#---------------------------#
extensions=tr('Fichiers Med (*.med);;''Tous les Fichiers (*)')
-
+
#if self.salome == 0 :
QMessageBox.information( self,
tr("Fichier Med"),
texteVcut=""
texteZs=""
for groupe in self.listeGroupes :
- if groupe[0:8]=='CURRENT_':
+ if groupe[0:8]=='CURRENT_':
texteSources +=groupe[8:]+"=SOURCE("
texteSources +="VecteurDirecteur=(1.0,2.0,3.0,),);\n"
if groupe[0:5]=='COND_': texteCond +=groupe[5:]+"=CONDUCTEUR();\n"