From 421317ae4077deeaf47fc49215ce1d2f639de1f8 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Tue, 20 Jul 2021 17:50:53 +0200 Subject: [PATCH] =?utf8?q?report=20manuel=20de=20la=20V8=5Fdev=20pour=20le?= =?utf8?q?s=20unit=C3=A9s=20et=20les=20corrections=20sur=20les=20tuples.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Editeur/catadesc.py | 32 ++++- Ihm/I_MCSIMP.py | 1 - InterfaceQT4/configuration.py | 2 + InterfaceQT4/feuille.py | 10 ++ InterfaceQT4/monWidgetPlusieursTuple.py | 26 ++--- InterfaceQT4/monWidgetSimpBase.py | 5 +- InterfaceQT4/monWidgetSimpComplexe.py | 111 +++++++++--------- InterfaceQT4/monWidgetSimpTupleN.py | 7 ++ InterfaceQT4/qtEficasSsIhm.py | 4 +- InterfaceQT4/readercata.py | 34 +++++- UiQT5/Tuple10.ui | 20 ++-- UiQT5/Tuple2.ui | 4 +- UiQT5/Tuple3.ui | 6 +- UiQT5/Tuple4.ui | 8 +- UiQT5/Tuple5.ui | 10 +- UiQT5/Tuple6.ui | 12 +- UiQT5/Tuple7.ui | 14 +-- UiQT5/Tuple8.ui | 16 +-- UiQT5/Tuple9.ui | 18 +-- UiQT5/desWidgetPlusieursBase.ui | 16 ++- UiQT5/desWidgetPlusieursTuple.ui | 11 +- UiQT5/desWidgetSimpBase.ui | 59 ++++++++-- UiQT5/desWidgetSimpComplexe.ui | 143 +++++++++-------------- UiQT5/desWidgetTuple10.ui | 62 ++++++++-- UiQT5/desWidgetTuple2.ui | 28 ++++- UiQT5/desWidgetTuple3.ui | 27 ++++- UiQT5/desWidgetTuple4.ui | 34 ++++-- UiQT5/desWidgetTuple5.ui | 36 ++++-- UiQT5/desWidgetTuple6.ui | 38 ++++-- UiQT5/desWidgetTuple7.ui | 53 +++++++-- UiQT5/desWidgetTuple8.ui | 58 +++++++-- UiQT5/desWidgetTuple9.ui | 62 +++++++--- balisesXSD.py | 149 ++++++++++++++++++++++++ generator_XML.py | 116 ++++++++++++++++++ 34 files changed, 912 insertions(+), 320 deletions(-) create mode 100644 balisesXSD.py create mode 100644 generator_XML.py diff --git a/Editeur/catadesc.py b/Editeur/catadesc.py index e0623af6..3a30d159 100644 --- a/Editeur/catadesc.py +++ b/Editeur/catadesc.py @@ -24,7 +24,7 @@ except : pass class CatalogDescription(object): def __init__(self, labelCode, fichierCata, formatFichierOut = "python", formatFichierIn='python', - default = False, code = None,ss_code=None,): + default = False, code = None,ssCode=None, selectable = True, userName=None): """ This class can be used to describe an Eficas catalog. @@ -43,8 +43,19 @@ class CatalogDescription(object): :type code: string :param code: Used to indicate the code associated to this catalog - :type ss_code: string - :param ss_code: scheme associated to this catalog (Map only) + :type ssCode: string + :param ssCode: scheme associated to this catalog (Map only) + + :type userName: string + :param userName: name of the catalog as it will appear in the list + + :type selectable: boolean + :param selectable: indicate if this catalog appears in the list. + Setting this parameter to False is useful to keep + old catalogs to edit existing files but to forbid + to use them to create new files. + + """ @@ -55,11 +66,26 @@ class CatalogDescription(object): self.formatFichierIn = formatFichierIn self.default = default self.code = code + self.ssCode = ssCode + if userName is None: + self.userName = labelCode + else: + self.userName = userName + self.selectable = selectable + @staticmethod def createFromTuple(cataTuple): #print "Warning: Describing a catalog with a tuple is deprecated. " \ # "Please create a CatalogDescription instance directly." + if cataTuple[0] == 'TELEMAC': + desc = CatalogDescription(code = cataTuple[0], + ssCode = cataTuple[1], + labelCode = cataTuple[0]+cataTuple[1], + fichierCata = cataTuple[2], + formatFichierOut = cataTuple[3], + formatFichierIn = cataTuple[4]) + return desc if cataTuple[0] == 'MAP' : desc = CatalogDescription(code = cataTuple[0], labelCode = cataTuple[1], diff --git a/Ihm/I_MCSIMP.py b/Ihm/I_MCSIMP.py index 5aba5368..653d2dec 100644 --- a/Ihm/I_MCSIMP.py +++ b/Ihm/I_MCSIMP.py @@ -305,7 +305,6 @@ class MCSIMP(I_OBJECT.OBJECT): return self.definition.homo=='information' - def validVal(self,valeur): """ Verifie que la valeur passee en argument (valeur) est valide diff --git a/InterfaceQT4/configuration.py b/InterfaceQT4/configuration.py index d7971bc9..c4ab5c1a 100644 --- a/InterfaceQT4/configuration.py +++ b/InterfaceQT4/configuration.py @@ -143,6 +143,8 @@ class configBase(object): self.withXSD=False self.afficheIhm=True + self.afficheUQ=False + diff --git a/InterfaceQT4/feuille.py b/InterfaceQT4/feuille.py index 1111d88f..1ee105cb 100644 --- a/InterfaceQT4/feuille.py +++ b/InterfaceQT4/feuille.py @@ -79,8 +79,18 @@ class Feuille(QWidget,ContientIcones,SaisieValeur,FacultatifOuOptionnel): self.setIconesGenerales() self.setCommentaire() self.setZoneInfo() + self.setUnite() + + def setUnite(self): + if self.monSimpDef.unite == None : + if hasattr( self,'lineEditUnite') : self.lineEditUnite.setText(' ') + else : + if hasattr( self,'lineEditUnite') : self.lineEditUnite.setText(self.monSimpDef.unite) + else : self.editor.informe('Erreur de Catalogue','Champ Unite non prevu pour '+ self.nom + ' correction du catalogue souhaitable, prevenez la maintenance', False) + + def setNom(self): self.debutToolTip="" nomTraduit=tr(self.objSimp.nom) diff --git a/InterfaceQT4/monWidgetPlusieursTuple.py b/InterfaceQT4/monWidgetPlusieursTuple.py index 7a7ffd3f..9899faab 100644 --- a/InterfaceQT4/monWidgetPlusieursTuple.py +++ b/InterfaceQT4/monWidgetPlusieursTuple.py @@ -68,7 +68,7 @@ class TupleCustom(object) : for i in range(self.tailleTuple): - nomLE="lineEditVal_"+str(i+1) + nomLE="lineEditVal"+str(i+1) courant=getattr(self,nomLE) courant.num=index courant.dansUnTuple=True @@ -83,7 +83,7 @@ class TupleCustom(object) : listeVal=[] for i in range(self.tailleTuple): - nomLE="lineEditVal_"+str(i+1) + nomLE="lineEditVal"+str(i+1) courant=getattr(self,nomLE) val=str(courant.text()) @@ -110,7 +110,7 @@ class TupleCustom(object) : listeVal=[] valeurNulle=True for i in range(self.tailleTuple): - nomLE="lineEditVal_"+str(i+1) + nomLE="lineEditVal"+str(i+1) courant=getattr(self,nomLE) try : if str(value[i]) != "" : valeurNulle=False @@ -140,7 +140,7 @@ class TupleCustom(object) : vide=True print (self.tailleTuple) for i in range(self.tailleTuple): - nomLE="lineEditVal_"+str(i+1) + nomLE="lineEditVal"+str(i+1) courant=getattr(self,nomLE) self.valeur.append(courant.valeur) if courant.valeur!= None : vide = False @@ -164,7 +164,7 @@ class TupleCustom(object) : #------------------- self.valeur=None for i in range(self.tailleTuple): - nomLE="lineEditVal_"+str(i+1) + nomLE="lineEditVal"+str(i+1) courant=getattr(self,nomLE) courant.setText("") @@ -305,17 +305,17 @@ class MonWidgetPlusieursTuple(Feuille,GereListe): for i in range(self.nbValeurs) : num=i+1 - nomLineEdit='lineEditVal_'+str(num) + nomLineEdit='lineEditVal'+str(num) lineEditVal=getattr(nouveauLE,nomLineEdit) self.listeAffichageWidget.append(lineEditVal) - #self.listeAffichageWidget.append(nouveauLE.lineEditVal_1) - #self.listeAffichageWidget.append(nouveauLE.lineEditVal_2) - #if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal_3) + #self.listeAffichageWidget.append(nouveauLE.lineEditVal1) + #self.listeAffichageWidget.append(nouveauLE.lineEditVal2) + #if self.nbValeurs == 3 : self.listeAffichageWidget.append(nouveauLE.lineEditVal3) self.etablitOrdre() # deux lignes pour que le ensureVisible fonctionne - self.estVisible=nouveauLE.lineEditVal_1 + self.estVisible=nouveauLE.lineEditVal1 if inInit==False :QTimer.singleShot(1, self.rendVisibleLigne) def etablitOrdre(self): @@ -405,7 +405,7 @@ class MonWidgetPlusieursTuple(Feuille,GereListe): self.changeValeur(changeDePlace=True) self.numLineEditEnCours=num2 self.lineEditEnCours=courant2 - courant2.lineEditVal_1.setFocus(True) + courant2.lineEditVal1.setFocus(True) def ajoutNValeur(self,liste): #---------------------------- @@ -455,7 +455,7 @@ class MonWidgetPlusieursTuple(Feuille,GereListe): nomLEARemplir=self.nomLine+str(indexDernierRempli+1) LEARemplir=getattr(self,nomLEARemplir) for n in range(self.nbValeurs) : - nomLineEdit='lineEditVal_'+str(n+1) + nomLineEdit='lineEditVal'+str(n+1) lineEditVal=getattr(LEARemplir,nomLineEdit) lineEditVal.setText(str(t[n])) else : @@ -472,7 +472,7 @@ class MonWidgetPlusieursTuple(Feuille,GereListe): nouveauLE.setValeur(t) for n in range(self.nbValeurs) : - nomLineEdit='lineEditVal_'+str(n+1) + nomLineEdit='lineEditVal'+str(n+1) lineEditVal=getattr(nouveauLE,nomLineEdit) self.listeAffichageWidget.append(lineEditVal) indexDernierRempli = indexDernierRempli+1 diff --git a/InterfaceQT4/monWidgetSimpBase.py b/InterfaceQT4/monWidgetSimpBase.py index 5f545c0a..fe9c0012 100644 --- a/InterfaceQT4/monWidgetSimpBase.py +++ b/InterfaceQT4/monWidgetSimpBase.py @@ -40,6 +40,7 @@ class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): Feuille.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) + if 'R' or 'I' in self.monSimpDef.type : self.lineEditVal.setMinimumWidth(525) self.parentQt.commandesLayout.insertWidget(-1,self,1) self.setFocusPolicy(Qt.StrongFocus) if monSimpDef.homo == 'constant' : self.lineEditVal.setReadOnly(True) @@ -76,10 +77,6 @@ class MonWidgetSimpBase (Ui_WidgetSimpBase,Feuille): elif repr(valeurTexte.__class__).find("PARAMETRE") > 0: chaine = repr(valeur) else : - #PN ???? - #try : - # chaine=QString("").setNum(valeurTexte) - #except : chaine=str(valeurTexte) self.oldValeurTexte=chaine self.lineEditVal.setText(chaine) diff --git a/InterfaceQT4/monWidgetSimpComplexe.py b/InterfaceQT4/monWidgetSimpComplexe.py index 4f60eb7b..8ab5d5d3 100644 --- a/InterfaceQT4/monWidgetSimpComplexe.py +++ b/InterfaceQT4/monWidgetSimpComplexe.py @@ -48,12 +48,10 @@ class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille): self.LEReel.returnPressed.connect(self.LEReelRPressed) self.RBRI.clicked.connect(self.valeurPressed ) self.RBMP.clicked.connect(self.valeurPressed ) - self.LEComp.returnPressed.connect(self.LECompRPressed) - self.maCommande.listeAffichageWidget.append(self.LEComp) - #self.maCommande.listeAffichageWidget.append(self.RBRI) - #self.maCommande.listeAffichageWidget.append(self.RBMP) - #self.maCommande.listeAffichageWidget.append(self.LEReel) - #self.maCommande.listeAffichageWidget.append(self.LEImag) + self.maCommande.listeAffichageWidget.append(self.RBRI) + self.maCommande.listeAffichageWidget.append(self.RBMP) + self.maCommande.listeAffichageWidget.append(self.LEReel) + self.maCommande.listeAffichageWidget.append(self.LEImag) def setValeurs(self): @@ -62,6 +60,8 @@ class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille): if valeur == None or valeur == '' : return 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) else : typ_cplx,x1,x2=valeur self.LEReel.setText(str(x1)) @@ -71,28 +71,29 @@ class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille): else : self.RBMP.setChecked(1) - def LECompRPressed(self) : - self.LEReel.clear() - self.LEImag.clear() - commentaire=tr("expression valide") - valeur = str(self.LEComp.text()) - d={} - try : - v=eval(valeur,d) - except : - commentaire=tr("expression invalide") - self.editor.afficheInfos(commentaire,Qt.red) - return - try : - i=v.imag - self.editor.afficheInfos(commentaire) - self.valeurPressed() - except : - commentaire=tr("l expression n est pas de la forme a+bj") - self.editor.afficheInfos(commentaire,Qt.red) + #def LECompRPressed(self) : + # self.LEReel.clear() + # self.LEImag.clear() + # commentaire=tr("expression valide") + # valeur = str(self.LEComp.text()) + # d={} + # if 1 : + # try : + # v=eval(valeur,d) + # except : + # commentaire=tr("expression invalide") + # self.editor.afficheInfos(commentaire,Qt.red) + # return + # try : + # i=v.imag + # self.editor.afficheInfos(commentaire) + # self.valeurPressed() + # except : + # commentaire=tr("l expression n est pas de la forme a+bj") + # self.editor.afficheInfos(commentaire,Qt.red) def LEReelRPressed(self): - self.LEComp.clear() + #self.LEComp.clear() commentaire=tr("expression valide") valeur = str(self.LEReel.text()) try : @@ -102,9 +103,9 @@ class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille): commentaire=tr("expression invalide") self.editor.afficheInfos(commentaire,Qt.red) if self.LEImag.text()!="" : self.valeurPressed() + else : self.LEImag.setFocus(True) def LEImagRPressed(self): - self.LEComp.clear() commentaire=tr("expression valide") valeur = str(self.LEImag.text()) try : @@ -114,40 +115,36 @@ class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille): commentaire=tr("expression invalide") self.editor.afficheInfos(commentaire,Qt.red) if self.LEReel.text()!="" : self.valeurPressed() + else : self.LEReel.setFocus(True) def finCommentaire(self): commentaire="valeur de type complexe" return commentaire - def getValeurComp(self): - commentaire=tr("expression valide") - valeur = str(self.LEComp.text()) - d={} - try : - v=eval(valeur,d) - except : - commentaire=tr("expression invalide") - self.editor.afficheInfos(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) - return None - return v + #def getValeurComp(self): + # commentaire=tr("expression valide") + # valeur = str(self.LEComp.text()) + # d={} + # try : + # v=eval(valeur,d) + # except : + # commentaire=tr("expression invalide") + # self.editor.afficheInfos(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) + # return None + # return v def valeurPressed(self): - if self.LEComp.text()== "" and (self.LEReel.text()=="" or self.LEImag.text()=="") : - return - if self.LEComp.text()== "" : valeur = self.getValeurRI() - else : - if self.LEReel.text() != "" or self.LEImag.text() != "" : - commentaire=tr("entrer une seule valeur SVP") - self.editor.afficheInfos(commentaire,Qt.red) - return - valeur= self.getValeurComp() + if (self.LEReel.text()=="" and self.LEImag.text()=="") : self.LEReel.setFocus(True) + if (self.LEReel.text()=="" and self.LEImag.text()!="") : self.LEReel.setFocus(True) + if (self.LEReel.text()!="" and self.LEImag.text()=="") : self.LEImag.setFocus(True) + valeur = self.getValeurRI() self.politique.recordValeur(valeur) self.reaffiche() self.parentQt.donneFocus() @@ -157,13 +154,11 @@ class MonWidgetSimpComplexe (Ui_WidgetSimpComplexe,Feuille): Retourne le complexe saisi par l'utilisateur """ l=[] - if (self.RBMP.isChecked() == 1 ) : - l.append("MP") - elif (self.RBRI.isChecked() == 1) : - l.append("RI") + if (self.RBMP.isChecked() == 1 ) : l.append("MP") + elif (self.RBRI.isChecked() == 1) : l.append("RI") else : - commentaire=tr("saisir le type de complexe") self.editor.afficheInfos(commentaire,Qt.red) + self.RBMP.setFocus(True) return None try : l.append(locale.atof(str(self.LEReel.text()))) diff --git a/InterfaceQT4/monWidgetSimpTupleN.py b/InterfaceQT4/monWidgetSimpTupleN.py index adeeb73c..403b8e4a 100644 --- a/InterfaceQT4/monWidgetSimpTupleN.py +++ b/InterfaceQT4/monWidgetSimpTupleN.py @@ -43,6 +43,9 @@ class MonWidgetSimpTuple2 (Ui_WidgetTuple2,MonWidgetSimpTuple): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): self.nbValeurs=2 MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) + #print (self,node,monSimpDef,nom,objSimp,parentQt,commande) + #import traceback + #traceback.print_stack() if self.objSimp.isImmuable() : self.lineEditVal1.setDisabled(True) self.lineEditVal2.setDisabled(True) @@ -60,15 +63,19 @@ class MonWidgetSimpTuple3 (Ui_WidgetTuple3,MonWidgetSimpTuple): if self.objSimp.isImmuable() : self.lineEditVal1.setDisabled(True) self.lineEditVal2.setDisabled(True) + self.lineEditVal3.setDisabled(True) self.lineEditVal1.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n") self.lineEditVal2.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n") + self.lineEditVal3.setStyleSheet("background:rgb(244,244,244);\n" "border:0px;\n") self.lineEditVal1.setToolTip(tr("Valeur non modifiable")) self.lineEditVal2.setToolTip(tr("Valeur non modifiable")) + self.lineEditVal3.setToolTip(tr("Valeur non modifiable")) else : self.maCommande.listeAffichageWidget.append(self.lineEditVal1) class MonWidgetSimpTuple4 (Ui_WidgetTuple4,MonWidgetSimpTuple): def __init__(self,node,monSimpDef,nom,objSimp,parentQt,commande): + #print (self,node,monSimpDef,nom,objSimp,parentQt,commande) self.nbValeurs=4 MonWidgetSimpTuple.__init__(self,node,monSimpDef,nom,objSimp,parentQt,commande) diff --git a/InterfaceQT4/qtEficasSsIhm.py b/InterfaceQT4/qtEficasSsIhm.py index b72fa260..16ef61c5 100755 --- a/InterfaceQT4/qtEficasSsIhm.py +++ b/InterfaceQT4/qtEficasSsIhm.py @@ -40,7 +40,7 @@ class AppliSsIhm: """ Class implementing the main user interface. """ - def __init__(self,code=None,salome=1,parent=None,multi=False,langue='fr',ssIhm=True,labelCode=None,genereXSD=False,fichierCata=None): + def __init__(self,code=None,salome=1,parent=None,multi=False,langue='fr',ssIhm=True,labelCode=None,genereXSD=False,fichierCata=None,ssCode=None,versionCode=None): """ Constructor """ @@ -52,6 +52,8 @@ class AppliSsIhm: self.ssIhm=True self.code=code self.genereXSD=genereXSD + self.versionCode=versionCode + self.ssCode=ssCode self.dict_reels={} self.fichierIn=None diff --git a/InterfaceQT4/readercata.py b/InterfaceQT4/readercata.py index a2ee29fa..fad67e8b 100644 --- a/InterfaceQT4/readercata.py +++ b/InterfaceQT4/readercata.py @@ -101,13 +101,37 @@ class ReaderCataCommun(object): if isinstance(catalogue, CatalogDescription): listeTousLesCatas.append(catalogue) elif isinstance(catalogue, tuple) : listeTousLesCatas.append(CatalogDescription.createFromTuple(catalogue)) else: print(("Catalog description cannot be interpreted: ", catalogue)) + + if self.labelCode is None: listeCataPossibles = listeTousLesCatas + else : + for catalogue in listeTousLesCatas: + if catalogue.code == self.code and catalogue.ssCode == self.ssCode: + listeCataPossibles.append(catalogue) + + if len(listeCataPossibles)==0: + try : + QMessageBox.critical(self.QWParent, tr("Import du catalogue"), + tr("Pas de catalogue defini pour le code ") + self.code) + except : + print("Pas de catalogue defini pour le code " + self.code) + if self.appliEficas.salome == 0 : sys.exit(1) + self.appliEficas.close() + return - # This filter is only useful for codes that have subcodes (like MAP). - # Otherwise, the "code" attribute of the catalog description can (should) be None. - if self.ssCode is None: listeCataPossibles = listeTousLesCatas + if self.labelCode is not None: + # La version a ete fixee + for cata in listeCataPossibles: + if self.labelCode == cata.identifier: + self.fichierCata = cata.fichierCata + self.labelCode = cata.labelCode + self.appliEficas.formatFichierOut = cata.formatFichierOut + self.appliEficas.formatFichierIn = cata.formatFichierIn else: - for catalogue in listeTousLesCatas: - if catalogue.code == self.code and catalogue.ssCode == self.ssCode: listeCataPossibles.append(catalogue) + cataChoiceList = [] + for cata in listeCataPossibles: + if cata.selectable: + if cata.default : cataChoiceList.insert(0, cata) + else : cataChoiceList.append(cata) # le catalogue est fixe dans la ligne de commande if self.appliEficas.fichierCata != None : diff --git a/UiQT5/Tuple10.ui b/UiQT5/Tuple10.ui index 102166a1..c8149784 100644 --- a/UiQT5/Tuple10.ui +++ b/UiQT5/Tuple10.ui @@ -28,7 +28,7 @@ - + 0 @@ -66,7 +66,7 @@ border:0px; - + 0 @@ -102,7 +102,7 @@ border:0px; - + 0 @@ -138,7 +138,7 @@ border:0px; - + 0 @@ -174,7 +174,7 @@ border:0px; - + 0 @@ -210,7 +210,7 @@ border:0px; - + 0 @@ -246,7 +246,7 @@ border:0px; - + 0 @@ -282,7 +282,7 @@ border:0px; - + 0 @@ -318,7 +318,7 @@ border:0px; - + 0 @@ -347,7 +347,7 @@ border:0px; - + 0 diff --git a/UiQT5/Tuple2.ui b/UiQT5/Tuple2.ui index fb7c2ab6..9a17ce5f 100644 --- a/UiQT5/Tuple2.ui +++ b/UiQT5/Tuple2.ui @@ -43,7 +43,7 @@ - + 0 @@ -84,7 +84,7 @@ border:0px; - + 0 diff --git a/UiQT5/Tuple3.ui b/UiQT5/Tuple3.ui index 9d777483..de3d4528 100644 --- a/UiQT5/Tuple3.ui +++ b/UiQT5/Tuple3.ui @@ -43,7 +43,7 @@ - + 0 @@ -81,7 +81,7 @@ border:0px; - + 0 @@ -117,7 +117,7 @@ border:0px; - + 0 diff --git a/UiQT5/Tuple4.ui b/UiQT5/Tuple4.ui index d551c2b8..e2db8728 100644 --- a/UiQT5/Tuple4.ui +++ b/UiQT5/Tuple4.ui @@ -28,7 +28,7 @@ - + 0 @@ -66,7 +66,7 @@ border:0px; - + 0 @@ -102,7 +102,7 @@ border:0px; - + 0 @@ -138,7 +138,7 @@ border:0px; - + 0 diff --git a/UiQT5/Tuple5.ui b/UiQT5/Tuple5.ui index b3013390..e8b64bfd 100644 --- a/UiQT5/Tuple5.ui +++ b/UiQT5/Tuple5.ui @@ -28,7 +28,7 @@ - + 0 @@ -66,7 +66,7 @@ border:0px; - + 0 @@ -102,7 +102,7 @@ border:0px; - + 0 @@ -138,7 +138,7 @@ border:0px; - + 0 @@ -174,7 +174,7 @@ border:0px; - + 0 diff --git a/UiQT5/Tuple6.ui b/UiQT5/Tuple6.ui index 192bf670..c870ea9a 100644 --- a/UiQT5/Tuple6.ui +++ b/UiQT5/Tuple6.ui @@ -28,7 +28,7 @@ - + 0 @@ -66,7 +66,7 @@ border:0px; - + 0 @@ -102,7 +102,7 @@ border:0px; - + 0 @@ -138,7 +138,7 @@ border:0px; - + 0 @@ -174,7 +174,7 @@ border:0px; - + 0 @@ -210,7 +210,7 @@ border:0px; - + 0 diff --git a/UiQT5/Tuple7.ui b/UiQT5/Tuple7.ui index 242b5b17..47df62d6 100644 --- a/UiQT5/Tuple7.ui +++ b/UiQT5/Tuple7.ui @@ -28,7 +28,7 @@ - + 0 @@ -66,7 +66,7 @@ border:0px; - + 0 @@ -102,7 +102,7 @@ border:0px; - + 0 @@ -138,7 +138,7 @@ border:0px; - + 0 @@ -174,7 +174,7 @@ border:0px; - + 0 @@ -210,7 +210,7 @@ border:0px; - + 0 @@ -246,7 +246,7 @@ border:0px; - + 0 diff --git a/UiQT5/Tuple8.ui b/UiQT5/Tuple8.ui index 169b2608..b3d0f63a 100644 --- a/UiQT5/Tuple8.ui +++ b/UiQT5/Tuple8.ui @@ -28,7 +28,7 @@ - + 0 @@ -66,7 +66,7 @@ border:0px; - + 0 @@ -102,7 +102,7 @@ border:0px; - + 0 @@ -138,7 +138,7 @@ border:0px; - + 0 @@ -174,7 +174,7 @@ border:0px; - + 0 @@ -210,7 +210,7 @@ border:0px; - + 0 @@ -246,7 +246,7 @@ border:0px; - + 0 @@ -282,7 +282,7 @@ border:0px; - + 0 diff --git a/UiQT5/Tuple9.ui b/UiQT5/Tuple9.ui index 6a7f25a1..7f8e3f03 100644 --- a/UiQT5/Tuple9.ui +++ b/UiQT5/Tuple9.ui @@ -40,7 +40,7 @@ - + 0 @@ -78,7 +78,7 @@ border:0px; - + 0 @@ -114,7 +114,7 @@ border:0px; - + 0 @@ -150,7 +150,7 @@ border:0px; - + 0 @@ -186,7 +186,7 @@ border:0px; - + 0 @@ -222,7 +222,7 @@ border:0px; - + 0 @@ -258,7 +258,7 @@ border:0px; - + 0 @@ -294,7 +294,7 @@ border:0px; - + 0 @@ -330,7 +330,7 @@ border:0px; - + 0 diff --git a/UiQT5/desWidgetPlusieursBase.ui b/UiQT5/desWidgetPlusieursBase.ui index b4d801dc..d47cef89 100644 --- a/UiQT5/desWidgetPlusieursBase.ui +++ b/UiQT5/desWidgetPlusieursBase.ui @@ -482,7 +482,8 @@ ... - + + .. @@ -519,7 +520,8 @@ ... - + + .. @@ -556,7 +558,8 @@ ... - + + .. @@ -769,6 +772,13 @@ + + + + TextLabel + + + diff --git a/UiQT5/desWidgetPlusieursTuple.ui b/UiQT5/desWidgetPlusieursTuple.ui index a47fb9e9..c2aefeab 100644 --- a/UiQT5/desWidgetPlusieursTuple.ui +++ b/UiQT5/desWidgetPlusieursTuple.ui @@ -612,9 +612,9 @@ - + - Valide + TextLabel @@ -631,6 +631,13 @@ + + + + Valide + + + diff --git a/UiQT5/desWidgetSimpBase.ui b/UiQT5/desWidgetSimpBase.ui index 60c7dce5..1169925d 100644 --- a/UiQT5/desWidgetSimpBase.ui +++ b/UiQT5/desWidgetSimpBase.ui @@ -6,8 +6,8 @@ 0 0 - 743 - 60 + 613 + 56 @@ -175,7 +175,7 @@ - + 0 0 @@ -199,7 +199,7 @@ border:0px; - + Qt::Horizontal @@ -208,23 +208,68 @@ border:0px; - 3 + 5 20 + + + + + 0 + 0 + + + + TextLabel + + + Qt::Horizontal - QSizePolicy::Expanding + QSizePolicy::Minimum - 58 + 5 + 20 + + + + + + + + + 0 + 0 + + + + Active le parametre comme variable UQ + + + + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 3 20 diff --git a/UiQT5/desWidgetSimpComplexe.ui b/UiQT5/desWidgetSimpComplexe.ui index 4e9db7e6..5d21e156 100644 --- a/UiQT5/desWidgetSimpComplexe.ui +++ b/UiQT5/desWidgetSimpComplexe.ui @@ -6,8 +6,8 @@ 0 0 - 1242 - 87 + 940 + 97 @@ -45,13 +45,13 @@ border:0px; 0 - 1 + 0 0 - 1 + 0 @@ -178,74 +178,6 @@ border:0px; - - - - - - 0 - 0 - - - - - 0 - 29 - - - - - 16777215 - 29 - - - - Complexe : a+bj - - - - - - - Qt::Horizontal - - - - 19 - 20 - - - - - - - - - - false - - - - - - - - 0 - 0 - - - - - 50 - 24 - - - - <html><head/><body><p align="center">OU </p></body></html> - - - - 4 @@ -269,7 +201,7 @@ border:0px; - + @@ -300,22 +232,59 @@ border:0px; - - - - Qt::Vertical - - - - 17 - 20 - - - - + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + + 0 + 0 + + + + + 25 + 25 + + + + + 178 + 16777215 + + + + QFrame::NoFrame + + + <html><head/><body><p>aaa</p></body></html> + + + false + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + @@ -380,8 +349,6 @@ border:0px; - LEComp - RBRI RBMP RBPoubelle diff --git a/UiQT5/desWidgetTuple10.ui b/UiQT5/desWidgetTuple10.ui index e3c04710..ef748cf4 100644 --- a/UiQT5/desWidgetTuple10.ui +++ b/UiQT5/desWidgetTuple10.ui @@ -161,6 +161,12 @@ + + 2 + + + 2 + @@ -276,7 +282,7 @@ border:0px; - + 0 @@ -312,7 +318,7 @@ border:0px; - + 0 @@ -348,7 +354,7 @@ border:0px; - + 0 @@ -384,7 +390,7 @@ border:0px; - + 0 @@ -420,7 +426,7 @@ border:0px; - + 0 @@ -456,7 +462,7 @@ border:0px; - + 0 @@ -498,6 +504,45 @@ border:0px; + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + TextLabel + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + @@ -579,11 +624,6 @@ border:0px; QLabel
monLabelClic.h
- - LECustomTuple - QLineEdit -
gereListe.h
-
diff --git a/UiQT5/desWidgetTuple2.ui b/UiQT5/desWidgetTuple2.ui index 9c45154b..d540c457 100644 --- a/UiQT5/desWidgetTuple2.ui +++ b/UiQT5/desWidgetTuple2.ui @@ -36,13 +36,13 @@ 0
- 1 + 2 0 - 1 + 2 @@ -261,7 +261,27 @@ border:0px; - 58 + 5 + 20 + + +
+
+ + + + TextLabel + + + + + + + Qt::Horizontal + + + + 80 20 @@ -315,7 +335,7 @@ border:0px; 20 - 5 + 13 diff --git a/UiQT5/desWidgetTuple3.ui b/UiQT5/desWidgetTuple3.ui index a31e9b55..3e0fc3c2 100644 --- a/UiQT5/desWidgetTuple3.ui +++ b/UiQT5/desWidgetTuple3.ui @@ -33,13 +33,13 @@ 1 - 0 + 2 0 - 1 + 2 @@ -275,6 +275,29 @@ border:0px; + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + TextLabel + + + diff --git a/UiQT5/desWidgetTuple4.ui b/UiQT5/desWidgetTuple4.ui index c939a9fb..ef4d83cc 100644 --- a/UiQT5/desWidgetTuple4.ui +++ b/UiQT5/desWidgetTuple4.ui @@ -33,13 +33,13 @@ 1 - 0 + 2 0 - 1 + 2 @@ -276,7 +276,7 @@ border:0px; - + 0 @@ -311,6 +311,29 @@ border:0px; + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + TextLabel + + + @@ -392,11 +415,6 @@ border:0px; QLabel
monLabelClic.h
- - LECustomTuple - QLineEdit -
gereListe.h
-
diff --git a/UiQT5/desWidgetTuple5.ui b/UiQT5/desWidgetTuple5.ui index c592ac6d..b687f748 100644 --- a/UiQT5/desWidgetTuple5.ui +++ b/UiQT5/desWidgetTuple5.ui @@ -33,13 +33,13 @@ 1
- 0 + 2 0 - 1 + 2 @@ -276,7 +276,7 @@ border:0px; - + 0 @@ -312,7 +312,7 @@ border:0px; - + 0 @@ -347,6 +347,29 @@ border:0px; + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + TextLabel + + + @@ -428,11 +451,6 @@ border:0px; QLabel
monLabelClic.h
- - LECustomTuple - QLineEdit -
gereListe.h
-
diff --git a/UiQT5/desWidgetTuple6.ui b/UiQT5/desWidgetTuple6.ui index 92aac0af..b90b6fb1 100644 --- a/UiQT5/desWidgetTuple6.ui +++ b/UiQT5/desWidgetTuple6.ui @@ -33,13 +33,13 @@ 1
- 0 + 2 0 - 1 + 2 @@ -276,7 +276,7 @@ border:0px; - + 0 @@ -312,7 +312,7 @@ border:0px; - + 0 @@ -348,7 +348,7 @@ border:0px; - + 0 @@ -383,6 +383,29 @@ border:0px; + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + TextLabel + + + @@ -464,11 +487,6 @@ border:0px; QLabel
monLabelClic.h
- - LECustomTuple - QLineEdit -
gereListe.h
-
diff --git a/UiQT5/desWidgetTuple7.ui b/UiQT5/desWidgetTuple7.ui index 43b719de..cb871f51 100644 --- a/UiQT5/desWidgetTuple7.ui +++ b/UiQT5/desWidgetTuple7.ui @@ -33,13 +33,13 @@ 1
- 0 + 2 0 - 1 + 2 @@ -276,7 +276,7 @@ border:0px; - + 0 @@ -312,7 +312,7 @@ border:0px; - + 0 @@ -348,7 +348,7 @@ border:0px; - + 0 @@ -384,7 +384,7 @@ border:0px; - + 0 @@ -432,6 +432,42 @@ border:0px;
+ + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + TextLabel + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + @@ -500,11 +536,6 @@ border:0px; QLabel
monLabelClic.h
- - LECustomTuple - QLineEdit -
gereListe.h
-
diff --git a/UiQT5/desWidgetTuple8.ui b/UiQT5/desWidgetTuple8.ui index 6cbb52dd..a7c44b12 100644 --- a/UiQT5/desWidgetTuple8.ui +++ b/UiQT5/desWidgetTuple8.ui @@ -33,13 +33,13 @@ 1
- 0 + 2 0 - 1 + 2 @@ -276,7 +276,7 @@ border:0px;
- + 0 @@ -312,7 +312,7 @@ border:0px; - + 0 @@ -348,7 +348,7 @@ border:0px; - + 0 @@ -384,7 +384,7 @@ border:0px; - + 0 @@ -420,7 +420,7 @@ border:0px; - + 0 @@ -455,6 +455,22 @@ border:0px; + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + @@ -468,6 +484,29 @@ border:0px; + + + + TextLabel + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + @@ -536,11 +575,6 @@ border:0px; QLabel
monLabelClic.h
- - LECustomTuple - QLineEdit -
gereListe.h
-
diff --git a/UiQT5/desWidgetTuple9.ui b/UiQT5/desWidgetTuple9.ui index 7dde5439..87644824 100644 --- a/UiQT5/desWidgetTuple9.ui +++ b/UiQT5/desWidgetTuple9.ui @@ -30,16 +30,16 @@ 0
- 1 + 0 - 0 + 2 0 - 1 + 2 @@ -276,7 +276,7 @@ border:0px;
- + 0 @@ -312,7 +312,7 @@ border:0px; - + 0 @@ -348,7 +348,7 @@ border:0px; - + 0 @@ -384,7 +384,7 @@ border:0px; - + 0 @@ -420,7 +420,7 @@ border:0px; - + 0 @@ -456,7 +456,7 @@ border:0px; - + 0 @@ -491,6 +491,45 @@ border:0px; + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + + + + + TextLabel + + + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 10 + 20 + + + + @@ -572,11 +611,6 @@ border:0px; QLabel
monLabelClic.h
- - LECustomTuple - QLineEdit -
gereListe.h
-
diff --git a/balisesXSD.py b/balisesXSD.py new file mode 100644 index 00000000..a9becb59 --- /dev/null +++ b/balisesXSD.py @@ -0,0 +1,149 @@ +texteDebut='\n\n' +texteDebutNiveau2='\n\n' +texteDebutNiveau3='\n\n' +texteFin='' + +#texteAnnotation= '\t\n\t\t\n\t\t{}\n\t\t\n\t\t\n\t\n\t\n' +texteAnnotation= '\t\n\t\t\n\t\t{}\n\t\t\n\t\t\n\t\n\t\n' + +# SIMP +debutSimpleType = '\t\n' +debutSimpleTypeSsNom = '\t\n' +fermeSimpleType = '\t\n' +debutRestrictionBase = '\t\t\n' +fermeRestrictionBase = '\t\t\n' +enumeration = '\t\t\t\n' +maxInclusiveBorne = '\t\t\t\n' +minInclusiveBorne = '\t\t\t\n' + +debutTypeSimpleListe = '\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n' +finTypeSimpleListe = '\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n' +fermeBalisesMileu = '\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t \n' + +maxLengthTypeSimple = '\t\t\t\n' +minLengthTypeSimple = '\t\t\t\n' +eltDsSequence = '\t\t\t\n' +eltDsSequenceWithHelp = '\t\t\t\n\t\t\t\t\n\t\t\t\t\t{}\n\t\t\t\t\n\t\t\t\n' +eltDsSequenceWithDefautAndHelp = '\t\t\t\n\t\t\t\t\n\t\t\t\t\t{}\n\t\t\t\t\n\t\t\t\n' +eltDsSequenceWithDefaut = '\t\t\t\n' +UsingASSDkeyRefDeclaration = '\n\t \n\t\t\n\t\t\n\t\n' +# +# +# +# + + # + # + + + + +# COMPO +debutTypeCompo = '\t\n' +debutTypeCompoEtape = '\t \n\t \n' +finTypeCompoEtape = '\t \n\t \n' +debutTypeCompoSeq = '\t\t\n' +finTypeCompoSeq = '\t\t\n' +finTypeCompo = '\t\n' +eltCompoDsSequence = '\t\t\t\n' +eltCompoDsSequenceWithHelp = '\t\t\t\n' +#name="{}" type="{}:{}" minOccurs="{}" maxOccurs="{}">\n\t\t\t\t\n\t\t\t\t\t{}\n\t\t\t\t\n\t\t\t\n' +#eltCompoDsSequenceInExtension = '\t\t\t\n' + +# ETAPE +eltEtape = '\t\n' +eltEtapeWithHelp = '\t\n\t\t\t\t\n\t\t\t\t\t{}\n\t\t\t\t\n\t\t\t\n' + +# BLOC +debutTypeSubst = '\t \n\t\t\n' +finTypeSubst = '\t\t\n\t\n' +substDsSequence = '\t\t\t\n\t\t\t\t\n\t\t\t\t\t{}\n\t\t\t\t\n\t\t\t\n' +#choiceDsBloc = '\t\t\t\n' +debutChoiceDsBloc = '\t\t\n' +debutChoiceDsBlocAvecMin = '\n' +finChoiceDsBloc = '\t\t\n' +debSequenceDsBloc = '\n' +finSequenceDsBloc = '\n' +debutTypeSubstDsBlocFactorise = '\t\n' +finTypeSubstDsBlocFactorise = '\t\n' +debutUnion = '\t\t\t\n' +finUnion = '\t\t\t\n' +reconstitueUnion = '{} maxOccurs="1">\n\t\t\t\t\n\t\t\t\t\t{}\n\t\t\t\t\n\t\t\t\n' + + + +# User OR ASSD +attributeNameName = '\t\t\n' +attributeTypeForASSD = '\t\t\n' +attributeTypeUtilisateurName = '\t\t\n' +producingASSDkeyRefDeclaration='\t\n\t\t\n\t\t\n\t\n' +texteFieldUnitaire="./{}:{}/@name |" +defBaseXSDUserASSD='\t\n\t\t\n\t\t\n\t\n' +defBaseXSDUserASSDMultiple='\t\n\t\t\n\t\t\n\t\n' + +defUserASSDMultiple='\t\n\t\t\n\t\t\n\t\n' +defUserASSD ='\t\n\t\t\n\t\t\n\t\n' + +defUserASSDOrUserASSDMultiple='\t\n\t\t\n\t\t\n\t\n' + + +# CATA +debutTypeCata = '\t\n\t\t\n' +debutTypeCataExtension = '\t\n' +finTypeCata = '\t\t\n\t\n' +finSchema = '' +#eltCata = '\t\n' +#eltCodeSpecDsCata = '\t\t\t\n' +#fermeEltCata = '\t\n' +includeCata = '\n\n' + + +# EXTENSION +debutExtension = '\t\t\n\t\t\n\t\t\n' +finExtension = '\t\t\n\t\t\n\t\t\n' + +# TYPE ABSTRAIT +eltAbstraitCataPPal = '\t\n' +eltAbstraitCataFils = '\t\n\t\t\n\t\t\t\n\t\t\n\t\n' +eltCataPPal = '\t\n' +eltCataPPalWithHelp = '\t\n\t\t\t\t\n\t\t\t\t\t{}\n\t\t\t\t\n\t\t\t\n' +eltCataFils = '\t\n' +eltCataFilsWithHelp = '\t\n\t\t\t\t\n\t\t\t\t\t{}\n\t\t\t\t\n\t\t\t\n' + +eltCata = '\t\n\t\t\n\t\t \n\t\t\t\n\t\t \n\t\t\n' + +#\n\t\n' +#implementeAbstrait = '\t\n' + +# MATRICE oldVersion +# (_matrix ou pas ?) +#matriceSimpleType = '\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n' +#matriceSimpleType = '\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n' +#matriceSimpleType +='\t\n\t\t\n\t\t\t\t\n\t\t\n\t\n\t\n' +#matriceSimpleType +='\t\n\t\t\n\t\t\t\t\n\t\t\n\t\n\t\n' +#matriceSimpleType +='\t\n\t\t\n\t\t\t\t\n\t\t\n\t' +#eltMatrice = ' ' + +# TUPLE +tupleNonHomogeneSimpleType = '\t\n\t\t\n\t\t\n' +tupleNonHomogeneElt = '\t\t\t\n' +tupleDebutComplexeType = '\t\n\t\t' +tupleMilieuComplexeType = '\n\t\t\t' +tupleFinComplexeType = '\n\t\t\n\t\n' + +# MATRICE +eltMatrice = '\t\t\t \n' +matriceSimpleType = '\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n' +matriceSimpleType +='\t\n\t\t\n\t\t\t\n\t\t \n\t\n' +matriceSimpleType +='\t \n\t\t\n\t\n' + +# CHAINES AVEC BLANC +debutChaineAvecBlancsInto = '\t\n\t\t\n' +milieuChaineAvecBlancsInto = '\t\t\t\n' +finChaineAvecBlancsInto = '\t\t\n\t\t\n' + +complexChaineAvecBlancs = '\t\n\t\t\n\t\t\t\t\n\t\t\t\n\t\n' + +typeEltChaineAvecBlancSansInto = '\t\t\n\t\t\t\n\t\t\t\n\t\t' +if __name__ == '__main__' : + print ('ne fait rien') diff --git a/generator_XML.py b/generator_XML.py new file mode 100644 index 00000000..f336e416 --- /dev/null +++ b/generator_XML.py @@ -0,0 +1,116 @@ +# -*- 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 contient le plugin generateur de fichier au format Code_Carmel3D pour EFICAS. +""" + +from __future__ import absolute_import +from __future__ import print_function +try : + from builtins import str +except : pass + +import traceback +import types,re,os +from Extensions.i18n import tr +from .generator_python import PythonGenerator + +def entryPoint(): + """ + Retourne les informations necessaires pour le chargeur de plugins + Ces informations sont retournees dans un dictionnaire + """ + return { + # Le nom du plugin + 'name' : 'xml', + # La factory pour creer une instance du plugin + 'factory' : XMLGenerator, + } + + +class XMLGenerator(PythonGenerator): + """ + Ce generateur parcourt un objet de type JDC et produit + un texte au format eficas et + + """ + # Les extensions de fichier permis? + extensions=('.comm',) + +#---------------------------------------------------------------------------------------- + def gener(self,obj,format='brut',config=None,appliEficas=None): + + try : + #if 1 : + self.texteXML=obj.toXml() + except : + self.texteXML='erreur generation' + #print (self.texteXML) + # pass + + self.textePourAide ="" + self.dictNbNomObj={} + # Cette instruction genere le contenu du fichier de commandes (persistance) + self.text=PythonGenerator.gener(self,obj,format) + return self.text + + +#---------------------------------------------------------------------------------------- +# initialisations +#---------------------------------------------------------------------------------------- + +# ecriture +#---------------------------------------------------------------------------------------- + + def writeDefault(self,fn) : + fileXML = fn[:fn.rfind(".")] + '.xml' + #filePyxb = fn[:fn.rfind(".")] + '.py' + fileBase = os.path.basename(fileXML) + fileBase = fileBase[:fileBase.rfind(".")] + '.py' + filePyxb = '/tmp/example_' + fileBase + #print (filePyxb) + #fileDico='/tmp/toto.xml' + #print (self.texteXML) + f = open( str(fileXML), 'w') + f.write(str(self.texteXML)) + f.close() + + f = open( str(filePyxb), 'w') + self.textePourAide='txt=""'+'\n'+self.textePourAide + self.textePourAide=self.textePourAide+'print (txt)'+'\n' + f.write(str(self.textePourAide)) + f.close() + + + def generMCSIMP(self,obj) : + if obj.nom != 'Consigne' : + if obj.nom in self.dictNbNomObj.keys(): + nomUtil = obj.nom + "_" + str(self.dictNbNomObj[obj.nom]) + self.dictNbNomObj[obj.nom] += 1 + else : + nomUtil = obj.nom + self.dictNbNomObj[obj.nom] = 1 + if obj.definition.avecBlancs : self.textePourAide += nomUtil + " = vimmpCase." + obj.getNomDsXML() + ".s\n" + else : self.textePourAide += nomUtil + " = vimmpCase." + obj.getNomDsXML() + "\n" + self.textePourAide +='txt += "' + nomUtil + '" + " = " +str( ' + nomUtil + ')+"\\n"'+ "\n" + + + + s=PythonGenerator.generMCSIMP(self,obj) + return s -- 2.39.2