From 0d70a2ef1f501567ca0e967053a02ca376ea3bf3 Mon Sep 17 00:00:00 2001 From: PASCALE NOYRET Date: Thu, 22 Feb 2024 13:31:55 +0100 Subject: [PATCH] merge avec Web V0 --- Accas/accessor/A_ETAPE.py | 3 + Accas/accessor/A_JDC.py | 25 +- Accas/accessor/A_MCLIST.py | 2 +- Accas/accessor/A_MCSIMP.py | 23 + Accas/accessor/A_OBJECT.py | 2 +- Editeur/editor.py | 51 +- Editeur/editor_manager.py | 16 +- Editeur/eficas_appli.py | 28 +- Editeur/eficas_go.py | 7 +- Editeur/loggingEnvironnement.py | 84 ++++ InterfaceGUI/QT5/browser.py | 4 +- InterfaceGUI/QT5/compobloc.py | 2 +- InterfaceGUI/QT5/compocomm.py | 6 +- InterfaceGUI/QT5/compocommandecomm.py | 4 +- InterfaceGUI/QT5/compofact.py | 10 +- InterfaceGUI/QT5/compojdc.py | 4 +- InterfaceGUI/QT5/compomacro.py | 2 +- InterfaceGUI/QT5/compomclist.py | 6 +- InterfaceGUI/QT5/compooper.py | 6 +- InterfaceGUI/QT5/compoparam.py | 4 +- InterfaceGUI/QT5/compoproc.py | 2 +- InterfaceGUI/QT5/composimp.py | 4 +- InterfaceGUI/QT5/gereIcones.py | 4 +- InterfaceGUI/QT5/gereListe.py | 2 +- InterfaceGUI/QT5/groupe.py | 6 +- InterfaceGUI/QT5/monFonctionPanel.py | 8 +- InterfaceGUI/QT5/monWidgetCreeParam.py | 10 +- InterfaceGUI/QT5/monWidgetCreeUserAssd.py | 2 +- InterfaceGUI/QT5/monWidgetFormule.py | 22 +- InterfaceGUI/QT5/monWidgetMatrice.py | 10 +- InterfaceGUI/QT5/monWidgetPlusieursBase.py | 10 +- .../QT5/monWidgetPlusieursCreeUserAssd.py | 6 +- InterfaceGUI/QT5/monWidgetPlusieursInto.py | 8 +- .../QT5/monWidgetPlusieursIntoOrdonne.py | 10 +- InterfaceGUI/QT5/monWidgetPlusieursPlie.py | 6 +- InterfaceGUI/QT5/monWidgetPlusieursTuple.py | 10 +- InterfaceGUI/QT5/monWidgetSDCOInto.py | 2 +- InterfaceGUI/QT5/monWidgetSimpComplexe.py | 22 +- InterfaceGUI/QT5/monWidgetSimpTuple.py | 4 +- InterfaceGUI/QT5/qt_editor.py | 18 +- InterfaceGUI/QT5/qt_editor_manager.py | 35 +- InterfaceGUI/QT5/qt_eficas.py | 4 +- InterfaceGUI/Web/accasConnecteur.py | 411 ----------------- InterfaceGUI/Web/compobloc.py | 2 +- InterfaceGUI/Web/compofact.py | 4 +- InterfaceGUI/Web/compojdc.py | 4 +- InterfaceGUI/Web/compomclist.py | 6 +- InterfaceGUI/Web/compooper.py | 4 +- InterfaceGUI/Web/compoparam.py | 4 +- InterfaceGUI/Web/compoproc.py | 2 +- InterfaceGUI/Web/composimp.py | 4 +- InterfaceGUI/Web/web_editor.py | 64 +-- InterfaceGUI/Web/web_editor_manager.py | 72 +++ InterfaceGUI/Web/web_eficas.py | 434 ++---------------- InterfaceGUI/cinqC/compoSelection.py | 2 +- InterfaceGUI/cinqC/compofact.py | 4 +- InterfaceGUI/cinqC/compojdc.py | 4 +- InterfaceGUI/cinqC/compomclist.py | 6 +- InterfaceGUI/cinqC/compooper.py | 4 +- InterfaceGUI/cinqC/compoproc.py | 2 +- InterfaceGUI/cinqC/composimp.py | 2 +- InterfaceGUI/cinqC/qt_editor.py | 8 +- InterfaceGUI/cinqC/qt_eficas.py | 2 +- .../{Objecttreeitem.py => objecttreeitem.py} | 0 InterfaceGUI/common/traiteSaisie.py | 10 +- Web/mdm.py | 55 ++- 66 files changed, 528 insertions(+), 1076 deletions(-) create mode 100644 Editeur/loggingEnvironnement.py delete mode 100755 InterfaceGUI/Web/accasConnecteur.py create mode 100644 InterfaceGUI/Web/web_editor_manager.py rename InterfaceGUI/common/{Objecttreeitem.py => objecttreeitem.py} (100%) diff --git a/Accas/accessor/A_ETAPE.py b/Accas/accessor/A_ETAPE.py index 285f9585..b9180e2c 100644 --- a/Accas/accessor/A_ETAPE.py +++ b/Accas/accessor/A_ETAPE.py @@ -226,6 +226,9 @@ class ETAPE(A_MCCOMPO.MCCOMPO): # Normalement on ne devrait pas passer ici return 0, "Normalement on ne devrait pas passer ici" + def getIndexDsParent(self): + return self.parent.getIndex(self) + def getSdprods(self, nom_sd): """ Fonction : retourne le concept produit par l etape de nom nom_sd diff --git a/Accas/accessor/A_JDC.py b/Accas/accessor/A_JDC.py index f8288821..1954908c 100644 --- a/Accas/accessor/A_JDC.py +++ b/Accas/accessor/A_JDC.py @@ -60,6 +60,9 @@ class JDC(A_OBJECT.OBJECT): self.recorded_units = {} self.old_recorded_units = {} + def isOblig(self): + return 1 + def getIndex(self, objet): """ Retourne la position d'objet dans la liste self @@ -556,6 +559,7 @@ class JDC(A_OBJECT.OBJECT): # Apres suppression de l'etape il faut controler que les etapes # suivantes ne produisent pas des concepts DETRUITS dans op_init de etape + etapeSup = etape if index_etape > 0: index_etape = index_etape - 1 etape = self.etapes[index_etape] @@ -564,7 +568,7 @@ class JDC(A_OBJECT.OBJECT): self.controlContextApres(etape) self.resetContext() - CONNECTOR.Emit(self, "supp", etape) + CONNECTOR.Emit(self, "supp", etapeSup) self.finModif() return 1 @@ -1136,7 +1140,24 @@ class JDC(A_OBJECT.OBJECT): itemMCPath = mc.getChild("MCPath") itemMCPath.setValeur(mc.variableDeterministe.getMCPath()) - # ATTENTION SURCHARGE : les methodes ci-dessus surchargent des methodes de processing et Accas.validation : a reintegrer + def getDicoForFancy(self): + monDico = {} + monDico["title"] = self.code + monDico["key"] = self.idUnique + monDico["classeAccas"] = "JDC" + monDico["validite"] = self.getValid() + if not (monDico["validite"]): + monDico["validite"] = 0 + # self.editor.fichier ? + listNodes = [] + for e in self.etapes: + listNodes.append(e.getDicoForFancy()) + monDico["children"] = listNodes + return monDico + + + + # ATTENTION SURCHARGE : les methodes ci-dessus surchargent des methodes de Noyau et Validation : a reintegrer def getFile(self, unite=None, fic_origine=""): """ diff --git a/Accas/accessor/A_MCLIST.py b/Accas/accessor/A_MCLIST.py index 3b426509..707305ef 100644 --- a/Accas/accessor/A_MCLIST.py +++ b/Accas/accessor/A_MCLIST.py @@ -69,7 +69,6 @@ class MCList: for i in self.data: listeDict.append(i.getDicoObjetsCompletsPourTree()) return listeDict - def getDicoForFancy(self): listeDict = [] nbFactDejaLa = len(self.data) @@ -83,6 +82,7 @@ class MCList: dico["repetable"] = 0 listeDict.append(dico) return listeDict + def isOblig(self): """ Une MCList n'est jamais obligatoire (meme si le MCFACT qu'elle represente l'est diff --git a/Accas/accessor/A_MCSIMP.py b/Accas/accessor/A_MCSIMP.py index 5938d324..5c116b6c 100644 --- a/Accas/accessor/A_MCSIMP.py +++ b/Accas/accessor/A_MCSIMP.py @@ -64,6 +64,29 @@ class MCSIMP(A_OBJECT.OBJECT): self.definition.siValide(self) return validite + + def getDicoForFancy(self): + # print ('MCSIMP getDicoForFancy ', self) + monDico = {} + monDico["title"] = self.nom + monDico["key"] = self.idUnique + if self.valeur != None: + monDico["wValue"] = str(self.valeur) + else: + monDico["wValue"] = "" + monDico["classeAccas"] = self.nature + monDico["validite"] = self.getValid() + if monDico["validite"] == None: + monDico["validite"] = self.isValid() + monDico["max"] = self.definition.max + monDico["min"] = self.definition.min + monDico["into"] = self.definition.into + monDico["statut"] = self.definition.statut + # a priori jamais vrai sauf si on a change un nom de userassd + if monDico["validite"] == 0 and monDico["statut"] == "f": + monDico["validite"] == 2 + + return monDico def getNomConcept(self): p = self while p.parent: diff --git a/Accas/accessor/A_OBJECT.py b/Accas/accessor/A_OBJECT.py index 9c78e4ce..8093cccc 100644 --- a/Accas/accessor/A_OBJECT.py +++ b/Accas/accessor/A_OBJECT.py @@ -273,7 +273,7 @@ class OBJECT: for leNode in lesNodes: listeNodes.append(leNode) monDico["children"] = listeNodes - print (self.nature) + #print (self.nature) if self.nature != "MCSIMP" and self.nature != "MCLIST" and self.nature != "JDC": monDico["infoOptionnels"] = self.calculOptionnelInclutBlocs() return monDico diff --git a/Editeur/editor.py b/Editeur/editor.py index c307fc39..ec87b14c 100755 --- a/Editeur/editor.py +++ b/Editeur/editor.py @@ -26,6 +26,7 @@ import traceback import Accas.IO.reader as reader import Accas.IO.writer as writer +from Accas.extensions.eficas_exception import EficasException Dictextensions = {"MAP": ".map", "TELEMAC": ".cas"} debug = False @@ -38,7 +39,7 @@ class Editor: Editeur de jdc """ - def __init__(self, appliEficas, fichier=None, jdc=None, units=None, include=0): + def __init__(self, appliEficas, fichier=None, jdc=None, include=0): # ----------------------------------------------------------------------------# if debug: print("dans le init de Editor") self.appliEficas = appliEficas @@ -128,27 +129,25 @@ class Editor: try: #if 1 : self.jdc = self.readFile(self.fichier) - except: + except Exception as e : #else : print("mauvaise lecture du fichier") + raise EficasException("str(e)") if self.appliEficas.salome: try: self.appliEficas.addJdcInSalome(self.fichier) - except: + except Exception as e: print("mauvais enregistrement dans Salome") + raise EficasException("str(e)") else: self.jdc = jdc - if self.jdc is not None and units is not None: - self.jdc.recorded_units = units - self.jdc.old_recorded_units = units - else: if not self.jdc: # nouveau jdc if not include: - self.jdc = self._newJDC(units=units) + self.jdc = self._newJDC() else: - self.jdc = self._newJDCInclude(units=units) + self.jdc = self._newJDCInclude() self.nouveau = 1 if self.jdc: @@ -211,11 +210,11 @@ class Editor: monJDCReader.text = texteNew text = monJDCReader.convert("exec", self.appliEficas) if not monJDCReader.cr.estvide(): - self.afficheInfos("Erreur a la conversion", "red") + self.afficheMessage("Erreur a la conversion", "red") else: text = monJDCReader.text else: - self.afficheInfos("Type de fichier non reconnu", "red") + self.afficheMessage("Type de fichier non reconnu", "red") self.informe( "Type de fichier non reconnu", "EFICAS ne sait pas ouvrir le type de fichier " @@ -240,9 +239,9 @@ class Editor: self.monJDCReader = monJDCReader return jdc - # ---------------------------------------# - def _newJDC(self, texte = "", units=None): - # ---------------------------------------# + # ----------------------------# + def _newJDC(self, texte = ""): + # ----------------------------# """ Initialise un nouveau JDC avec le texte passe en parametre """ @@ -261,15 +260,12 @@ class Editor: ) jdc.lang = self.appliEficas.langue - if units is not None: - jdc.recorded_units = units - jdc.old_recorded_units = units jdc.editor = self return jdc - # --------------------------------# - def _newJDCInclude(self, units=None): - # --------------------------------# + # ----------------------# + def _newJDCInclude(self): + # ----------------------# """ Initialise un nouveau JDC include vierge Inutilise depuis Aster mais interessant @@ -303,9 +299,6 @@ class Editor: ) J.editor = self J.analyse() - if units is not None: - J.recorded_units = units - J.old_recorded_units = units return J # -----------------------# @@ -319,11 +312,11 @@ class Editor: p.readfile(file) text = p.convert("execnoparseur") if not p.cr.estvide(): - self.afficheInfos("Erreur a la conversion", "red") + self.afficheMessage("Erreur a la conversion", "red") return text else: # Il n'existe pas c'est une erreur - self.afficheInfos("Type de fichier non reconnu", "red") + self.afficheMessage("Type de fichier non reconnu", "red") self.informe( "Type de fichier non reconnu", "EFICAS ne sait pas ouvrir le type de fichier " @@ -402,7 +395,7 @@ class Editor: # -----------------------# # on ajoute les regles texteGlobal, testOK = self.jdc.verifRegles() - return texteGglobal + return texteGlobal # ---------------------# def getFileName(self): @@ -450,7 +443,7 @@ class Editor: "Le fichier" + str(fn) + "n a pas pu etre sauvegarde :", str(why), ) - self.afficheInfos( + self.afficheMessage( "Le fichier" + str(fn) + "n a pas pu etre sauvegarde ", "red" ) return 0 @@ -547,7 +540,7 @@ class Editor: dico = self.myWriter.Dico return dico else: - self.afficheInfos( + self.afficheMessage( tr("Format %s non reconnu", "Dictionnaire Imbrique"), "red" ) return "" @@ -694,7 +687,7 @@ class Editor: print("!!!!!!!!!!!!!!!!!!!!!!!!!!!") # --------------------------------------# - def afficheInfos(self, txt, couleur=None): + def afficheMessage(self, txt, couleur=None): # --------------------------------------# # methode differenre avec et sans ihm print(txt) diff --git a/Editeur/editor_manager.py b/Editeur/editor_manager.py index 544af1e4..21b75ccb 100644 --- a/Editeur/editor_manager.py +++ b/Editeur/editor_manager.py @@ -41,9 +41,9 @@ class EditorManager(object): self.doubles = {} - # ---------------------------------------------------------------- - def getEditor(self, fichier=None, jdc=None, units=None, include=0): - # ---------------------------------------------------------------- + # ----------------------------------------------------- + def getEditor(self, fichier=None, jdc=None, include=0): + # ----------------------------------------------------- """ Retourne un nouvel editeur ou None si doublon """ @@ -58,7 +58,7 @@ class EditorManager(object): self.appliEficas.afficheMessage('Eficas sans Ihm', 'Fichier deja ouvert') return None from Editeur.editor import Editor - editor = Editor(self.appliEficas, fichier, jdc, units, include) + editor = Editor(self.appliEficas, fichier, jdc, include) if not editor.jdc : self.appliEficas.afficheMessage('Eficas sans Ihm', 'impossible d allouer un editor') return None @@ -68,14 +68,6 @@ class EditorManager(object): editor.idEditor = idEditor return editor - # ------------------------ - def getEditorById(self,id): - # ------------------------ - if id in self.dictEditors: - editor = self.dictEditors[indexEditor] - return editor - return None - # -------------------------------- def setCurrentEditorById(self,id): # -------------------------------- diff --git a/Editeur/eficas_appli.py b/Editeur/eficas_appli.py index 0ac25294..27476bc4 100755 --- a/Editeur/eficas_appli.py +++ b/Editeur/eficas_appli.py @@ -19,9 +19,11 @@ # import os, sys + from Accas.extensions.eficas_exception import EficasException from Editeur import session from Editeur.getVersion import getEficasVersion +from Accas.extensions.eficas_translation import tr class EficasAppli: @@ -71,7 +73,7 @@ class EficasAppli: try: from Accas import eficasSalome Accas.SalomeEntry = eficasSalome.SalomeEntry - except e: + except Exception as e: print ("impossible d importer les salome entry") print (str(e)) @@ -137,23 +139,17 @@ class EficasAppli: texte = p.convert("execnoparseur") return texte - #------------------------------------------------------------------ - def newEditor(self, fichier=None, jdc=None, units=None, include=0): - #------------------------------------------------------------------ + #------------------------------------------------------ + def getEditor(self, fichier=None, jdc=None, include=0): + #------------------------------------------------------ #PN reflechir a ce que cela veut dire d avoir plusieurs editeurs if (hasattr(self, "editor")) and self.editor != None: print("un seul editeur par application eficas_appli ") sys.exit() - self.editor = self.editorManager.getNewEditor() - return self.editorId - - #------------------- - def getEditor(self): - #------------------- - if (hasattr(self, "editor")) and self.editor != None: return self.editor - self.newEditor() + self.editor = self.editorManager.getEditor(fichier, jdc, include) return self.editor + #-------------------------- def getEditorById(self,id): #-------------------------- @@ -170,7 +166,7 @@ class EficasAppli: try: monEditor = self.editorManager.openFile(fichier) except EficasException as exc: - afficheMessage(self, 'erreur ouverture fichier', str(exc),critical=True) + self.afficheMessage( 'erreur ouverture fichier', str(exc),critical=True) monEditor = None return monEditor @@ -234,10 +230,10 @@ class EficasAppli: for study in session.d_env.studies: os.chdir(cwd) d = session.getUnit(study, self) - self.editorManager.openFile(fichier=study["comm"], units=d) + self.editorManager.openFile(fichier=study["comm"]) - #---------------------- + #--------------------- def saveFullFile(self): #---------------------- # Pour Telemac @@ -247,7 +243,7 @@ class EficasAppli: def fileNew(self): #------------------- try: - self.editorManager.newEditor() + self.editorManager.getEditor() except EficasException as exc: msg = str(exc) if msg != "": diff --git a/Editeur/eficas_go.py b/Editeur/eficas_go.py index e7009e33..4385b4ce 100755 --- a/Editeur/eficas_go.py +++ b/Editeur/eficas_go.py @@ -62,8 +62,8 @@ def lanceQtEficas(code=None, versionCode = None, multi=False, langue="en", GUIP sys.exit(res) -def getEficas( code=None, multi=False, langue="en", forceXML=False, fichierCata=None,GUIPath=None, appWeb = None): -# ------------------------------------------------------------------------------------------------------------------ +def getEficas( code=None, ssCode = None, versionCode = None , multi=False, langue="en", GUIPath=None, appWeb = None, fichierCata = None): +# --------------------------------------------------------------------------------------------------------------------------------------- """ instancie l'appli EFICAS sans Ihm """ @@ -72,7 +72,6 @@ def getEficas( code=None, multi=False, langue="en", forceXML=False, fichierCata= options = session.parse(sys.argv) if options.code != None: code = options.code - if forceXML: options.withXSD = True if GUIPath in ('QT5', 'cinqC') : pathAbso=os.path.abspath(os.path.join(os.path.dirname(__file__),'..','InterfaceGUI',GUIPath)) @@ -86,7 +85,7 @@ def getEficas( code=None, multi=False, langue="en", forceXML=False, fichierCata= print ('lancement de Eficas avec GUIPath = {}'.format(GUIPath)) from Editeur.eficas_appli import EficasAppli - Eficas = EficasAppli(code=code, multi=multi, langue=langue, ssCode=ssCode, versionCode=versionCode, fichierCata=fichierCata, GUIPath=GUIPath, appWeb=None) + Eficas = EficasAppli(code=code, multi=multi, langue=langue, ssCode=ssCode, versionCode=versionCode, fichierCata=fichierCata, GUIPath=GUIPath, appWeb=appWeb) return Eficas diff --git a/Editeur/loggingEnvironnement.py b/Editeur/loggingEnvironnement.py new file mode 100644 index 00000000..84dc2859 --- /dev/null +++ b/Editeur/loggingEnvironnement.py @@ -0,0 +1,84 @@ +from builtins import object +import logging +import os + +msgGetDico='d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)' +msgId='leMotClef={}' + +class loggingEnvironnement(object): + _instance = None + + def __new__(cls, *args, **kwargs): + if not cls._instance: + cls._instance = super(loggingEnvironnement, cls).__new__(cls, *args, **kwargs) + return cls._instance + + def __init__(self): + self.fichier=None + + def setFile(self,fichier, code='Essai'): + loggerForTrace = logging.getLogger('loggingForTrace') + if self.fichier != None : print ('La log est deja ecrite dans : ', self.fichier); return + if (os.path.isfile(fichier)) : + print ('le fichier {} existe deja'.format(fichier)) + loggerForTrace.info('#_________________ redemarrage de la log _________________') + fileHandler = logging.FileHandler(fichier) + formatter = logging.Formatter('%(message)s') + fileHandler.setFormatter(formatter) + loggerForTrace.addHandler(fileHandler) + loggerForTrace.setLevel(logging.INFO) + loggerForTrace.info('from connectEficas import accasConnecteur') + loggerForTrace.info('monEficasConnecteur=accasConnecteur("{}")'.format(code)) + + +def fonctionLoguee(laFonction, debug=True): +#------------------------------------------- + from inspect import getfullargspec + from functools import wraps + listeArgs=getfullargspec(laFonction) + @wraps(laFonction) + def laFonctionLoguee(*args, **kwargs): + if debug : print('Appel {} avec args={} et kwargs={}'.format( laFonction.__name__, args, kwargs)) + loggerForTrace = logging.getLogger('loggingForTrace') + if 'id' in listeArgs.args : + indexId=listeArgs.args.index('id') + id = args[indexId] + if debug : print ('id est le parametre ', str(indexId), ' de la fonction :', laFonction.__name__) + monConnecteur=args[0] + loggerForTrace.info(msgGetDico) + finMsgId = monConnecteur.reconstruitChaineDIndex(id) + if debug : print ('finMsgId', finMsgId) + loggerForTrace.info(msgId.format(finMsgId)) + else : + if debug : print ('id n est pas un parametre de la fonction :', laFonction.__name__,) + indexId=-1 + + i=1 + chaineDArgs='(' + for monArg in args[1:] : + #if debug : print ('chaineDArgs', chaineDArgs) + #if debug : print ('monArg', monArg) + if indexId == i: + chaineDArgs+='leMotClef,' + i=i+1 + continue + if isinstance(monArg, str) : chaineDArgs+='"'+str(monArg)+'",' + else : chaineDArgs+=str(monArg)+',' + i=i+1 + for (k,v) in kwargs : + if isinstance(v, str) : chaineDArgs+=str(k)+'="'+str(v)+'",' + else : chaineDArgs+=str(k)+'='+str(v)+',' + chaineDArgs=chaineDArgs[:-1]+')' + if debug : print ('chaineDArgs', chaineDArgs) + msg='print (monEficasConnecteur.{}{})'.format(laFonction.__name__, chaineDArgs) + if debug : print ('msg', msg) + loggerForTrace.info(msg) + return laFonction(*args, **kwargs) + return laFonctionLoguee + + +if __name__=='__main__': + monSingleton=loggingEnvironnement() + monSingleton.setFile('/tmp/toto.txt') + loggerForTrace = logging.getLogger('loggingForTrace') + loggerForTrace.info('Our First Log Message') diff --git a/InterfaceGUI/QT5/browser.py b/InterfaceGUI/QT5/browser.py index 49464c49..b9e3ed6a 100644 --- a/InterfaceGUI/QT5/browser.py +++ b/InterfaceGUI/QT5/browser.py @@ -722,9 +722,9 @@ class JDCNode(QTreeWidgetItem, GereRegles): ret, commentaire = self.vraiParent.item.suppItem(self.item) if ret == 0: - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) else: - self.editor.afficheInfos(commentaire) + self.editor.afficheMessage(commentaire) self.treeParent.buildChildren() if self.treeParent.childrenComplete: toselect = self.treeParent.childrenComplete[index] diff --git a/InterfaceGUI/QT5/compobloc.py b/InterfaceGUI/QT5/compobloc.py index e2004e98..f58ebcfc 100644 --- a/InterfaceGUI/QT5/compobloc.py +++ b/InterfaceGUI/QT5/compobloc.py @@ -18,7 +18,7 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.QT5 import compofact from InterfaceGUI.QT5 import browser diff --git a/InterfaceGUI/QT5/compocomm.py b/InterfaceGUI/QT5/compocomm.py index 11247bf2..5101011b 100644 --- a/InterfaceGUI/QT5/compocomm.py +++ b/InterfaceGUI/QT5/compocomm.py @@ -17,7 +17,7 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.QT5 import browser from InterfaceGUI.QT5 import typeNode from Accas.extensions.eficas_translation import tr @@ -52,7 +52,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNodePartiel): self.setText(1, tr(debComm)) -class COMMTreeItem(Objecttreeitem.ObjectTreeItem): +class COMMTreeItem(objecttreeitem.ObjectTreeItem): itemNode = Node def init(self): @@ -103,7 +103,7 @@ class COMMTreeItem(Objecttreeitem.ObjectTreeItem): def getObjetCommentarise(self): """ La methode getObjetCommentarise() de la classe compocomm.COMMTreeItem - surcharge la methode getObjetCommentarise de la classe Objecttreeitem.ObjectTreeItem + surcharge la methode getObjetCommentarise de la classe objecttreeitem.ObjectTreeItem elle a pour but d'empecher l'utilisateur final de commentariser un commentaire. """ raise EficasException("Impossible de commentariser un commentaire") diff --git a/InterfaceGUI/QT5/compocommandecomm.py b/InterfaceGUI/QT5/compocommandecomm.py index 401e995f..a899911d 100644 --- a/InterfaceGUI/QT5/compocommandecomm.py +++ b/InterfaceGUI/QT5/compocommandecomm.py @@ -20,12 +20,12 @@ import traceback -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from Accas.extensions.eficas_exception import EficasException from InterfaceGUI.QT5 import compocomm -class COMMANDE_COMMTreeItem(Objecttreeitem.ObjectTreeItem): +class COMMANDE_COMMTreeItem(objecttreeitem.ObjectTreeItem): itemNode = compocomm.Node def init(self): diff --git a/InterfaceGUI/QT5/compofact.py b/InterfaceGUI/QT5/compofact.py index c5029f3c..78fc9ba9 100644 --- a/InterfaceGUI/QT5/compofact.py +++ b/InterfaceGUI/QT5/compofact.py @@ -22,7 +22,7 @@ from InterfaceGUI.QT5 import browser from InterfaceGUI.QT5 import typeNode from Accas.extensions.eficas_translation import tr -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem import traceback @@ -38,7 +38,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNodePartiel): else: self.niveau = 1 if hasattr(self, "plie") and self.plie == True: - from InterfaceGUI.QT5.nterfaceGUI.QT5.monWidgetFactPlie import MonWidgetFactPlie + from InterfaceGUI.QT5.monWidgetFactPlie import MonWidgetFactPlie widget = MonWidgetFactPlie( self, @@ -52,7 +52,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNodePartiel): elif self.editor.maConfiguration.afficheFirstPlies and self.firstAffiche: self.firstAffiche = False self.setPlie() - from InterfaceGUI.QT5.nterfaceGUI.QT5.monWidgetFactPlie import MonWidgetFactPlie + from InterfaceGUI.QT5.monWidgetFactPlie import MonWidgetFactPlie widget = MonWidgetFactPlie( self, @@ -64,7 +64,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNodePartiel): maCommande, ) else: - from InterfaceGUI.QT5.nterfaceGUI.QT5.monWidgetFact import MonWidgetFact + from InterfaceGUI.QT5.monWidgetFact import MonWidgetFact widget = MonWidgetFact( self, @@ -82,7 +82,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNodePartiel): typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) -class FACTTreeItem(Objecttreeitem.ObjectTreeItem): +class FACTTreeItem(objecttreeitem.ObjectTreeItem): itemNode = Node def isExpandable(self): diff --git a/InterfaceGUI/QT5/compojdc.py b/InterfaceGUI/QT5/compojdc.py index eb121454..918e28aa 100644 --- a/InterfaceGUI/QT5/compojdc.py +++ b/InterfaceGUI/QT5/compojdc.py @@ -18,7 +18,7 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.QT5 import browser from InterfaceGUI.QT5 import typeNode from Accas.extensions.eficas_translation import tr @@ -37,7 +37,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuRacine): return param -class JDCTreeItem(Objecttreeitem.ObjectTreeItem): +class JDCTreeItem(objecttreeitem.ObjectTreeItem): itemNode = Node def isExpandable(self): diff --git a/InterfaceGUI/QT5/compomacro.py b/InterfaceGUI/QT5/compomacro.py index 90c19833..465eb001 100644 --- a/InterfaceGUI/QT5/compomacro.py +++ b/InterfaceGUI/QT5/compomacro.py @@ -25,7 +25,7 @@ import types import traceback # Modules Eficas -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from Accas.extensions.eficas_translation import tr from InterfaceGUI.QT5 import compooper from InterfaceGUI.QT5 import browser diff --git a/InterfaceGUI/QT5/compomclist.py b/InterfaceGUI/QT5/compomclist.py index ec1ec539..08c70279 100644 --- a/InterfaceGUI/QT5/compomclist.py +++ b/InterfaceGUI/QT5/compomclist.py @@ -27,7 +27,7 @@ from InterfaceGUI.QT5 import browser from InterfaceGUI.QT5 import typeNode from Accas.extensions.eficas_translation import tr -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from Accas.processing.P_OBJECT import ErrorObj @@ -109,7 +109,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNodeMinimal): return child -class MCListTreeItem(Objecttreeitem.SequenceTreeItem, compofact.FACTTreeItem): +class MCListTreeItem(objecttreeitem.SequenceTreeItem, compofact.FACTTreeItem): """La classe MCListTreeItem joue le role d'un adaptateur pour les objets du processing Accas instances de la classe MCLIST. Elle adapte ces objets pour leur permettre d'etre integres en tant que @@ -147,7 +147,7 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem, compofact.FACTTreeItem): def isExpandable(self): if len(self._object) > 1: - return Objecttreeitem.SequenceTreeItem.isExpandable(self) + return objecttreeitem.SequenceTreeItem.isExpandable(self) else: return compofact.FACTTreeItem.isExpandable(self) diff --git a/InterfaceGUI/QT5/compooper.py b/InterfaceGUI/QT5/compooper.py index 11b1a50f..9d45e6ee 100644 --- a/InterfaceGUI/QT5/compooper.py +++ b/InterfaceGUI/QT5/compooper.py @@ -23,7 +23,7 @@ import tempfile from Accas.extensions.eficas_translation import tr from Accas.extensions.eficas_exception import EficasException -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.QT5 import browser from InterfaceGUI.QT5 import typeNode @@ -43,7 +43,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode): self.editor.initModif() test, mess = self.item.nommeSd(nom) if test == 0: - self.editor.afficheInfos(mess, "red") + self.editor.afficheMessage(mess, "red") old = self.item.getText() self.monWidgetNom.setText(old) else: @@ -69,7 +69,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode): # troisD.envoievisu() -class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): +class EtapeTreeItem(objecttreeitem.ObjectTreeItem): """La classe EtapeTreeItem est un adaptateur des objets ETAPE du processing Accas. Elle leur permet d'etre affichés comme des noeuds d'un arbre graphique. diff --git a/InterfaceGUI/QT5/compoparam.py b/InterfaceGUI/QT5/compoparam.py index 9f36e143..dc7d1339 100644 --- a/InterfaceGUI/QT5/compoparam.py +++ b/InterfaceGUI/QT5/compoparam.py @@ -27,7 +27,7 @@ import types from Accas.extensions.eficas_translation import tr # import modules EFICAS -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.QT5 import browser from InterfaceGUI.QT5 import typeNode @@ -47,7 +47,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNodePartiel): return None -class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): +class PARAMTreeItem(objecttreeitem.ObjectTreeItem): """ Classe servant a definir l'item porte par le noeud de l'arbre d'EFICAS qui represente le PARAMETRE diff --git a/InterfaceGUI/QT5/compoproc.py b/InterfaceGUI/QT5/compoproc.py index 9321731a..0242b7b3 100644 --- a/InterfaceGUI/QT5/compoproc.py +++ b/InterfaceGUI/QT5/compoproc.py @@ -18,7 +18,7 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.QT5 import compooper from InterfaceGUI.QT5 import browser from InterfaceGUI.QT5 import typeNode diff --git a/InterfaceGUI/QT5/composimp.py b/InterfaceGUI/QT5/composimp.py index 56959be8..86e006e6 100644 --- a/InterfaceGUI/QT5/composimp.py +++ b/InterfaceGUI/QT5/composimp.py @@ -25,7 +25,7 @@ import traceback from InterfaceGUI.QT5 import typeNode # Modules Eficas -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.QT5 import browser from Accas import SalomeEntry from Accas import ASSD @@ -257,7 +257,7 @@ class Node(NodeCommun, browser.JDCNode, typeNode.PopUpMenuNodeMinimal): typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) -class SIMPTreeItemCommun(Objecttreeitem.AtomicObjectTreeItem): +class SIMPTreeItemCommun(objecttreeitem.AtomicObjectTreeItem): def init(self): self.expandable = 0 diff --git a/InterfaceGUI/QT5/gereIcones.py b/InterfaceGUI/QT5/gereIcones.py index 77d7e142..86e3528e 100644 --- a/InterfaceGUI/QT5/gereIcones.py +++ b/InterfaceGUI/QT5/gereIcones.py @@ -448,7 +448,7 @@ class ContientIcones(object): ) if commentaire != "": - self.editor.afficheInfos(tr(str(commentaire))) + self.editor.afficheMessage(tr(str(commentaire))) if selection == []: return @@ -476,7 +476,7 @@ class ContientIcones(object): if valeur: ok, msgError = self.appliEficas.displayShape(valeur) if not ok: - self.editor.afficheInfos(msgError, Qt.red) + self.editor.afficheMessage(msgError, Qt.red) def BParametresPressed(self): liste = self.node.item.getListeParamPossible() diff --git a/InterfaceGUI/QT5/gereListe.py b/InterfaceGUI/QT5/gereListe.py index 0f35a67b..2bdf4d4c 100644 --- a/InterfaceGUI/QT5/gereListe.py +++ b/InterfaceGUI/QT5/gereListe.py @@ -261,7 +261,7 @@ class GereListe(object): if len(self.listeValeursCourantes) < self.monSimpDef.max: self.chercheLigneVide() else: - self.editor.afficheInfos( + self.editor.afficheMessage( "nb max de valeurs : " + str(self.monSimpDef.max) + " atteint", Qt.red, ) diff --git a/InterfaceGUI/QT5/groupe.py b/InterfaceGUI/QT5/groupe.py index c04f30e6..0f2f877f 100644 --- a/InterfaceGUI/QT5/groupe.py +++ b/InterfaceGUI/QT5/groupe.py @@ -170,12 +170,12 @@ class Groupe(QWidget, FacultatifOuOptionnel): return if len(listeNode) == 1: listeNode[0].delete() - self.editor.afficheInfos("") + self.editor.afficheMessage("") return for noeud in listeNode: noeud.treeParent.item.suppItem(noeud.item) noeud.treeParent.buildChildren() - self.editor.afficheInfos("") + self.editor.afficheMessage("") def ajoutMC(self, texteListeNom): listeNom = texteListeNom.split("+")[1:] @@ -192,7 +192,7 @@ class Groupe(QWidget, FacultatifOuOptionnel): if firstNode == None: firstNode = nouveau if nouveau == None or nouveau == 0: - self.editor.afficheInfos( + self.editor.afficheMessage( tr("insertion impossible a cet endroit pour " + nom), Qt.red ) try: diff --git a/InterfaceGUI/QT5/monFonctionPanel.py b/InterfaceGUI/QT5/monFonctionPanel.py index 6b7709f9..d6afc840 100644 --- a/InterfaceGUI/QT5/monFonctionPanel.py +++ b/InterfaceGUI/QT5/monFonctionPanel.py @@ -65,7 +65,7 @@ class MonFonctionPanel(MonPlusieursBasePanel): message = tr( "La cardinalite n'est pas correcte, la derniere valeur est ignoree" ) - self.editor.afficheInfos(message, Qt.red) + self.editor.afficheMessage(message, Qt.red) i = 0 while i < len(liste): try: @@ -121,7 +121,7 @@ class MonFonctionPanel(MonPlusieursBasePanel): commentaire += str(self.nbValeursASaisir) commentaire += tr(" valeurs") self.LEValeur.setText(str(liste)) - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) return if self.node.item.waitTuple() == 1: @@ -153,7 +153,7 @@ class MonFonctionPanel(MonPlusieursBasePanel): ) self.Commentaire.setText(tr(comm2)) if not validite: - self.editor.afficheInfos(comm, Qt.red) + self.editor.afficheMessage(comm, Qt.red) else: self.LEValeur.setText("") l1 = self.listeValeursCourantes[:indexListe] @@ -186,7 +186,7 @@ class MonFonctionPanel(MonPlusieursBasePanel): if len(liste) % self.nbValeurs != 0: texte = "Nombre de valeur incorrecte" # self.Commentaire.setText(texte) - self.editor.afficheInfos(texte, Qt.red) + self.editor.afficheMessage(texte, Qt.red) return listeDecoupee = self.decoupeListeValeurs(liste) for vals in listeDecoupee: diff --git a/InterfaceGUI/QT5/monWidgetCreeParam.py b/InterfaceGUI/QT5/monWidgetCreeParam.py index ae79ace0..3aa96c07 100644 --- a/InterfaceGUI/QT5/monWidgetCreeParam.py +++ b/InterfaceGUI/QT5/monWidgetCreeParam.py @@ -35,7 +35,7 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam, QDialog): def __init__(self, editor, name=None, fl=0): self.editor = editor - self.editor.afficheInfos("") + self.editor.afficheMessage("") QDialog.__init__(self, editor) self.setupUi(self) self.connecterSignaux() @@ -98,7 +98,7 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam, QDialog): exec("from InterfaceGUI.QT5.ath import *", contexte) jdc = self.editor.jdc if jdc == None: - self.editor.afficheInfos( + self.editor.afficheMessage( tr( "La Creation de parametre n est possible que dans un jeu de donnees" ), @@ -121,7 +121,7 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam, QDialog): monTexte = "monParam='" + valString + "'" self.val = "'" + valString + "'" except: - self.editor.afficheInfos(tr("Valeur incorrecte"), Qt.red) + self.editor.afficheMessage(tr("Valeur incorrecte"), Qt.red) if self.lineEditNom.text() != "" and self.dejaExistant == False: self.creeParametre() @@ -131,11 +131,11 @@ class MonWidgetCreeParam(Ui_desWidgetCreeParam, QDialog): if not pattern_name.match(nom): self.lineEditNom.setText("") commentaire = nom + tr(" n est pas un identifiant correct\n ") - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) for p in self.editor.jdc.params: if p.nom == nom: commentaire = nom + tr(" existe deja\n ") - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) return if self.lineEditVal.text() != "": diff --git a/InterfaceGUI/QT5/monWidgetCreeUserAssd.py b/InterfaceGUI/QT5/monWidgetCreeUserAssd.py index 43cb3713..5f6d89ea 100644 --- a/InterfaceGUI/QT5/monWidgetCreeUserAssd.py +++ b/InterfaceGUI/QT5/monWidgetCreeUserAssd.py @@ -63,7 +63,7 @@ class MonWidgetCreeUserAssd(MonWidgetSimpTxt): self.editor.afficheCommentaire(commentaire) self.oldValeurTexte = self.lineEditVal.text() else: - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.lineEditVal.setText("") self.oldValeurTexte = "" self.parentQt.propageChange(self.objSimp.definition.type[0], self) diff --git a/InterfaceGUI/QT5/monWidgetFormule.py b/InterfaceGUI/QT5/monWidgetFormule.py index 51f0eb2d..956da685 100644 --- a/InterfaceGUI/QT5/monWidgetFormule.py +++ b/InterfaceGUI/QT5/monWidgetFormule.py @@ -125,10 +125,10 @@ class MonWidgetFormule(QWidget, Ui_WidgetFormule, FacultatifOuOptionnel): test, erreur = self.node.item.verifNom(nomFormule) if test: commentaire = nomFormule + tr(" est un nom valide pour une FORMULE") - self.editor.afficheInfos(commentaire) + self.editor.afficheMessage(commentaire) else: commentaire = nomFormule + tr(" n'est pas un nom valide pour une FORMULE") - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) return if str(self.LENomsArgs.text()) != "" and str(self.LECorpsFormule.text()) != "": self.BOkPressedFormule() @@ -141,10 +141,10 @@ class MonWidgetFormule(QWidget, Ui_WidgetFormule, FacultatifOuOptionnel): test, erreur = self.node.item.verifArguments(arguments) if test: commentaire = tr("Argument(s) valide(s) pour une FORMULE") - self.editor.afficheInfos(commentaire) + self.editor.afficheMessage(commentaire) else: commentaire = tr("Argument(s) invalide(s) pour une FORMULE") - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) if ( str(self.LECorpsFormule.text()) != "" and str(self.LENomFormule.text()) != "" @@ -164,10 +164,10 @@ class MonWidgetFormule(QWidget, Ui_WidgetFormule, FacultatifOuOptionnel): if test: commentaire = tr("Corps de FORMULE valide") - self.editor.afficheInfos(commentaire) + self.editor.afficheMessage(commentaire) else: commentaire = tr("Corps de FORMULE invalide") - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) if str(self.LENomsArgs.text()) != "" and str(self.LENomFormule.text()) != "": self.BOkPressedFormule() @@ -178,13 +178,13 @@ class MonWidgetFormule(QWidget, Ui_WidgetFormule, FacultatifOuOptionnel): nomFormule = str(self.LENomFormule.text()) test, erreur = self.node.item.verifNom(nomFormule) if not test: - self.editor.afficheInfos(erreur, Qt.red) + self.editor.afficheMessage(erreur, Qt.red) return arguments = str(self.LENomsArgs.text()) test, erreur = self.node.item.verifArguments(arguments) if not test: - self.editor.afficheInfos(erreur, Qt.red) + self.editor.afficheMessage(erreur, Qt.red) return expression = str(self.LECorpsFormule.text()) @@ -192,7 +192,7 @@ class MonWidgetFormule(QWidget, Ui_WidgetFormule, FacultatifOuOptionnel): (nomFormule, "REEL", arguments, expression) ) if not test: - self.editor.afficheInfos(erreur, Qt.red) + self.editor.afficheMessage(erreur, Qt.red) return test = self.node.item.object.updateFormulePython( @@ -205,8 +205,8 @@ class MonWidgetFormule(QWidget, Ui_WidgetFormule, FacultatifOuOptionnel): self.node.onValid() self.node.update_valid() commentaire = "Formule saisie" - self.editor.afficheInfos(commentaire) + self.editor.afficheMessage(commentaire) else: commentaire = "Formule incorrecte : " + erreur - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.editor.initModif() diff --git a/InterfaceGUI/QT5/monWidgetMatrice.py b/InterfaceGUI/QT5/monWidgetMatrice.py index a6ea9e71..054c0dd5 100644 --- a/InterfaceGUI/QT5/monWidgetMatrice.py +++ b/InterfaceGUI/QT5/monWidgetMatrice.py @@ -65,7 +65,7 @@ class MonWidgetMatrice(Ui_desWidgetMatrice, Feuille): return boolOk, commentaire = self.monType.verifItem(texte, self.node.item.object) if not boolOk: - self.editor.afficheInfos(tr(commentaire), Qt.red) + self.editor.afficheMessage(tr(commentaire), Qt.red) monItem.setText("") return if self.monType.coloree: @@ -199,12 +199,12 @@ class MonWidgetMatriceOT(MonWidgetMatrice): except: ok = False if ok == False: - self.editor.afficheInfos(tr("Entrer un float SVP"), Qt.red) + self.editor.afficheMessage(tr("Entrer un float SVP"), Qt.red) monItem.setText("") return if self.monType.valSup != None: if val > self.monType.valSup: - self.editor.afficheInfos( + self.editor.afficheMessage( tr("Entrer un float inferieur a ") + repr(self.monType.valSup), Qt.red, ) @@ -212,13 +212,13 @@ class MonWidgetMatriceOT(MonWidgetMatrice): return if self.monType.valMin != None: if val < self.monType.valMin: - self.editor.afficheInfos( + self.editor.afficheMessage( tr("Entrer un float superieur a ") + repr(self.monType.valMin), Qt.red, ) monItem.setText("") return - self.editor.afficheInfos("") + self.editor.afficheMessage("") if self.monType.structure != None: MonWidgetMatrice.__dict__[self.monType.structure](*(self,)) self.acceptVal() diff --git a/InterfaceGUI/QT5/monWidgetPlusieursBase.py b/InterfaceGUI/QT5/monWidgetPlusieursBase.py index d826ae4e..cf9199cc 100644 --- a/InterfaceGUI/QT5/monWidgetPlusieursBase.py +++ b/InterfaceGUI/QT5/monWidgetPlusieursBase.py @@ -231,7 +231,7 @@ class MonWidgetPlusieursBase(Ui_WidgetPlusieursBase, Feuille, GereListe, GerePli if len(listeComplete) > max: texte = tr("Nombre maximum de valeurs ") + str(max) + tr(" atteint") - self.editor.afficheInfos(texte, Qt.red) + self.editor.afficheMessage(texte, Qt.red) return validite, comm, comm2, listeRetour = self.politique.ajoutNTuple(listeComplete) @@ -306,13 +306,13 @@ class MonWidgetPlusieursBase(Ui_WidgetPlusieursBase, Feuille, GereListe, GerePli if valeur != None and valeur != "": commentaire = self.ajout1Valeur(valeur) if commentaire != None: - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) courant.setText("") donneFocus = courant self.reaffiche() return else: - self.editor.afficheInfos("") + self.editor.afficheMessage("") elif donneFocus == None: donneFocus = courant @@ -329,7 +329,7 @@ class MonWidgetPlusieursBase(Ui_WidgetPlusieursBase, Feuille, GereListe, GerePli return min, max = self.node.item.getMinMax() if len(self.listeValeursCourantes) < self.monSimpDef.min: - self.editor.afficheInfos( + self.editor.afficheMessage( tr("nb min de valeurs : ") + str(self.monSimpDef.min) ) if len(self.listeValeursCourantes) < min and oblige == True: @@ -338,7 +338,7 @@ class MonWidgetPlusieursBase(Ui_WidgetPlusieursBase, Feuille, GereListe, GerePli return retour = self.node.item.setValeur(self.listeValeursCourantes) if len(self.listeValeursCourantes) == self.monSimpDef.max: - self.editor.afficheInfos(tr("nb max de valeurs atteint")) + self.editor.afficheMessage(tr("nb max de valeurs atteint")) self.setValide() self.reaffiche() self.inhibeChangeValeur = False diff --git a/InterfaceGUI/QT5/monWidgetPlusieursCreeUserAssd.py b/InterfaceGUI/QT5/monWidgetPlusieursCreeUserAssd.py index f3db649c..cdd42f10 100644 --- a/InterfaceGUI/QT5/monWidgetPlusieursCreeUserAssd.py +++ b/InterfaceGUI/QT5/monWidgetPlusieursCreeUserAssd.py @@ -68,7 +68,7 @@ class MonWidgetPlusieursCreeUserAssd(MonWidgetPlusieursBase): oldValeurUserAssd, valeur ) if commentaire != "" and not validite: - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.lineEditEnCours.setText(oldValeurUserAssd.nom) nomDernierLineEdit = "lineEditVal" + str(self.numLineEditEnCours + 1) dernier = getattr(self, nomDernierLineEdit) @@ -77,7 +77,7 @@ class MonWidgetPlusieursCreeUserAssd(MonWidgetPlusieursBase): validite, objASSD, commentaire = self.objSimp.creeUserASSD(valeur) if commentaire != "" and not validite: - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.lineEditEnCours.setText("") if objASSD: objASSD.supprime(self.objSimp) @@ -116,7 +116,7 @@ class MonWidgetPlusieursCreeUserAssd(MonWidgetPlusieursBase): dernier = getattr(self, nomDernierLineEdit) dernier.setFocus() else: - self.editor.afficheInfos("ajout impossible", Qt.red) + self.editor.afficheMessage("ajout impossible", Qt.red) if objASSD: objASSD.supprime(self.objSimp) self.lineEditEnCours.setText("") diff --git a/InterfaceGUI/QT5/monWidgetPlusieursInto.py b/InterfaceGUI/QT5/monWidgetPlusieursInto.py index b7af991d..73b7d7c1 100644 --- a/InterfaceGUI/QT5/monWidgetPlusieursInto.py +++ b/InterfaceGUI/QT5/monWidgetPlusieursInto.py @@ -91,7 +91,7 @@ class MonWidgetPlusieursInto(Ui_WidgetPlusieursInto, Feuille, GerePlie, GereList min, max = self.node.item.getMinMax() if max < len(self.listeAAfficher): commentaire = tr("impossible de tout selectionner : max =") + str(max) - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.inhibe = False return for i in range(len(self.listeAAfficher)): @@ -235,17 +235,17 @@ class MonWidgetPlusieursInto(Ui_WidgetPlusieursInto, Feuille, GerePlie, GereList if valeur != None and valeur != "": commentaire = self.ajout1Valeur(valeur) if commentaire != None: - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.listeValeursCourantesAvant = self.listeValeursCourantes self.setValeurs() min, max = self.node.item.getMinMax() if len(self.listeValeursCourantes) < min: - self.editor.afficheInfos( + self.editor.afficheMessage( tr("Nombre minimal de valeurs : ") + str(min), Qt.red ) elif len(self.listeValeursCourantes) > max: - self.editor.afficheInfos( + self.editor.afficheMessage( tr("Nombre maximal de valeurs : ") + str(max), Qt.red ) diff --git a/InterfaceGUI/QT5/monWidgetPlusieursIntoOrdonne.py b/InterfaceGUI/QT5/monWidgetPlusieursIntoOrdonne.py index 916e662f..90940295 100644 --- a/InterfaceGUI/QT5/monWidgetPlusieursIntoOrdonne.py +++ b/InterfaceGUI/QT5/monWidgetPlusieursIntoOrdonne.py @@ -254,12 +254,12 @@ class MonWidgetPlusieursIntoOrdonne( self.listeValeursCourantes = self.node.item.getListeValeurs() min, max = self.node.item.getMinMax() if len(self.listeValeursCourantes) + 1 > max: - self.editor.afficheInfos( + self.editor.afficheMessage( tr("Nombre maximal de valeurs : ") + str(max), Qt.red ) return else: - self.editor.afficheInfos("") + self.editor.afficheMessage("") affiche = False for i in range(1, self.indexDernierLabel + 1): @@ -301,11 +301,11 @@ class MonWidgetPlusieursIntoOrdonne( self.listeValeursCourantes = self.node.item.getListeValeurs() min, max = self.node.item.getMinMax() if len(self.listeValeursCourantes) < min: - self.editor.afficheInfos( + self.editor.afficheMessage( tr("Nombre minimal de valeurs : ") + str(min), Qt.red ) else: - self.editor.afficheInfos("") + self.editor.afficheMessage("") if len(listeRetour) == 0: self.node.item.setValeur(None) @@ -313,7 +313,7 @@ class MonWidgetPlusieursIntoOrdonne( self.node.item.setValeur(listeRetour) else: commentaire = comm + " " + comm2 - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.setValide() self.reaffiche() diff --git a/InterfaceGUI/QT5/monWidgetPlusieursPlie.py b/InterfaceGUI/QT5/monWidgetPlusieursPlie.py index 59dbe456..79077377 100644 --- a/InterfaceGUI/QT5/monWidgetPlusieursPlie.py +++ b/InterfaceGUI/QT5/monWidgetPlusieursPlie.py @@ -84,13 +84,13 @@ class MonWidgetPlusieursPlie(Ui_WidgetPlusieursPlie, Feuille): listeValeur = [] for v in listeValeursBrutes: if v == None or pattern_blanc.match(v): - self.editor.afficheInfos( + self.editor.afficheMessage( str(listeValeur) + " Valeurs saisies incorrectes", Qt.red ) return liste, validite = SaisieValeur.TraiteLEValeur(self, str(v)) if not validite: - self.editor.afficheInfos( + self.editor.afficheMessage( str(listeValeur) + " Valeurs saisies incorrectes", Qt.red ) return @@ -103,7 +103,7 @@ class MonWidgetPlusieursPlie(Ui_WidgetPlusieursPlie, Feuille): self.node.item.isValid() self.setValeurs() else: - self.editor.afficheInfos(str(listeValeur) + " " + comm, Qt.red) + self.editor.afficheMessage(str(listeValeur) + " " + comm, Qt.red) self.lineEditVal.setText("") diff --git a/InterfaceGUI/QT5/monWidgetPlusieursTuple.py b/InterfaceGUI/QT5/monWidgetPlusieursTuple.py index b2989231..dadd1683 100644 --- a/InterfaceGUI/QT5/monWidgetPlusieursTuple.py +++ b/InterfaceGUI/QT5/monWidgetPlusieursTuple.py @@ -378,7 +378,7 @@ class MonWidgetPlusieursTuple(Feuille, GereListe): if not validite: if comm2 != "": comm += " " + comm2 - self.editor.afficheInfos( + self.editor.afficheMessage( comm + " " + str(self.objSimp.definition.validators.typeDesTuples), Qt.red, ) @@ -393,7 +393,7 @@ class MonWidgetPlusieursTuple(Feuille, GereListe): return min, max = self.node.item.getMinMax() if self.indexDernierLabel == max: - self.editor.afficheInfos(tr("Nb maximum de valeurs atteint")) + self.editor.afficheMessage(tr("Nb maximum de valeurs atteint")) if self.indexDernierLabel < max and libre == False: self.ajoutLineEdit() self.listeAffichageWidget[-2].setFocus(True) @@ -431,7 +431,7 @@ class MonWidgetPlusieursTuple(Feuille, GereListe): if len(liste) % self.nbValeurs != 0: texte = "Nombre incorrect de valeurs" - self.editor.afficheInfos(tr(texte), Qt.red) + self.editor.afficheMessage(tr(texte), Qt.red) return i = 0 @@ -450,12 +450,12 @@ class MonWidgetPlusieursTuple(Feuille, GereListe): if len(listeComplete) > max: texte = tr("Nombre maximum de valeurs ") + str(max) + tr(" atteint") - self.editor.afficheInfos(texte, Qt.red) + self.editor.afficheMessage(texte, Qt.red) return validite, comm, comm2, listeRetour = self.politique.ajoutNTuple(listeComplete) if not validite: - self.editor.afficheInfos(comm + comm2, Qt.red) + self.editor.afficheMessage(comm + comm2, Qt.red) return # on calcule le dernier lineedit rempli avant de changer la valeur diff --git a/InterfaceGUI/QT5/monWidgetSDCOInto.py b/InterfaceGUI/QT5/monWidgetSDCOInto.py index ae3d339e..399bdeff 100644 --- a/InterfaceGUI/QT5/monWidgetSDCOInto.py +++ b/InterfaceGUI/QT5/monWidgetSDCOInto.py @@ -81,5 +81,5 @@ class MonWidgetSDCOInto(Ui_WidgetSDCOInto, Feuille, SaisieSDCO): else: commentaire = self.node.item.getCr() self.reset_old_valeur(anc_val, mess=mess) - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.Commentaire.setText(tr(commentaire)) diff --git a/InterfaceGUI/QT5/monWidgetSimpComplexe.py b/InterfaceGUI/QT5/monWidgetSimpComplexe.py index a846fd70..9bbdf199 100644 --- a/InterfaceGUI/QT5/monWidgetSimpComplexe.py +++ b/InterfaceGUI/QT5/monWidgetSimpComplexe.py @@ -55,7 +55,7 @@ class MonWidgetSimpComplexe(Ui_WidgetSimpComplexe, Feuille): if type(valeur) not in (list, tuple): self.LEComp.setText(str(valeur)) commentaire = tr("complexe form deprecated, od value : ", valeur) - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) else: typ_cplx, x1, x2 = valeur self.LEReel.setText(str(x1)) @@ -76,15 +76,15 @@ class MonWidgetSimpComplexe(Ui_WidgetSimpComplexe, Feuille): # v=eval(valeur,d) # except : # commentaire=tr("expression invalide") - # self.editor.afficheInfos(commentaire,Qt.red) + # self.editor.afficheMessage(commentaire,Qt.red) # return # try : # i=v.imag - # self.editor.afficheInfos(commentaire) + # self.editor.afficheMessage(commentaire) # self.valeurPressed() # except : # commentaire=tr("l expression n est pas de la forme a+bj") - # self.editor.afficheInfos(commentaire,Qt.red) + # self.editor.afficheMessage(commentaire,Qt.red) def LEReelRPressed(self): # self.LEComp.clear() @@ -92,10 +92,10 @@ class MonWidgetSimpComplexe(Ui_WidgetSimpComplexe, Feuille): valeur = str(self.LEReel.text()) try: a = locale.atof(valeur) - self.editor.afficheInfos(commentaire) + self.editor.afficheMessage(commentaire) except: commentaire = tr("expression invalide") - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) if self.LEImag.text() != "": self.valeurPressed() else: @@ -106,10 +106,10 @@ class MonWidgetSimpComplexe(Ui_WidgetSimpComplexe, Feuille): valeur = str(self.LEImag.text()) try: a = locale.atof(valeur) - self.editor.afficheInfos(commentaire) + self.editor.afficheMessage(commentaire) except: commentaire = tr("expression invalide") - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) if self.LEReel.text() != "": self.valeurPressed() else: @@ -127,13 +127,13 @@ class MonWidgetSimpComplexe(Ui_WidgetSimpComplexe, Feuille): # v=eval(valeur,d) # except : # commentaire=tr("expression invalide") - # self.editor.afficheInfos(commentaire,Qt.red) + # self.editor.afficheMessage(commentaire,Qt.red) # return None # try : # i=v.imag # except : # commentaire=tr("expression n est pas de la forme a+bj") - # self.editor.afficheInfos(commentaire,Qt.red) + # self.editor.afficheMessage(commentaire,Qt.red) # return None # return v @@ -159,7 +159,7 @@ class MonWidgetSimpComplexe(Ui_WidgetSimpComplexe, Feuille): elif self.RBRI.isChecked() == 1: l.append("RI") else: - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.RBMP.setFocus(True) return None try: diff --git a/InterfaceGUI/QT5/monWidgetSimpTuple.py b/InterfaceGUI/QT5/monWidgetSimpTuple.py index 6dfd3514..d764fb12 100644 --- a/InterfaceGUI/QT5/monWidgetSimpTuple.py +++ b/InterfaceGUI/QT5/monWidgetSimpTuple.py @@ -47,7 +47,7 @@ class MonWidgetSimpTuple(Feuille): def valeursPressed(self): aLeFocus = self.focusWidget() - self.editor.afficheInfos("") + self.editor.afficheMessage("") texteValeur = "" for i in range(self.nbValeurs): nomLineEdit = "lineEditVal" + str(i + 1) @@ -79,7 +79,7 @@ class MonWidgetSimpTuple(Feuille): texteValeur += "," validite, commentaire = self.politique.recordValeur(texteValeur) if not validite: - self.editor.afficheInfos( + self.editor.afficheMessage( commentaire + " " + str(self.objSimp.definition.validators.typeDesTuples), diff --git a/InterfaceGUI/QT5/qt_editor.py b/InterfaceGUI/QT5/qt_editor.py index d39d0d16..371da4f4 100755 --- a/InterfaceGUI/QT5/qt_editor.py +++ b/InterfaceGUI/QT5/qt_editor.py @@ -32,7 +32,7 @@ import traceback from Accas.extensions.eficas_translation import tr from Editeur import session from InterfaceGUI.common import comploader -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.QT5 import browser from UiQT5.desBaseWidget import Ui_baseWidget @@ -52,7 +52,7 @@ class QtEditor(Editor, Ui_baseWidget, QWidget): Editeur de jdc """ - def __init__( self, appliEficas, fichier=None, jdc=None, QWParent=None, units=None, include=0): + def __init__( self, appliEficas, fichier=None, jdc=None, QWParent=None, include=0): # ----------------------------------------------------------------------------------------------- QWidget.__init__(self, None) @@ -69,10 +69,10 @@ class QtEditor(Editor, Ui_baseWidget, QWidget): self.sb = None self.QWParent = QWParent - Editor.__init__(self, appliEficas, fichier, jdc, units, include) + Editor.__init__(self, appliEficas, fichier, jdc, include) if self.jdc: comploader.chargerComposants(self.appliEficas.GUIPath) - self.jdc_item = Objecttreeitem.makeObjecttreeitem(self, "nom", self.jdc) + self.jdc_item = objecttreeitem.makeObjecttreeitem(self, "nom", self.jdc) # Particularites IHM : met la fenetre a jour self.initSplitterSizes() @@ -147,7 +147,7 @@ class QtEditor(Editor, Ui_baseWidget, QWidget): def informe(self, titre, txt, critique=True): # ------------------------------------------# if critique: - self.afficheInfos(tr(txt), Qt.red) + self.afficheMessage(tr(txt), Qt.red) QMessageBox.critical(self, tr(titre), tr(txt)) else: QMessageBox.warning(self, tr(titre), tr(txt)) @@ -236,7 +236,7 @@ class QtEditor(Editor, Ui_baseWidget, QWidget): self.close() # ----------------------------------------------# - def afficheInfos(self, message, couleur=Qt.black): + def afficheMessage(self, message, couleur=Qt.black): # ----------------------------------------------# if couleur == "red": couleur = Qt.red if self.sb: @@ -402,7 +402,7 @@ class QtEditor(Editor, Ui_baseWidget, QWidget): tr("Eficas n a pas reussi a copier l objet"), ) self.message = "" - self.afficheInfos("Copie refusee", Qt.red) + self.afficheMessage("Copie refusee", Qt.red) if noeudACopier.treeParent.editor != noeudOuColler.treeParent.editor: try: nom = noeudACopier.item.sd.nom @@ -418,7 +418,7 @@ class QtEditor(Editor, Ui_baseWidget, QWidget): self, tr("Copie refusee"), tr("Copie refusee pour ce type d objet") ) self.message = "" - self.afficheInfos("Copie refusee", Qt.red) + self.afficheMessage("Copie refusee", Qt.red) return # il faut declarer le JDCDisplay_courant modifie @@ -1223,7 +1223,7 @@ class QtEditor(Editor, Ui_baseWidget, QWidget): def viewJdcRapport(self): # ----------------------------# strRapport = self.getJdcRapport() - self._viewText(strRappoer, "Rapport Validation du JDC") + self._viewText(strRapport, "Rapport Validation du JDC") # ------------------# def _newJDCCND(self): diff --git a/InterfaceGUI/QT5/qt_editor_manager.py b/InterfaceGUI/QT5/qt_editor_manager.py index 011d68ea..44125b73 100644 --- a/InterfaceGUI/QT5/qt_editor_manager.py +++ b/InterfaceGUI/QT5/qt_editor_manager.py @@ -61,9 +61,9 @@ class QtEditorManager(EditorManager): self.appliEficas.construitMenu() - #------------------------------------------------------- - def openFile(self, fichier=None, units=None, patron =0): - #------------------------------------------------------- + #-------------------------------------------- + def openFile(self, fichier=None, patron =0): + #-------------------------------------------- result = None if self.appliEficas.code == None: self.appliEficas.definitCode(None, None) @@ -88,7 +88,7 @@ class QtEditorManager(EditorManager): ulfile = os.path.abspath(fichier) self.appliEficas.maConfiguration.saveDir = os.path.split(ulfile)[0] self.appliEficas.addToRecentList(fichier) - maPage = self.getEditor(fichier, units=units) + maPage = self.getEditor(fichier) if maPage: result = maPage if maPage: self.myQtab.setTabText( self.myQtab.indexOf(maPage), os.path.basename(fichier)) @@ -218,19 +218,11 @@ class QtEditorManager(EditorManager): editor = self.dictEditors[index] editor.handleAjoutEtape(nomEtape) - #------------------------------ - def newEditor(self, include=0): - #------------------------------ - if self.appliEficas.multi == True: - self.appliEficas.definitCode(None, None) - if self.appliEficas.code == None: - return - maPage = self.getEditor(include=include) #-------------------------- def newIncludeEditor(self): #-------------------------- - self.newEditor(include=1) + self.getEditor(include=1) #------------------------------------ def viewJdcFichierSource(self): @@ -289,13 +281,13 @@ class QtEditorManager(EditorManager): if index < 0: return self.dictEditors[index].viewJdcRapport() - #------------------------- - def viewJdcPy(self): - #------------------------- + #-------------------------------- + def viewJdcFichierResultat(self): + #-------------------------------- index = self.myQtab.currentIndex() if index < 0: return - self.dictEditors[index].viewJdcPy() + self.dictEditors[index].viewJdcFichierResultat() #-------------------- def handleSave(self): @@ -384,9 +376,14 @@ class QtEditorManager(EditorManager): editor = self.getEditor(fichier=fn, jdc=jdc, include=1) self.appliEficas.addToRecentList(editor.getFileName()) + #------------------------------------------------------------------ - def getEditor(self, fichier=None, jdc=None, units=None, include=0): + def getEditor(self, fichier=None, jdc=None, include=0): #------------------------------------------------------------------ + if self.appliEficas.multi == True: + self.appliEficas.definitCode(None, None) + if self.appliEficas.code == None: + return newWin = 0 double = None for indexEditor in self.dictEditors: @@ -403,7 +400,7 @@ class QtEditorManager(EditorManager): double = editor else: from qt_editor import QtEditor - editor = QtEditor(self.appliEficas, fichier, jdc, self.myQtab, units, include) + editor = QtEditor(self.appliEficas, fichier, jdc, self.myQtab, include) if double != None: self.doubles[editor] = double if editor.jdc: # le fichier est bien un jdc self.editors.append(editor) diff --git a/InterfaceGUI/QT5/qt_eficas.py b/InterfaceGUI/QT5/qt_eficas.py index 2b530b91..24d1da9b 100755 --- a/InterfaceGUI/QT5/qt_eficas.py +++ b/InterfaceGUI/QT5/qt_eficas.py @@ -687,7 +687,7 @@ class QtEficasAppli(EficasAppli, Ui_Eficas, QMainWindow): def fileNew(self): #---------------- try: - self.editorManager.newEditor() + self.editorManager.getEditor() except EficasException as exc: msg = str(exc) if msg != "": @@ -741,7 +741,7 @@ class QtEficasAppli(EficasAppli, Ui_Eficas, QMainWindow): #------------------------ def viewJdcRegles(self): #------------------------ - self.editorManager.handleViewJdcRegles() + self.editorManager.viewJdcRegles() #------------------------------ def viewJdcFichierResultat(self): diff --git a/InterfaceGUI/Web/accasConnecteur.py b/InterfaceGUI/Web/accasConnecteur.py deleted file mode 100755 index dbfb1dc4..00000000 --- a/InterfaceGUI/Web/accasConnecteur.py +++ /dev/null @@ -1,411 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 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 le Web -""" -# Modules Python -import os, sys -import os, sys -sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) - - -# Modules Eficas - -from collections import OrderedDict -import pprint - - -if sys.version_info[0] < 3: - print("Must be using Python 3") - sys.exit() - -class AccasConnecteur : - def __init__(self,code, fichierCata=None, langue=None, fichierComm=None,appWeb=None) : - #------------------------------------------------------------------------------------- - - self.appWeb=appWeb - - if code == None : multi = True - else : multi = False - from Editeur.eficas_go import getEficasSsIhm - self.monEficas=getEficasSsIhm(code=code, salome=0, multi=multi, langue=langue,fichierCata=fichierCata, GUIPath='Web') - - if self.monEficas == None : - self.toWebApp('afficheInfos', 'erreur à la construction de l appli Eficas', 'rouge') - return - # faire l equivalent du editorManager - if fichierCata == None and fichierComm : - self.toWebApp('afficheInfos', 'pour ouvrir un JDC, il faut connaitre le catalogue', 'rouge') - return - self.litFichierComm(fichierComm) - - def toWebApp(self,fction,*args, **kwargs): - #----------------------------------------- - #if fction =='propageValide' : - debug=0 - if debug : print ('PNPNPN : self.appWeb.toWebApp', fction, *args, **kwargs) - if self.appWeb == None : - #if fction =='propageValide' : print ('self.appWeb.toWebApp propageValide', self.monEditeur.getNodeById(args[0]).nom) - return - self.appWeb.fromConnecteur(fction, *args, **kwargs) - - def litFichierComm(self,fichierComm=None): - #----------------------------------------- - from InterfaceGUI.Web.editor import JDCWebEditor - self.monEditeur=JDCWebEditor(self.monEficas,fichierComm,connecteur=self) - - def getListeCommandes(self): - #--------------------------- - if self.monEditeur == None : return - return (self.monEditeur.jdc.getListeCmd()) - - def getListeMotsClesFilsPossibles(self,nomCommande): - #----------------------------------------- - # ici il faut programmer getListeMotsClesFilsPossibles dans P_ENTITE - # Pour l instant on renvoie entites - # doit aussi pouvoir etre appele sur FACT et BLOC - maCommande= getattr(self.monEditeur.jdc.cata,nomCommande) - laListe=maCommande.entites - return laListe - - - def getDicoForFancy(self,obj,debug=0) : - #--------------------------------- - dico=self.monEditeur.getDicoForFancy(obj) - if debug : - import pprint - pprint.pprint (dico) - return dico - - - def changeValeur(self,id,valeur) : - #--------------------------------- - """ - id : identifiant unique - valeur : valeur saisie dans le formulaire - doit-on mettre l ancienne valeur en retour qui serait utile si validité = Non - """ - monNode=self.monEditeur.getNodeById(id) - #print (' change Valeur', monNode) - #(idUnique, commentaire, validite)=monNode.fauxNoeudGraphique.traiteValeurSaisie(valeur) - #print ('retour ChangeValeur',idUnique, commentaire, validite ) - return monNode.fauxNoeudGraphique.traiteValeurSaisie(valeur) - - def updateSDName(self,id,sdnom) : - #--------------------------------- - monNode=self.monEditeur.getNodeById(id) - return monNode.fauxNoeudGraphique.updateSDName(sdnom) - - def suppNode(self,id): - #------------------- - - monNode=self.monEditeur.getNodeById(id) - print ('monNode', monNode) - retour=monNode.fauxNoeudGraphique.delete() - return retour - - def appendChild(self,id,name,pos=None): - #------------------------------------- - """ - Methode pour ajouter un objet fils name a l objet associe au noeud id. - On peut l'ajouter en debut de liste (pos='first'), en fin (pos='last') - ou en position pos_ieme de la liste. - retour = nouvelIdUnique ou None - """ - monNode=self.monEditeur.getNodeById(id) - if monNode.fauxNoeudGraphique == None : - print ('PNPN pas de noeud Graphique associe a l id') - return - if debug : print (monNode.fauxNoeudGraphique) - retour = monNode.fauxNoeudGraphique.appendChild(name,pos) - return retour - - def saveFile(self,fileName): - #---------------------------- - """ - sauve le .comm dans fileName (si fileName = None, - alors la sauvegarde est faite dans le fichier courant) - retour = True/False et le nom du fichier sauvegarde - """ - return self.monEditeur.saveFile(fileName) - - -if __name__ == "__main__": - import prefs - name='prefs_'+prefs.code - __import__(name) - code=prefs.code - monEficasConnecteur=accasConnecteur(code, langue='ang') - - testAjoutSuppProc=0 - if testAjoutSuppProc : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - r=monEficasConnecteur.appendChild(idRacine,'MonProc',0) - print ('ajout de MonProc en postion 0', r) - r=monEficasConnecteur.appendChild(idRacine,'MonProc2',1) - print ('ajout de MonProc2 en postion 1', r) - r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last') - print ('ajout de MonProc2 en postion last', r) - r=monEficasConnecteur.appendChild(idRacine,'MonProc2','first') - print ('ajout de MonProc2 en postion first', r) - r=monEficasConnecteur.appendChild(idRacine,'MonProc2',) - print ('ajout de MonProc2 sans poistion ne fonctionne pas', r) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - etape2=d['children'][0]['key'] - print ('je detruis' ,etape2) - r=monEficasConnecteur.suppNode(etape2) - print (r) - monProc2=d['children'][0]['key'] - r=monEficasConnecteur.appendChild(monProc2,'Fact2') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProc.comm') - - testAjoutSuppFact2=0 - if testAjoutSuppFact2 : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monProc2=d['children'][2]['key'] - r=monEficasConnecteur.appendChild(monProc2,'Fact2') - #print (r) - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact2.comm') - - testAjoutSuppFact=0 - if testAjoutSuppFact : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monProc2=d['children'][0]['key'] - print ('id monProc2 : ', monProc2) - #r=monEficasConnecteur.appendChild(monProc2,'Fact2') - #print ('ajout de Fact2 dans monProc2 reussi', r) - #r=monEficasConnecteur.appendChild(monProc2,'Fact2') - #print ('ajout de Fact2 dans monProc2 inadequat', r) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - fact11=d['children'][0]['children'][2]['key'] - fact12=d['children'][0]['children'][3]['key'] - fact13=d['children'][0]['children'][4]['key'] - fact14=d['children'][0]['children'][5]['key'] - pprint.pprint(d) - #print (d) - #monFact2=d['children'][0]['children'][3]['key'] - #print (monFact2) - #r=monEficasConnecteur.suppNode(monFact2) - #print (r) - #fact11=d['children'][0]['children'][2]['key'] - #monNode=monEficasConnecteur.monEditeur.getNodeById(fact11) - #print ('monNode', monNode) - r=monEficasConnecteur.suppNode(fact11) - r=monEficasConnecteur.suppNode(fact12) - r=monEficasConnecteur.suppNode(fact13) - print ('________________________________________________') - print ('________________________________________________') - print ('________________________________________________') - print ('________________________________________________') - print ('________________________________________________') - r=monEficasConnecteur.suppNode(fact14) - print (r) - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #r=monEficasConnecteur.appendChild(monProc2,'Fact2') - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #print (d) - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #pprint.pprint(d) - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #print (r) - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #fact12=d['children'][0]['children'][3]['key'] - #print(d['children'][0]['children'][3]['title']) - #r=monEficasConnecteur.appendChild(fact12,'paramInFact1') - #fact1=d['children'][0]['children'][2] - #print (fact1) - #fact11=d['children'][0]['children'][2]['key'] - #print (fact11) - #print ('******************************************************') - #r=monEficasConnecteur.suppNode(fact11) - #r=monEficasConnecteur.appendChild(fact11,'paramInFact1') - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #paramInFact12=d['children'][0]['children'][2]['children'][0]['key'] - #r=monEficasConnecteur.suppNode(paramInFact12) - #print (r) - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact.comm') - exit() - - testChangeValeur=0 - if testChangeValeur : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - print ('idRacine', idRacine) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #pprint.pprint(d) - - monProc=d['children'][0]['key'] - print ('monProc', monProc) - param1=d['children'][0]['children'][0]['key'] - print ('param1', param1) - r=monEficasConnecteur.changeValeur(param1,'65') - param12=d['children'][0]['children'][1]['key'] - print ('param12', param12) - r=monEficasConnecteur.changeValeur(param12,'9') - r=monEficasConnecteur.appendChild(monProc,'param11') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - param11=d['children'][0]['children'][1]['key'] - print ('param11', param11) - r=monEficasConnecteur.changeValeur(param11,'11') - - print ('______________ creation du bloc _____________________') - r=monEficasConnecteur.changeValeur(param1,'2') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #pprint.pprint(d) - param1_inBloc=d['children'][0]['children'][3]['key'] - # on supprime le bloc - r=monEficasConnecteur.changeValeur(param1_inBloc,'1') - # on le rajoute (pb du bloc dans le bloc) - r=monEficasConnecteur.changeValeur(param1_inBloc,'2') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - param1_inBlocDeBloc=d['children'][0]['children'][4]['key'] - r=monEficasConnecteur.changeValeur(param1_inBlocDeBloc,'2') - print ('______________ creation du bloc _____________________') - param2_inBloc=d['children'][0]['children'][6]['key'] - r=monEficasConnecteur.changeValeur(param1_inBlocDeBloc,'2') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/changeValeur.comm') - exit() - - # creation du bloc - #r=monEficasConnecteur.changeValeur(i,'2') - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProcEtBloc.comm') - #pprint.pprint(d) - - # suppression du bloc - #r=monEficasConnecteur.changeValeur(i,'1') - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/suppressionBloc.comm') - #pprint.pprint(d) - - # ajout du Fact2 - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - e=d['children'][2]['key'] - r=monEficasConnecteur.appendChild(e,'Fact2') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact2.comm') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - mf=d['children'][2]['children'][4]['key'] - print (mf) - r=monEficasConnecteur.appendChild(mf,'paramFacultatif') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFacultatif.comm') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - mf=d['children'][2]['children'][4]['children'][1]['key'] - r=monEficasConnecteur.suppNode(mf) - print (r) - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFacultatifEtSuppresse.comm') - # essai enlever un mot clef qu on ne peut pas enlever - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - mf=d['children'][2]['children'][1]['key'] - r=monEficasConnecteur.suppNode(mf) - print (r) - #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutPuisSuppresFact2.comm') - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #pprint.pprint(d) - #print ('_________', r) - - testPropageValide = 0 - if testPropageValide : - monEficasConnecteur.litFichierComm('propageValide.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - #r=monEficasConnecteur.appendChild(idRacine,'MonProc',0) - #print ('ajout de MonProc en position 0', r) - #r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last') - r=monEficasConnecteur.appendChild(idRacine,'MonProc','last') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - param1PLast = d['children'][1]['children'][0]['key'] - r=monEficasConnecteur.changeValeur(param1PLast,'1') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/propageValide.comm') - print ('ajout de MonProc2 en postion last', r) - - testUpdateInfo = 0 - if testUpdateInfo : - print ('________________________ testUpdateInfo ___________________________') - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - print ('idRacine', idRacine) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - badMonProc2 = d['children'][0]['children'][0]['key'] - r=monEficasConnecteur.appendChild(badMonProc2,'Fact1') - monProc2 = d['children'][0]['key'] - #print ('idProc2', monProc2) - #print (d) - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - print (['children'][0]) - - testAjoutSimpListe=0 - if testAjoutSimpListe : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monProc2=d['children'][2]['key'] - - testNommeProc=1 - if testNommeProc : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - r=monEficasConnecteur.appendChild(idRacine,'MonOper','last') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monOper=d['children'][2]['key'] - bOk, message = monEficasConnecteur.updateSDName(monOper,'toto') - print ('in testNommeProc, bOk, message', bOk, message) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monParam=d['children'][2]['children'][0]['key'] - r=monEficasConnecteur.changeValeur(monParam,'65') - bOk, message = monEficasConnecteur.updateSDName(monOper,'toto') - print ('in testNommeProc, bOk, message', bOk, message) - - #print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_2Procs.comm') - #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)) - - #print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_Bloc.comm') - #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_Bloc.comm') - #print (monEficasConnecteur.generDicoPourWeb()) - #print (monEficasConnecteur.getDicoObjetsPourWeb(monEficasConnecteur.monEditeur.tree.racine)) - #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)) - #print ('\n') - - #print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_2Fact.comm') - #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') - #print (monEficasConnecteur.generDicoPourWeb()) - #monDicoAAfficher = (monEficasConnecteur.getDicoObjetsPourWeb(monEficasConnecteur.monEditeur.tree.racine)) - #monEficasConnecteur.traiteDico(monDicoAAfficher) - #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)) - - #print ('/home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_Fact.comm') - #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_Fact.comm') - #print (monEficasConnecteur.generDicoPourWeb()) - #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)) - #print ('\n') - diff --git a/InterfaceGUI/Web/compobloc.py b/InterfaceGUI/Web/compobloc.py index 3b99752c..e5c87c50 100644 --- a/InterfaceGUI/Web/compobloc.py +++ b/InterfaceGUI/Web/compobloc.py @@ -19,7 +19,7 @@ # -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.Web import compofact from InterfaceGUI.Web import browser diff --git a/InterfaceGUI/Web/compofact.py b/InterfaceGUI/Web/compofact.py index a44d9c59..2a6b648c 100644 --- a/InterfaceGUI/Web/compofact.py +++ b/InterfaceGUI/Web/compofact.py @@ -20,7 +20,7 @@ from InterfaceGUI.Web import browser from InterfaceGUI.Web import typeNode -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from Accas.extensions.eficas_translation import tr @@ -53,7 +53,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): -class FACTTreeItem(Objecttreeitem.ObjectTreeItem): +class FACTTreeItem(objecttreeitem.ObjectTreeItem): itemNode=Node def isExpandable(self): diff --git a/InterfaceGUI/Web/compojdc.py b/InterfaceGUI/Web/compojdc.py index 806a7252..52821f2c 100644 --- a/InterfaceGUI/Web/compojdc.py +++ b/InterfaceGUI/Web/compojdc.py @@ -18,7 +18,7 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.Web import browser from InterfaceGUI.Web import typeNode from Accas.extensions.eficas_translation import tr @@ -30,7 +30,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuRacine): return param -class JDCTreeItem(Objecttreeitem.ObjectTreeItem): +class JDCTreeItem(objecttreeitem.ObjectTreeItem): itemNode=Node def isExpandable(self): diff --git a/InterfaceGUI/Web/compomclist.py b/InterfaceGUI/Web/compomclist.py index bf515a00..0403ff31 100644 --- a/InterfaceGUI/Web/compomclist.py +++ b/InterfaceGUI/Web/compomclist.py @@ -23,7 +23,7 @@ from InterfaceGUI.Web import browser from InterfaceGUI.Web import typeNode from Accas.extensions.eficas_translation import tr -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from Accas.processing.P_OBJECT import ErrorObj @@ -139,7 +139,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): -class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): +class MCListTreeItem(objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): """ La classe MCListTreeItem joue le role d'un adaptateur pour les objets du processing Accas instances de la classe MCLIST. Elle adapte ces objets pour leur permettre d'etre integres en tant que @@ -165,7 +165,7 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): def isExpandable(self): if len(self._object) > 1: - return Objecttreeitem.SequenceTreeItem.isExpandable(self) + return objecttreeitem.SequenceTreeItem.isExpandable(self) else: return compofact.FACTTreeItem.isExpandable(self) diff --git a/InterfaceGUI/Web/compooper.py b/InterfaceGUI/Web/compooper.py index d5ea4251..7ce84364 100644 --- a/InterfaceGUI/Web/compooper.py +++ b/InterfaceGUI/Web/compooper.py @@ -20,7 +20,7 @@ from Accas.extensions.eficas_translation import tr from Accas.extensions.eficas_exception import EficasException -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.Web import browser from InterfaceGUI.Web import typeNode @@ -40,7 +40,7 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNode): # typeNode.PopUpMenuNode.createPopUpMenu(self) -class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): +class EtapeTreeItem(objecttreeitem.ObjectTreeItem): """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du processing Accas. Elle leur permet d'etre affichés comme des noeuds d'un arbre graphique. diff --git a/InterfaceGUI/Web/compoparam.py b/InterfaceGUI/Web/compoparam.py index 849b4269..47892f7a 100644 --- a/InterfaceGUI/Web/compoparam.py +++ b/InterfaceGUI/Web/compoparam.py @@ -25,7 +25,7 @@ # import modules EFICAS -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.Web import browser from InterfaceGUI.Web import typeNode from Accas.extensions.eficas_translation import tr @@ -36,7 +36,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): -class PARAMTreeItem(Objecttreeitem.ObjectTreeItem): +class PARAMTreeItem(objecttreeitem.ObjectTreeItem): """ Classe servant a definir l'item porte par le noeud de l'arbre d'EFICAS qui represente le PARAMETRE diff --git a/InterfaceGUI/Web/compoproc.py b/InterfaceGUI/Web/compoproc.py index 5b8b28cf..f793cc46 100644 --- a/InterfaceGUI/Web/compoproc.py +++ b/InterfaceGUI/Web/compoproc.py @@ -17,7 +17,7 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.Web import compooper from InterfaceGUI.Web import browser from InterfaceGUI.Web import typeNode diff --git a/InterfaceGUI/Web/composimp.py b/InterfaceGUI/Web/composimp.py index df284fde..ead37971 100644 --- a/InterfaceGUI/Web/composimp.py +++ b/InterfaceGUI/Web/composimp.py @@ -21,7 +21,7 @@ import traceback # Modules Eficas -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from Accas.processing.P_CR import justifyText from Accas import SalomeEntry from Accas import ASSD @@ -48,7 +48,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): -class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): +class SIMPTreeItem(objecttreeitem.AtomicObjectTreeItem): itemNode=Node def init(self) : diff --git a/InterfaceGUI/Web/web_editor.py b/InterfaceGUI/Web/web_editor.py index ab602fb8..34b69b6c 100755 --- a/InterfaceGUI/Web/web_editor.py +++ b/InterfaceGUI/Web/web_editor.py @@ -26,74 +26,84 @@ import traceback # Modules Eficas from Accas.extensions.eficas_translation import tr +from Accas.extensions.eficas_exception import EficasException -from Editeur import session from InterfaceGUI.common import comploader -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.Web import browser debug = False -from InterfaceGUI.editorSsIhm import JDCEditorSsIhm +from Editeur.editor import Editor -class JDCWebEditor(JDCEditorSsIhm): -# ------------------------------- # +# -------------------- # +class WebEditor(Editor): +# -------------------- # """ Editeur de jdc """ - def __init__ (self,appliEficas,fichier = None, jdc= None, connecteur = None ): - #------------------------------------------------------------------------ + #-------------------------------------------------------------------------- + def __init__ (self,appliEficas,fichier = None, jdc= None, session = None ): + #-------------------------------------------------------------------------- - self.connecteur=connecteur - JDCEditorSsIhm.__init__(self,appliEficas,fichier) + self.connecteur=appliEficas + Editor.__init__(self,appliEficas,fichier) self.dicoIdNode={} comploader.chargerComposants('Web') self.tree=None if self.jdc: - self.jdc_item=Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdc ) + self.jdc_item=objecttreeitem.makeObjecttreeitem( self, "nom", self.jdc ) if self.jdc_item : self.tree = browser.JDCTree( self.jdc_item, self ) + #----------------------------- def getNodeById(self,nodeId ): #----------------------------- if nodeId in self.dicoIdNode : return self.dicoIdNode[nodeId] else : return None + #--------------------------------------- def reconstruitChaineDIndex(self,nodeId): #--------------------------------------- + """ utilise pour logguer les fonctions """ if nodeId in self.dicoIdNode : node=self.dicoIdNode[nodeId] - return JDCEditorSsIhm.reconstruitChaineDIndex(self,node) + if node.object == self.jdc : + return 'monEficasConnecteur.monEditeur.tree.racine.item.idUnique' + chaine="['key']" + templateChaine='["children"][{}]' + aTraiter=node.object + while hasattr(aTraiter,'parent') and aTraiter.parent: + chaine=templateChaine.format(aTraiter.getIndexDsParent())+chaine + aTraiter=aTraiter.parent + chaine='d'+chaine + return (chaine) else : return None - def getDicoObjetsCompletsPourTree(self,obj) : - #----------------------------------- - #print ('editor getDicoObjetsCompletsPourTree pour ' ,self, obj) - if self.tree == None : return {} - return obj.getDicoObjetsCompletsPourTree() - - def getDicoObjetsPourWeb(self,obj) : - #----------------------------------- - if self.tree == None : return {} - return obj.getDicoObjetsPourWeb() - + #----------------------------- def getDicoForFancy(self,obj) : - #----------------------------------- + #----------------------------- if self.tree == None : return {} return obj.getDicoForFancy() - def afficheInfos(self,txt,couleur=None): + #------------------------------------- + def afficheMessage(self,txt,couleur=None): #--------------------------------------- - self.connecteur.toWebApp('afficheInfos', txt, couleur) - JDCEditorSsIhm.afficheInfos(self,txt,couleur) + self.connecteur.toWebApp('afficheMessage', txt, couleur) + Editor.afficheMessage(self,'message to webapp',txt,couleur) + #------------------------------------- def afficheAlerte(self,titre,message): #------------------------------------- self.connecteur.toWebApp('afficheAlerte', titre , message) - JDCEditorSsIhm.afficheAlerte(self,titre,message) + Editor.afficheMessage(self,titre,message) + #--------------------------- + def getListeCommandes(self): + #--------------------------- + return (self.jdc.getListeCmd()) diff --git a/InterfaceGUI/Web/web_editor_manager.py b/InterfaceGUI/Web/web_editor_manager.py new file mode 100644 index 00000000..ab70df2d --- /dev/null +++ b/InterfaceGUI/Web/web_editor_manager.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2007-2024 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 +# + +import os +from Accas.extensions.eficas_translation import tr +from Editeur.editor_manager import EditorManager + +#-----------------------------------# +class WebEditorManager(EditorManager): +#-----------------------------------# + """ + classe qui gere quel est l editor web actif + """ + + #-------------------------------- + def __init__(self, appliEficas): + #-------------------------------- + super().__init__(appliEficas) + self.dictSessions={} + + + #--------------------------------------- + def afficheInfos(self,txt,couleur=None): + #--------------------------------------- + """ + Est-ce que le web_manager a des infos a afficher ? + sans session ? + """ + self.appliEficas.toWebApp('afficheInfos', txt, couleur) + + + # ------------------------------------------------------ + def getEditor(self, fichier=None, jdc=None, session = 1 ): + # ------------------------------------------------------ + """ + Retourne un nouvel editeur ou le meme si doublon + gere la liste des connexions pour propager les infos + a affiner : le nom du fichier n est pas determinant + il faut aussi la machine dont il provient + """ + for indexEditor in self.dictEditors: + editor = self.dictEditors[indexEditor] + if self.samePath(fichier, editor.getFileName()): + double = editor + + else: + from web_editor import WebEditor + editor = WebEditor(self.appliEficas, fichier) + if editor.jdc: # le fichier est bien un jdc + self.editors.append(editor) + else: + editor=None + return editor + + diff --git a/InterfaceGUI/Web/web_eficas.py b/InterfaceGUI/Web/web_eficas.py index a68d60af..b63e97f8 100755 --- a/InterfaceGUI/Web/web_eficas.py +++ b/InterfaceGUI/Web/web_eficas.py @@ -22,412 +22,72 @@ import os, sys from Editeur.eficas_appli import EficasAppli from InterfaceGUI.Web.web_editor_manager import WebEditorManager +from Accas.extensions.eficas_exception import EficasException +activeLogging=0 +if activeLogging : + from Editeur.loggingEnvironnement import loggingEnvironnement, fonctionLoguee +else : + fonctionLoguee = lambda func: func + +#--------------------------------# class WebEficasAppli(EficasAppli): +#--------------------------------# """ Class implementing the main QT user interface. """ - #---------------------------------------------------------------------------------------------------------------------------------------------- - def __init__(self, code=None, versionCode=None, salome=1, multi=False, langue="fr", ssCode=None, fichierCata=None, GUIPath="InterfaceGUI.QT5"): - #---------------------------------------------------------------------------------------------------------------------------------------------- + #--------------------------------------------------------------------------------------------------------------------------------------------------------- + def __init__(self, code=None, versionCode=None, salome=0, multi=False, langue="fr", ssCode=None, fichierCata=None, GUIPath="InterfaceGUI.QT5", appWeb=None): + #--------------------------------------------------------------------------------------------------------------------------------------------------------- """ Constructor """ - EficasAppli.__init__( self, code, versionCode, salome, multi, langue, ssCode, fichierCata, GUIPath) - self.WebEditorManager = WebEditorManager(self) - self.GUIPath = GUIPath - - if code == None : multi = True - else : multi = False - from Editeur.eficas_go import getEficasSsIhm - - if fichierCata == None and fichierComm : - self.toWebApp('afficheInfos', 'pour ouvrir un JDC, il faut connaitre le catalogue', 'rouge') + EficasAppli.__init__( self, code, versionCode, salome, multi, langue, ssCode, fichierCata, GUIPath, appWeb) + self.editorManager = WebEditorManager(self) + if self.appWeb == None : + super().afficheMessage ('lancement Eficas WEB' , 'le parametre appWeb est obligatoire') return - self.litFichierComm(fichierComm) - - - #def fileOpen(self): - # try: - # self.editorManager.openFile() - # except EficasException as exc: - # msg = str(exc) - # if msg != "": - # QMessageBox.warning(self, tr("Erreur"), msg) - - #def fileSave(self): - # return self.editorManager.handleSave() - - #def fileSaveAs(self): - # return self.editorManager.handleSaveAs() - - #def fileClose(self): - # self.editorManager.handleClose(texte="&Fermer") - - #def fileCloseAll(self): - # self.editorManager.closeAllFiles(texte="&Fermer") - - #def fileExit(self): - # On peut sortir sur Abort - # res = self.editorManager.closeAllFiles() - # if res != 2: - # self.close() - # return res - - - - def toWebApp(self,fction,*args, **kwargs): + #----------------------------------------- + def toWebApp(self, fction,*args, **kwargs): #----------------------------------------- #if fction =='propageValide' : debug=0 - if debug : print ('PNPNPN : self.appWeb.toWebApp', fction, *args, **kwargs) - if self.appWeb == None : - #if fction =='propageValide' : print ('self.appWeb.toWebApp propageValide', self.monEditeur.getNodeById(args[0]).nom) - return + if debug : print ('PNPNPN : WebEficasAppli.toWebApp', fction, *args, **kwargs) + if self.appWeb == None : return + #if fction =='propageValide' : print ('self.appWeb.toWebApp propageValide', self.monEditeur.getNodeById(args[0]).nom) self.appWeb.fromConnecteur(fction, *args, **kwargs) - - def litFichierComm(self,fichierComm=None): - #----------------------------------------- - from InterfaceGUI.Web.editor import JDCWebEditor - self.monEditeur=JDCWebEditor(self.monEficas,fichierComm,connecteur=self) - - def getListeCommandes(self): - #--------------------------- - if self.monEditeur == None : return - return (self.monEditeur.jdc.getListeCmd()) - - def getListeMotsClesFilsPossibles(self,nomCommande): - #----------------------------------------- - # ici il faut programmer getListeMotsClesFilsPossibles dans P_ENTITE - # Pour l instant on renvoie entites - # doit aussi pouvoir etre appele sur FACT et BLOC - maCommande= getattr(self.monEditeur.jdc.cata,nomCommande) - laListe=maCommande.entites - return laListe - - - def getDicoForFancy(self,obj,debug=0) : - #--------------------------------- - dico=self.monEditeur.getDicoForFancy(obj) - if debug : - import pprint - pprint.pprint (dico) - return dico - - def changeValeur(self,id,valeur) : - #--------------------------------- - """ - id : identifiant unique - valeur : valeur saisie dans le formulaire - doit-on mettre l ancienne valeur en retour qui serait utile si validité = Non - """ - monNode=self.monEditeur.getNodeById(id) - #print (' change Valeur', monNode) - #(idUnique, commentaire, validite)=monNode.fauxNoeudGraphique.traiteValeurSaisie(valeur) - #print ('retour ChangeValeur',idUnique, commentaire, validite ) - return monNode.fauxNoeudGraphique.traiteValeurSaisie(valeur) + #----------------------- + def createEditor(self): + #----------------------- + monEditor = self.editorManager.getEditor(self) + return monEditor - def updateSDName(self,id,sdnom) : - #--------------------------------- - monNode=self.monEditeur.getNodeById(id) - return monNode.fauxNoeudGraphique.updateSDName(sdnom) - def suppNode(self,id): - #------------------- - - monNode=self.monEditeur.getNodeById(id) - print ('monNode', monNode) - retour=monNode.fauxNoeudGraphique.delete() - return retour - - def appendChild(self,id,name,pos=None): - #------------------------------------- - """ - Methode pour ajouter un objet fils name a l objet associe au noeud id. - On peut l'ajouter en debut de liste (pos='first'), en fin (pos='last') - ou en position pos_ieme de la liste. - retour = nouvelIdUnique ou None - """ - monNode=self.monEditeur.getNodeById(id) - if monNode.fauxNoeudGraphique == None : - print ('PNPN pas de noeud Graphique associe a l id') - return - if debug : print (monNode.fauxNoeudGraphique) - retour = monNode.fauxNoeudGraphique.appendChild(name,pos) - return retour - - def saveFile(self,fileName): - #---------------------------- - """ - sauve le .comm dans fileName (si fileName = None, - alors la sauvegarde est faite dans le fichier courant) - retour = True/False et le nom du fichier sauvegarde - """ - return self.monEditeur.saveFile(fileName) + @fonctionLoguee + #--------------------------- + def openFile(self, fichier): + #--------------------------- + try: + monEditor = self.editorManager.getEditor(fichier) + except EficasException as exc: + self.afficheMessage('erreur ouverture fichier', str(exc),critical=True) + monEditor = None + return monEditor + + @fonctionLoguee + #----------------------------------------------------- + def afficheMessage (self, titre, texte,critical=True): + #----------------------------------------------------- +#TODO : le afficheMessage doit tenir compte de qui + if critical : + self.toWebApp('afficheMessage', titre+texte, 'rouge') + else : + self.toWebApp('afficheMessage', titre+texte) if __name__ == "__main__": - import prefs - name='prefs_'+prefs.code - __import__(name) - code=prefs.code - monEficasConnecteur=WebEficasAppli(code, langue='ang', GUIPath) - - testAjoutSuppProc=0 - if testAjoutSuppProc : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - r=monEficasConnecteur.appendChild(idRacine,'MonProc',0) - print ('ajout de MonProc en postion 0', r) - r=monEficasConnecteur.appendChild(idRacine,'MonProc2',1) - print ('ajout de MonProc2 en postion 1', r) - r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last') - print ('ajout de MonProc2 en postion last', r) - r=monEficasConnecteur.appendChild(idRacine,'MonProc2','first') - print ('ajout de MonProc2 en postion first', r) - r=monEficasConnecteur.appendChild(idRacine,'MonProc2',) - print ('ajout de MonProc2 sans poistion ne fonctionne pas', r) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - etape2=d['children'][0]['key'] - print ('je detruis' ,etape2) - r=monEficasConnecteur.suppNode(etape2) - print (r) - monProc2=d['children'][0]['key'] - r=monEficasConnecteur.appendChild(monProc2,'Fact2') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProc.comm') - - testAjoutSuppFact2=0 - if testAjoutSuppFact2 : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monProc2=d['children'][2]['key'] - r=monEficasConnecteur.appendChild(monProc2,'Fact2') - #print (r) - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact2.comm') - - testAjoutSuppFact=0 - if testAjoutSuppFact : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monProc2=d['children'][0]['key'] - print ('id monProc2 : ', monProc2) - #r=monEficasConnecteur.appendChild(monProc2,'Fact2') - #print ('ajout de Fact2 dans monProc2 reussi', r) - #r=monEficasConnecteur.appendChild(monProc2,'Fact2') - #print ('ajout de Fact2 dans monProc2 inadequat', r) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - fact11=d['children'][0]['children'][2]['key'] - fact12=d['children'][0]['children'][3]['key'] - fact13=d['children'][0]['children'][4]['key'] - fact14=d['children'][0]['children'][5]['key'] - pprint.pprint(d) - #print (d) - #monFact2=d['children'][0]['children'][3]['key'] - #print (monFact2) - #r=monEficasConnecteur.suppNode(monFact2) - #print (r) - #fact11=d['children'][0]['children'][2]['key'] - #monNode=monEficasConnecteur.monEditeur.getNodeById(fact11) - #print ('monNode', monNode) - r=monEficasConnecteur.suppNode(fact11) - r=monEficasConnecteur.suppNode(fact12) - r=monEficasConnecteur.suppNode(fact13) - print ('________________________________________________') - print ('________________________________________________') - print ('________________________________________________') - print ('________________________________________________') - print ('________________________________________________') - r=monEficasConnecteur.suppNode(fact14) - print (r) - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #r=monEficasConnecteur.appendChild(monProc2,'Fact2') - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #print (d) - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #pprint.pprint(d) - #r=monEficasConnecteur.appendChild(monProc2,'Fact1') - #print (r) - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #fact12=d['children'][0]['children'][3]['key'] - #print(d['children'][0]['children'][3]['title']) - #r=monEficasConnecteur.appendChild(fact12,'paramInFact1') - #fact1=d['children'][0]['children'][2] - #print (fact1) - #fact11=d['children'][0]['children'][2]['key'] - #print (fact11) - #print ('******************************************************') - #r=monEficasConnecteur.suppNode(fact11) - #r=monEficasConnecteur.appendChild(fact11,'paramInFact1') - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #paramInFact12=d['children'][0]['children'][2]['children'][0]['key'] - #r=monEficasConnecteur.suppNode(paramInFact12) - #print (r) - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact.comm') - exit() - - testChangeValeur=0 - if testChangeValeur : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - print ('idRacine', idRacine) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #pprint.pprint(d) - - monProc=d['children'][0]['key'] - print ('monProc', monProc) - param1=d['children'][0]['children'][0]['key'] - print ('param1', param1) - r=monEficasConnecteur.changeValeur(param1,'65') - param12=d['children'][0]['children'][1]['key'] - print ('param12', param12) - r=monEficasConnecteur.changeValeur(param12,'9') - r=monEficasConnecteur.appendChild(monProc,'param11') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - param11=d['children'][0]['children'][1]['key'] - print ('param11', param11) - r=monEficasConnecteur.changeValeur(param11,'11') - - print ('______________ creation du bloc _____________________') - r=monEficasConnecteur.changeValeur(param1,'2') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #pprint.pprint(d) - param1_inBloc=d['children'][0]['children'][3]['key'] - # on supprime le bloc - r=monEficasConnecteur.changeValeur(param1_inBloc,'1') - # on le rajoute (pb du bloc dans le bloc) - r=monEficasConnecteur.changeValeur(param1_inBloc,'2') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - param1_inBlocDeBloc=d['children'][0]['children'][4]['key'] - r=monEficasConnecteur.changeValeur(param1_inBlocDeBloc,'2') - print ('______________ creation du bloc _____________________') - param2_inBloc=d['children'][0]['children'][6]['key'] - r=monEficasConnecteur.changeValeur(param1_inBlocDeBloc,'2') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/changeValeur.comm') - exit() - - # creation du bloc - #r=monEficasConnecteur.changeValeur(i,'2') - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProcEtBloc.comm') - #pprint.pprint(d) - - # suppression du bloc - #r=monEficasConnecteur.changeValeur(i,'1') - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/suppressionBloc.comm') - #pprint.pprint(d) - - # ajout du Fact2 - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - e=d['children'][2]['key'] - r=monEficasConnecteur.appendChild(e,'Fact2') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact2.comm') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - mf=d['children'][2]['children'][4]['key'] - print (mf) - r=monEficasConnecteur.appendChild(mf,'paramFacultatif') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFacultatif.comm') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - mf=d['children'][2]['children'][4]['children'][1]['key'] - r=monEficasConnecteur.suppNode(mf) - print (r) - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFacultatifEtSuppresse.comm') - # essai enlever un mot clef qu on ne peut pas enlever - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - mf=d['children'][2]['children'][1]['key'] - r=monEficasConnecteur.suppNode(mf) - print (r) - #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutPuisSuppresFact2.comm') - #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #pprint.pprint(d) - #print ('_________', r) - - testPropageValide = 0 - if testPropageValide : - monEficasConnecteur.litFichierComm('propageValide.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - #r=monEficasConnecteur.appendChild(idRacine,'MonProc',0) - #print ('ajout de MonProc en position 0', r) - #r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last') - r=monEficasConnecteur.appendChild(idRacine,'MonProc','last') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - param1PLast = d['children'][1]['children'][0]['key'] - r=monEficasConnecteur.changeValeur(param1PLast,'1') - (ok,newFile)=monEficasConnecteur.saveFile('/tmp/propageValide.comm') - print ('ajout de MonProc2 en postion last', r) - - testUpdateInfo = 0 - if testUpdateInfo : - print ('________________________ testUpdateInfo ___________________________') - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - print ('idRacine', idRacine) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - badMonProc2 = d['children'][0]['children'][0]['key'] - r=monEficasConnecteur.appendChild(badMonProc2,'Fact1') - monProc2 = d['children'][0]['key'] - #print ('idProc2', monProc2) - #print (d) - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - r=monEficasConnecteur.appendChild(monProc2,'Fact1') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - print (['children'][0]) - - testAjoutSimpListe=0 - if testAjoutSimpListe : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monProc2=d['children'][2]['key'] - - testNommeProc=1 - if testNommeProc : - monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique - r=monEficasConnecteur.appendChild(idRacine,'MonOper','last') - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monOper=d['children'][2]['key'] - bOk, message = monEficasConnecteur.updateSDName(monOper,'toto') - print ('in testNommeProc, bOk, message', bOk, message) - d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - monParam=d['children'][2]['children'][0]['key'] - r=monEficasConnecteur.changeValeur(monParam,'65') - bOk, message = monEficasConnecteur.updateSDName(monOper,'toto') - print ('in testNommeProc, bOk, message', bOk, message) - - #print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_2Procs.comm') - #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') - #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)) - - #print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_Bloc.comm') - #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_Bloc.comm') - #print (monEficasConnecteur.generDicoPourWeb()) - #print (monEficasConnecteur.getDicoObjetsPourWeb(monEficasConnecteur.monEditeur.tree.racine)) - #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)) - #print ('\n') - - #print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_2Fact.comm') - #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') - #print (monEficasConnecteur.generDicoPourWeb()) - #monDicoAAfficher = (monEficasConnecteur.getDicoObjetsPourWeb(monEficasConnecteur.monEditeur.tree.racine)) - #monEficasConnecteur.traiteDico(monDicoAAfficher) - #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)) - - #print ('/home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_Fact.comm') - #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_Fact.comm') - #print (monEficasConnecteur.generDicoPourWeb()) - #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)) - #print ('\n') - + print ('todo') diff --git a/InterfaceGUI/cinqC/compoSelection.py b/InterfaceGUI/cinqC/compoSelection.py index 916b8b68..76c35b08 100644 --- a/InterfaceGUI/cinqC/compoSelection.py +++ b/InterfaceGUI/cinqC/compoSelection.py @@ -18,7 +18,7 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # from __future__ import absolute_import -from Editeur import Objecttreeitem +from Editeur import objecttreeitem from InterfaceGUI.cinqC import browser from InterfaceGUI.cinqC import compoproc diff --git a/InterfaceGUI/cinqC/compofact.py b/InterfaceGUI/cinqC/compofact.py index 109f4071..8b7a7978 100644 --- a/InterfaceGUI/cinqC/compofact.py +++ b/InterfaceGUI/cinqC/compofact.py @@ -23,7 +23,7 @@ from InterfaceGUI.QT5 import typeNode from Accas.extensions.eficas_translation import tr -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem import traceback @@ -56,7 +56,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodePartiel): typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) -class FACTTreeItem(Objecttreeitem.ObjectTreeItem): +class FACTTreeItem(objecttreeitem.ObjectTreeItem): itemNode=Node def isExpandable(self): diff --git a/InterfaceGUI/cinqC/compojdc.py b/InterfaceGUI/cinqC/compojdc.py index 21cf9bcc..e27b3c84 100644 --- a/InterfaceGUI/cinqC/compojdc.py +++ b/InterfaceGUI/cinqC/compojdc.py @@ -18,7 +18,7 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.cinqC import browser from Accas.extensions.eficas_translation import tr @@ -32,7 +32,7 @@ class Node(browser.JDCNode): -class JDCTreeItem(Objecttreeitem.ObjectTreeItem): +class JDCTreeItem(objecttreeitem.ObjectTreeItem): itemNode=Node def isExpandable(self): diff --git a/InterfaceGUI/cinqC/compomclist.py b/InterfaceGUI/cinqC/compomclist.py index 49a02e58..7499c113 100644 --- a/InterfaceGUI/cinqC/compomclist.py +++ b/InterfaceGUI/cinqC/compomclist.py @@ -26,7 +26,7 @@ from InterfaceGUI.cinqC import browser from InterfaceGUI.QT5 import typeNode from Accas.extensions.eficas_translation import tr -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from Accas.processing.P_OBJECT import ErrorObj @@ -73,7 +73,7 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): -class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): +class MCListTreeItem(objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): """ La classe MCListTreeItem joue le role d'un adaptateur pour les objets du processing Accas instances de la classe MCLIST. Elle adapte ces objets pour leur permettre d'etre integres en tant que @@ -110,7 +110,7 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): def isExpandable(self): if len(self._object) > 1: - return Objecttreeitem.SequenceTreeItem.isExpandable(self) + return objecttreeitem.SequenceTreeItem.isExpandable(self) else: return compofact.FACTTreeItem.isExpandable(self) diff --git a/InterfaceGUI/cinqC/compooper.py b/InterfaceGUI/cinqC/compooper.py index d11373ef..e5a824f7 100644 --- a/InterfaceGUI/cinqC/compooper.py +++ b/InterfaceGUI/cinqC/compooper.py @@ -20,7 +20,7 @@ import os import tempfile -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.cinqC import browser class Node(browser.JDCNode ): @@ -41,7 +41,7 @@ class Node(browser.JDCNode ): return MonWidgetCommande(self,self.editor,self.item.object) -class EtapeTreeItem(Objecttreeitem.ObjectTreeItem): +class EtapeTreeItem(objecttreeitem.ObjectTreeItem): """ La classe EtapeTreeItem est un adaptateur des objets ETAPE du processing Accas. Elle leur permet d'etre affichés comme des noeuds d'un arbre graphique. diff --git a/InterfaceGUI/cinqC/compoproc.py b/InterfaceGUI/cinqC/compoproc.py index 37e83d71..86fd8cfc 100644 --- a/InterfaceGUI/cinqC/compoproc.py +++ b/InterfaceGUI/cinqC/compoproc.py @@ -18,7 +18,7 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # from __future__ import absolute_import -from InterfaceGui.common import Objecttreeitem +from InterfaceGui.common import objecttreeitem from InterfaceGUI.cinqC import browser from InterfaceGUI.cinqC import compooper diff --git a/InterfaceGUI/cinqC/composimp.py b/InterfaceGUI/cinqC/composimp.py index d3561fd7..1fe7da53 100644 --- a/InterfaceGUI/cinqC/composimp.py +++ b/InterfaceGUI/cinqC/composimp.py @@ -18,7 +18,7 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -from InterfaceGUI.common import Objecttreeitem +from InterfaceGUI.common import objecttreeitem from InterfaceGUI.cinqC import browser from InterfaceGUI.QT5.compojdc import JDCTreeItem diff --git a/InterfaceGUI/cinqC/qt_editor.py b/InterfaceGUI/cinqC/qt_editor.py index c88f5159..98fc88e5 100644 --- a/InterfaceGUI/cinqC/qt_editor.py +++ b/InterfaceGUI/cinqC/qt_editor.py @@ -28,7 +28,7 @@ from PyQt5.QtWidgets import QWidget from Editeur.editor import Editor from UiQT5.editor5C import Ui_editor5C from InterfaceGui.common import comploader -from InterfaceGui.common import Objecttreeitem +from InterfaceGui.common import objecttreeitem from InterfaceGUI.cinqC import browser from InterfaceGUI.cinqC.connectDB import connectDB import Accas.IO.writer as generator @@ -41,7 +41,7 @@ class QtEditor(Ui_editor5C, Editor, QWidget): Editeur de jdc 5C """ - def __init__ (self,appliEficas,fichier = None, jdc=None, QWParent=None, units = None, include=0): + def __init__ (self,appliEficas,fichier = None, jdc=None, QWParent=None, include=0): #------------------------------------------------------------------------------------------------ debug = 0 @@ -97,7 +97,7 @@ class QtEditor(Ui_editor5C, Editor, QWidget): self.jdcSelection=self._newJDC(texte=texte) self.jdcSelection.analyse() if debug : print (self.jdcSelection.etapes) - self.jdcSelectionItem = Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdcSelection ) + self.jdcSelectionItem = objecttreeitem.makeObjecttreeitem( self, "nom", self.jdcSelection ) if self.jdcSelectionItem : self.treeJdcSelection = browser.JDCTree( self.jdcSelectionItem, self ) if debug : print (self.treeJdcSelection) @@ -167,7 +167,7 @@ class QtEditor(Ui_editor5C, Editor, QWidget): if debug : print ('texte newJDC' , texte) self.jdcLabels=self._newJDC(texte=texte) self.jdcLabels.analyse() - jdcLabelsItem = Objecttreeitem.makeObjecttreeitem( self, "nom", self.jdcLabels ) + jdcLabelsItem = objecttreeitem.makeObjecttreeitem( self, "nom", self.jdcLabels ) if jdcLabelsItem : treeJdcLabels = browser.JDCTree( jdcLabelsItem, self ) widgetLabels = treeJdcLabels.racine.children[0].fenetre diff --git a/InterfaceGUI/cinqC/qt_eficas.py b/InterfaceGUI/cinqC/qt_eficas.py index 945b61d0..f1cd30ac 100644 --- a/InterfaceGUI/cinqC/qt_eficas.py +++ b/InterfaceGUI/cinqC/qt_eficas.py @@ -35,7 +35,7 @@ class QtEficasAppli(Ui_Eficas5C, QtEficasAppli): super().__init__(code=code, salome=salome, multi=multi, langue=langue, versionCode=versionCode, GUIPath=GUIPath) self.withXSD = True self.GUIPath = GUIPath - self.editorManager.newEditor() + self.editorManager.getEditor() def connecterSignaux(self) : diff --git a/InterfaceGUI/common/Objecttreeitem.py b/InterfaceGUI/common/objecttreeitem.py similarity index 100% rename from InterfaceGUI/common/Objecttreeitem.py rename to InterfaceGUI/common/objecttreeitem.py diff --git a/InterfaceGUI/common/traiteSaisie.py b/InterfaceGUI/common/traiteSaisie.py index d7cb0b99..c2a93a1a 100644 --- a/InterfaceGUI/common/traiteSaisie.py +++ b/InterfaceGUI/common/traiteSaisie.py @@ -38,7 +38,7 @@ class SaisieValeur(object): validite,commentaire=self.politique.recordValeur(nouvelleValeurFormat) if commentaire != "" : if validite : self.editor.afficheCommentaire(commentaire) - else : self.editor.afficheInfos(commentaire,'red') + else : self.editor.afficheMessage(commentaire,'red') self.inSaisieValeur=False self.setValide() @@ -56,7 +56,7 @@ class SaisieValeur(object): try: nouvelleValeur = str(self.lineEditVal.text()) except UnicodeEncodeError as e: - self.editor.afficheInfos("pb d encoding", Qt.red) + self.editor.afficheMessage("pb d encoding", Qt.red) validite, commentaire = self.politique.recordValeur(None) self.lineEditVal.setText("") self.setValide() @@ -74,7 +74,7 @@ class SaisieValeur(object): if self.node.item.definition.validators != None: if self.node.item.definition.validators.verifItem(nouvelleValeur) != 1: commentaire = self.node.item.definition.validators.infoErreurItem() - self.editor.afficheInfos(commentaire, Qt.red) + self.editor.afficheMessage(commentaire, Qt.red) self.inSaisieValeur = False return @@ -82,7 +82,7 @@ class SaisieValeur(object): validite, commentaire = self.politique.recordValeur(nouvelleValeurFormat) if commentaire != "": if validite: self.editor.afficheCommentaire(commentaire) - else: self.editor.afficheInfos(commentaire, 'red') + else: self.editor.afficheMessage(commentaire, 'red') self.inSaisieValeur = False self.setValide() @@ -134,7 +134,7 @@ class SaisieValeur(object): commentaire = tr( "Veuillez entrer le complexe sous forme aster ou sous forme python" ) - self.editor.afficheInfos(commentaire) + self.editor.afficheMessage(commentaire) return listeValeurs, 0 else: # ce n'est pas un tuple a la mode aster diff --git a/Web/mdm.py b/Web/mdm.py index 97c4534f..26803393 100755 --- a/Web/mdm.py +++ b/Web/mdm.py @@ -1,7 +1,6 @@ # coding: utf-8 #!/usr/bin/env python3 import sys -from accasConnecteur import AccasConnecteur code='Essai' #code=None @@ -52,16 +51,21 @@ app.config["REDIS_URL"] = "redis://localhost" app.register_blueprint(sse, url_prefix='/stream') ### Eficas Connector -def createConnecteur(app): - monConnecteur=AccasConnecteur(code, langue='ang',appWeb=app) - return monConnecteur +def createWebAppli(app): + import os + sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')) + from Editeur.eficas_go import getEficas + eficasAppli=getEficas(code, langue='ang',GUIPath= 'Web',appWeb=app) + return eficasAppli -monConnecteur=createConnecteur(app) + +eficasAppli=createWebAppli(app) debug=1 if debug : + eficasEditeur=eficasAppli.getEditor() print ('les commandes dans le catalogue') print ('_______________________________') - print (monConnecteur.getListeCommandes()) + print (eficasEditeur.getListeCommandes()) def fromConnecteur(maFonction,*args,**kwargs): fnct=globals()[maFonction] @@ -96,9 +100,9 @@ def deleteChildren(idList): #TODO: Câbler la sélection du catalogue avant d'activer les appels suivants # car si la page Web n'est pas rendue et que le connecteur génère une erreur... boom ! -def afficheInfos(txt, couleur): #TODO: RENAME TO ... displayWarning - print ('Flask/afficheInfos: ', txt, couleur) - # sse.publish( {'txt':txt, 'color':couleur, 'messageClass':"alert-warning" ,'message': "Hello from afficheInfos!"}, +def afficheMessage(txt, couleur): #TODO: RENAME TO ... displayWarning + print ('Flask/afficheMessage: ', txt, couleur) + # sse.publish( {'txt':txt, 'color':couleur, 'messageClass':"alert-warning" ,'message': "Hello from afficheMessage!"}, # type='displayMessage') def afficheAlerte(titre, message): #TODO: RENAME TO ... displayDanger @@ -126,13 +130,13 @@ def updateSimp(): id=req['id'];value=req['value'] # id, value = req.values() # Dangereux correspondance implicite value = str(value) #On peut écrire Pi - rId,message,changeDone = monConnecteur.changeValeur(id,value); + rId,message,changeDone = eficasEditeur.changeValeur(id,value); assert(rId==id) #changeDone = True print ("changeDone : ",changeDone) # Ne pas recuperer et ne pas renvoyer le noeud dans le cas du SIMP # (le changeDone et l''ancienne valeur ds la WebApp suffit - node = monConnecteur.getDicoForFancy(monConnecteur.monEditeur.getNodeById(id)) + node = eficasEditeur.getDicoForFancy(eficasEditeur.getNodeById(id)) print("Flask/updateSimp node : ",node) # return jsonify([myTreeDico]) @@ -155,7 +159,7 @@ def updateSDName(): print(req['id']) id=req['id'];sdnom=req['sdnom'] sdnom = str(sdnom) #On peut écrire Pi - changeDone,message = monConnecteur.updateSDName(id,sdnom); + changeDone,message = eficasEditeur.updateSDName(id,sdnom); #changeDone = True print ("changeDone : ",changeDone) @@ -178,7 +182,7 @@ def removeNode(): # Print the dictionary print("/removeNode ",req);print("/removeNode ",req['id']); id = req['id']; - ret,message = monConnecteur.suppNode(id); + ret,message = eficasEditeur.suppNode(id); print ("/removeNode : ret : ",ret," message : ",message) return make_response(json.dumps( {'ret':ret, 'message':message} )) @@ -197,8 +201,8 @@ def appendChild(): print(__file__+"/appendChild : ",req); id=req['id'];name=req['name'];pos=req['pos']; # id, value = req.values() # Dangereux correspondance implicite - #rId,message,changeDone = monConnecteur.appendChild(id,name,pos); - newId = monConnecteur.appendChild(id,name,pos); + #rId,message,changeDone = eficasEditeur.appendChild(id,name,pos); + newId = eficasEditeur.appendChild(id,name,pos); print (__file__+"/appendChild : newId : ",newId); return make_response(json.dumps( {'id':newId} )) @@ -213,11 +217,20 @@ def appendChild(): @app.route('/') def index(): - - monConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Fact.comm') - #monConnecteur.litFichierComm('../WebTest/edg_REP1300_FULL_PN.comm') - myFancyTreeDico=monConnecteur.getDicoForFancy(monConnecteur.monEditeur.tree.racine) - +#PN decider de ce qu on appelle +# Lecture du cata +# Lecture du fichier + #eficasEditeur = eficasAppli.litFichierComm('../Codes/WebTest/web_tres_simple_avec_2Fact.comm') + #eficasAppli.litFichierComm('../WebTest/edg_REP1300_FULL_PN.comm') + + eficasEditeur = eficasAppli.openFile('../Codes/WebTest/web_tres_simple_avec_2Fact.comm') + if not(eficasEditeur) : + return render_template('commandes_2.html', + titre='Pb a la lecture', + listeCommandes = [], + tree= None + ) + myFancyTreeDico=eficasEditeur.getDicoForFancy(eficasEditeur.tree.racine) myFancyTreeJS=json.dumps([myFancyTreeDico],indent=4) #TODO : remove indent if not DEBUG print("---- myFancyTreeDico ----") @@ -227,7 +240,7 @@ def index(): return render_template('commandes_2.html', titre=code, - listeCommandes = monConnecteur.getListeCommandes(), + listeCommandes = eficasEditeur.getListeCommandes(), tree=myFancyTreeJS, # tree=tree4Fancy, ) -- 2.39.2