1 # Copyright (C) 2012-2013 EDF
3 # This file is part of SALOME HYDRO module.
5 # SALOME HYDRO module is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
10 # SALOME HYDRO module is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with SALOME HYDRO module. If not, see <http://www.gnu.org/licenses/>.
21 from PyQt5.QtWidgets import QMessageBox , QScrollArea, QGridLayout
26 sgPyQt = SalomePyQt.SalomePyQt()
28 from salome.kernel.logger import Logger
29 from salome.kernel import termcolor
30 logger = Logger("salome.hydro.pytel.eficas.appli",
31 color = termcolor.GREEN_FG)
35 from salome.hydro.study import HydroStudyEditor
37 class EficasForPytelAppli(eficasSalome.MyEficas):
39 This class launches Eficas and adds entries for the created files in
40 HYDRO component in the study tree.
43 :param fichier: path of an Eficas file to open
46 def __init__(self, fichier = None, version = None):
47 self.ed = HydroStudyEditor()
48 self.codedir = os.path.dirname(__file__)
49 sys.path[:0] = [self.codedir]
50 area = QScrollArea(SalomePyQt.SalomePyQt().getDesktop());
51 eficasSalome.MyEficas.__init__(self, area, "pytel",
52 fichier, version = version)
53 gridLayout = QGridLayout(area)
54 gridLayout.addWidget(self)
55 area.setWidgetResizable(1)
56 sgPyQt.createView("Eficas Pytel", self)
57 if fichier == None : self.fileNew()
58 else : self.addJdcInSalome(fichier)
60 def addJdcInSalome(self, jdcPath):
62 Add the newly created file in Salome study
65 self.ed.find_or_create_pytel_case(jdcPath)
66 except Exception, exc:
67 msgError = "Can't add file to Salome study tree"
68 logger.exception(msgError)
69 QMessageBox.warning(self, self.tr("Warning"),
70 self.tr("%s. Reason:\n%s\n\nSee logs for more details." % (msgError, exc)))
71 salome.sg.updateObjBrowser(0)
73 def closeEvent(self, event):
74 while self.codedir in sys.path:
75 sys.path.remove(self.codedir)
76 eficasSalome.MyEficas.closeEvent(self, event)