]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
generer le XSD et autre print
authorpascale.noyret <pascale.noyret@edf.fr>
Tue, 7 May 2019 15:42:26 +0000 (17:42 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Tue, 7 May 2019 15:42:26 +0000 (17:42 +0200)
Accas/A_ETAPE.py
Efi2Xsd/AccasXsd.py
Efi2Xsd/MCAccasXsd.py
Ihm/I_JDC.py
InterfaceQT4/eficas_go.py
InterfaceQT4/qtEficas.py
InterfaceQT4/qtEficasSsIhm.py
InterfaceQT4/readercata.py
InterfaceQT4/viewManagerSsIhm.py
Vimmp/generateXSD.py [new file with mode: 0755]
generator/generator_XML.py

index a3dbd595012dee672488731dc876c4b558bbfe24..01ba2a03500c5ccfc3794431b70f70a7168b04f2 100644 (file)
@@ -25,6 +25,5 @@ from Efi2Xsd.MCAccasXsd  import X_MCCOMPO
 
 class ETAPE(I_ETAPE.ETAPE,V_ETAPE.ETAPE,X_MCCOMPO,N_ETAPE.ETAPE):
    def __init__(self,oper=None,reuse=None,args={}):
-      print ('------------- ETAPE accas', oper.nom, args)
       N_ETAPE.ETAPE.__init__(self,oper,reuse,args)
       V_ETAPE.ETAPE.__init__(self)
index a1a807f9f5057b93560c524cc6723a5149a3e277..639ef10b3e04a19eac0a83bb69ebe020db290791 100755 (executable)
@@ -327,8 +327,8 @@ class X_JDC_CATA :
     def dumpXsd(self):
         cata = CONTEXT.getCurrentCata() 
         if self.fichierSource != self.module.__file__ :
-           self.dumpDifferenceModuleMetier()
-           return
+           self.texteXSD = self.dumpDifferenceModuleMetier()
+           return self.texteXSD
         self.texteSimple   = ""
         self.texteComplexe = ""
         self.nomDuTypePyxb='T_'+self.code
@@ -350,7 +350,7 @@ class X_JDC_CATA :
         self.texteXSD += self.texteCata
         self.texteXSD += self.texteElt
         self.texteXSD += texteFin
-        if not PourTraduction : print (self.texteXSD)
+        #if not PourTraduction : print (self.texteXSD)
         dico = {}
         for  k in list(cata.dictTypesXSD.keys()):
              if len(cata.dictTypesXSD[k]) > 1:
@@ -364,6 +364,7 @@ class X_JDC_CATA :
   
         #import pprint
         #if (not PourTraduction) and  (dico != {}) : pprint.pprint(dico)
+        return self.texteXSD
 
    
     def dumpDifferenceModuleMetier(self):
@@ -387,7 +388,7 @@ class X_JDC_CATA :
         self.texteElt      = ""
       
         for c in allClassToDump :
-            if (isinstance(c, Accas.ETAPE))  : print (c, 'aDumper') 
+            if not(isinstance(c, Accas.OPER)) and not(isinstance(c, Accas.PROC))  : continue 
             c.code=self.code
             c.dumpXsd(inExtension=True)
             self.texteSimple += c.texteSimple
@@ -398,4 +399,5 @@ class X_JDC_CATA :
         #print (self.texteSimple)
         #print (self.texteElt)
         self.texteXSD = self.texteCata+'\n'+self.texteSimple+'\n'+self.texteElt+'\n'+texteFin+'\n'
-        if not PourTraduction  : print (self.texteXSD)
+        #if not PourTraduction  : print (self.texteXSD)
+        return self.texteXSD
index f0471ed986a782f6745c5b869e4aba40759c62d0..31682cde16aded90f9194460a6f2ac2e21490d03 100755 (executable)
@@ -44,7 +44,7 @@ class X_OBJECT:
       #print (listeArg)
       nvlObjPerePyxb=self.perePyxb.maClasseModeleMetier(*listeArg)
       #print (nvlObjPerePyxb)
-      print (nvlObjPerePyxb.orderedContent())
+      #print (nvlObjPerePyxb.orderedContent())
       self.perePyxb.objPyxb=nvlObjPerePyxb
       self.perePyxb.objPyxb.objAccas=ancienObjPerePyxb.objAccas
 
@@ -450,13 +450,13 @@ class X_JDC (X_MCCOMPO):
       #   print(e.details())
 
    def toXml(self,fichier=None):
-      print ('ds to XML')
+      #print ('ds to XML')
       if not self.cata.modeleMetier : return
       #print ('***************',self.objPyxb,'***************',)
       #print ('***************',self,'***************',)
       #print ('***************',self.objPyxb.orderedContent(),'***************',)
       #print(self.objPyxb.toDOM().toprettyxml())
-      print(self.objPyxb.toxml())
+      #print(self.objPyxb.toxml())
       return (self.objPyxb.toDOM().toprettyxml())
         
 
index 0d4887fdccd32e3f6a13d9e0c71e5548730a7708..880ed3d643670201ee4eb3103d35a83cded28d9b 100644 (file)
@@ -906,7 +906,6 @@ class JDC(I_OBJECT.OBJECT):
       # positionne prealablement par un appel a setEtapeContext
 
       if CONTEXT.debug : print(("JDC.NommerSdprod ",sd,sdnom))
-      print(("JDC.NommerSdprod ",sd,sdnom))
 
       if self._etape_context:
          o=self.getContexteAvant(self._etape_context).get(sdnom,None)
index 9fa073ccedc834952cada3b2ce7a0a8705a550fe..96be6965f01bcefd3cf801116790e29050476981 100755 (executable)
@@ -37,10 +37,10 @@ if ihmDir not in sys.path : sys.path.append(ihmDir)
 if ihmQTDir not in sys.path : sys.path.append(ihmQTDir)
 if editeurDir not in sys.path :sys.path.append(editeurDir)
 
-def getEficasSsIhm(code=None,fichier=None,ssCode=None,multi=False,langue='en',versionCode=None):
-    #print (versionCode)
+def getEficasSsIhm(code=None,fichier=None,ssCode=None,multi=False,langue='en',versionCode=None, fichierCata=None):
+    if fichierCata != None : fichierCata = os.path.abspath(fichierCata)
     from InterfaceQT4.qtEficasSsIhm import AppliSsIhm
-    Eficas=AppliSsIhm(code=code,salome=0,ssCode=ssCode,multi=multi,langue=langue,versionCode=versionCode)
+    Eficas=AppliSsIhm(code=code,salome=0,ssCode=ssCode,multi=multi,langue=langue,versionCode=versionCode, fichierCata=fichierCata)
     from Editeur  import session
     options=session.parse(['ssIhm','-k',code,'-v',versionCode])
     return Eficas
@@ -77,6 +77,23 @@ def lanceEficas(code=None,fichier=None,ssCode=None,multi=False,langue='en'):
     res=app.exec_()
     sys.exit(res)
 
+def genereXSD(code=None,fichier=None,ssCode=None,multi=False,langue='en',debug=True):
+    from Editeur  import session
+    options=session.parse(sys.argv)
+    if options.code!= None   : code=options.code
+    if options.ssCode!= None : ssCode=options.ssCode
+    if options.cata == None : 
+       print ('Use -c cata_name.py')
+       return
+    monEficasSsIhm = getEficasSsIhm(code=code, fichierCata=options.cata)
+    monEditor=monEficasSsIhm.getEditor()
+    texteXSD=monEficasSsIhm.dumpXsd()
+
+    fileXSD = options.cata[:options.cata.rfind(".")] + '_genere.xsd'
+    f = open( str(fileXSD), 'w')
+    f.write(str(texteXSD))
+
+
 
 def lanceEficas_ssIhm(code=None,fichier=None,ssCode=None,version=None,debug=False,langue='en'):
     """
index 0feaff47f956eaa3989b48f81b2b0ae44574423b..05b8db93d55b958fb9b7b321158d715f374a4a4d 100755 (executable)
@@ -48,7 +48,7 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
     """
     Class implementing the main user interface.
     """
-    def __init__(self,code=None,salome=1,parent=None,ssCode=None,multi=False,langue='fr',ssIhm=False,versionCode=None):
+    def __init__(self,code=None,salome=1,parent=None,ssCode=None,multi=False,langue='fr',ssIhm=False,versionCode=None,fichierCata=None):
         """
         Constructor
         """
@@ -56,7 +56,7 @@ class Appli(AppliSsIhm,Ui_Eficas,QMainWindow):
            print ('mauvaise utilisation de la classe Appli. Utiliser AppliSsIm SVP')
            exit()
 
-        AppliSsIhm.__init__(self,code,salome,parent,ssCode,multi,langue,ssIhm=True,versionCode=None)
+        AppliSsIhm.__init__(self,code,salome,parent,ssCode,multi,langue,ssIhm=True,versionCode=versionCode,fichierCata=fichierCata)
         QMainWindow.__init__(self,parent)
         Ui_Eficas.__init__(self)
 
index 963c678daa7cc4671c9e0f72af2734cd50825e75..df16af256417279b76d7861ae425985e52ca8cf9 100755 (executable)
@@ -38,13 +38,14 @@ class AppliSsIhm:
     """
     Class implementing the main user interface.
     """
-    def __init__(self,code=None,salome=1,parent=None,ssCode=None,multi=False,langue='fr',ssIhm=True,versionCode=None):
+    def __init__(self,code=None,salome=1,parent=None,ssCode=None,multi=False,langue='fr',ssIhm=True,versionCode=None,fichierCata=None):
         """
         Constructor
         """
         version=getEficasVersion()
         self.VERSION_EFICAS="Eficas QT5 Salome " + version
         self.versionCode=versionCode
+        self.fichierCata=fichierCata
 
         self.salome=salome
         self.ssIhm=True
@@ -129,16 +130,26 @@ class AppliSsIhm:
 
 
     def initEditor(self,fichier = None,jdc = None, units = None,include=0):
-        if self.editor != None : 
+        if (hasattr(self, 'editor')) and self.editor != None : 
            print ('un seul editeur par appli')
            sys.Exit()
-        self.editor = JDCEditorSsIhm(self,fichier, jdc, self.myQtab,units=units,include=include)
+        #self.editor = JDCEditorSsIhm(self,fichier, jdc, self.myQtab,units=units,include=include)
+        self.editor = self.viewmanager.getNewEditorNormal()
+        
+    def initEditorNormal(self,fichier = None,jdc = None, units = None,include=0):
+        if (hasattr(self, 'editor')) and self.editor != None : 
+           print ('un seul editeur par appli')
+           sys.Exit()
+        #self.editor = JDCEditorSsIhm(self,fichier, jdc, self.myQtab,units=units,include=include)
+        self.editor = self.viewmanager.getNewEditorNormal()
         
 
     def fileNew(self):
-        self.editor=initEditor(self)
+        self.editor=self.initEditor()
 
     def getEditor(self):
+        if (hasattr(self, 'editor')) and self.editor != None : return self.editor
+        self.initEditor()
         return self.editor
 
     def fileOpen(self,fichier):
@@ -162,8 +173,10 @@ class AppliSsIhm:
 
     def dumpXsd(self):
         current_cata    = CONTEXT.getCurrentCata()
-        current_cata.dumpXsd()
-        if self.maConfiguration.afficheIhm==False : exit()
+        texteXSD = current_cata.dumpXsd()
+        return texteXSD
+        #if self.maConfiguration.afficheIhm==False : exit()
+        #else : return texteXSD
 
 #,self.fileSaveAs
 #,self.fileClose
index 37c431242828f679a9e9f761a57862a48ba45126..9f7ab76159fc07634b9a9f75d20b8da3384681bf 100644 (file)
@@ -108,7 +108,13 @@ class ReaderCataCommun(object):
       if self.ssCode is None: liste_cata_possibles = all_cata_list
       else:
           for catalogue in all_cata_list:
-              if catalogue.code == self.code and catalogue.file_format == self.ssCode: liste_cata_possibles.append(catalogue)
+             if catalogue.code == self.code and catalogue.file_format == self.ssCode: liste_cata_possibles.append(catalogue)
+      if self.appliEficas.fichierCata != None : 
+         for catalogue in all_cata_list: 
+             if os.path.abspath(catalogue.cata_file_path) ==  self.appliEficas.fichierCata :
+                liste_cata_possibles=(catalogue,)
+                break
+             
 
       if len(liste_cata_possibles)==0:
           try : 
@@ -155,6 +161,9 @@ class ReaderCataCommun(object):
           else:
               # plusieurs catalogues sont disponibles : il faut demander a l'utilisateur
               # lequel il veut utiliser ...
+              if self.appliEficas.ssIhm : 
+                 print ('Unable to know which catafile is choosen')
+                 exit()
               self.askChoixCatalogue(cata_choice_list)
               self.demandeCatalogue=True
 
index 82eba4c8c808e4b23bf44605ab2a3a70db783a1b..93af86e203754e21ec1661844a0251d347974444 100644 (file)
@@ -123,6 +123,15 @@ class MyViewManagerSsIhm(object):
           print ('impossible de construire le jdc') 
           return None
 
+#  --------------------------------------------------------------------------------
+   def getNewEditorNormal(self,fichier = None,jdc = None, units = None,include=0):
+#  --------------------------------------------------------------------------------
+
+       from InterfaceQT4.editorSsIhm import JDCEditorSsIhm
+       editor = JDCEditorSsIhm(self.appliEficas,fichier,jdc, units=units,include=include)
+       self.editor=editor
+       return editor
+
 #  -----------------------------
    def samePath(self,f1, f2):
 #  ------------------------------
diff --git a/Vimmp/generateXSD.py b/Vimmp/generateXSD.py
new file mode 100755 (executable)
index 0000000..ed55061
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# 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
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+#
+"""
+   Ce module sert a lancer EFICAS configure pour Meteo 
+"""
+# Modules Python
+# Modules Eficas
+import prefs
+name='prefs_'+prefs.code
+__import__(name)
+
+import sys
+import os
+sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'../..'))
+
+import prefs
+from InterfaceQT4 import eficas_go
+eficas_go.genereXSD(code=prefs.code)
index 1afd5463f37813a83eab7070b2ecb64a3bc6bca0..b6f9c9d00ce43180919cdc356bdd190df57e2c16 100644 (file)
@@ -57,7 +57,6 @@ class XMLGenerator(PythonGenerator):
    def gener(self,obj,format='brut',config=None,appli=None):
        
       try :
-        print (obj)
         self.texteXML=obj.toXml()
       except : 
         self.texteXML='erreur generation'
@@ -78,7 +77,7 @@ class XMLGenerator(PythonGenerator):
    def writeDefault(self,fn) :
        fileXML = fn[:fn.rfind(".")] + '.xml'
        #fileDico='/tmp/toto.xml'
-       print (self.texteXML)
+       #print (self.texteXML)
        f = open( str(fileXML), 'w')
        f.write(str(self.texteXML))
        f.close()