From 7b4348b70559a9e1b1de91909bcbc42f1383d7d7 Mon Sep 17 00:00:00 2001 From: PASCALE NOYRET Date: Fri, 5 Jan 2024 12:06:18 +0100 Subject: [PATCH] sauvegarde avant week-end --- InterfaceGUI/QT5/browser.py | 2 +- InterfaceGUI/QT5/compojdc.py | 5 +- InterfaceGUI/QT5/composimp.py | 359 ++------ InterfaceGUI/QT5/editor.py | 6 +- InterfaceGUI/cinqC/__init__.py | 2 +- InterfaceGUI/cinqC/browser.py | 132 +-- InterfaceGUI/cinqC/compoSelection.py | 2 +- InterfaceGUI/cinqC/compofact.py | 2 +- InterfaceGUI/cinqC/compojdc.py | 110 +-- InterfaceGUI/cinqC/compomclist.py | 2 +- InterfaceGUI/cinqC/compooper.py | 2 +- InterfaceGUI/cinqC/compoproc.py | 4 +- InterfaceGUI/cinqC/composimp.py | 836 +----------------- InterfaceGUI/cinqC/editor.py | 3 +- InterfaceGUI/cinqC/monWidgetBar.py | 2 +- InterfaceGUI/cinqC/monWidgetCBSelection5C.py | 2 +- .../cinqC/monWidgetDateSelection5C.py | 2 +- InterfaceGUI/cinqC/monWidgetSelection.py | 2 +- .../cinqC/monWidgetSimpSelection5C.py | 2 +- InterfaceGUI/cinqC/qtEficas.py | 2 +- 20 files changed, 204 insertions(+), 1275 deletions(-) mode change 100644 => 120000 InterfaceGUI/cinqC/compojdc.py diff --git a/InterfaceGUI/QT5/browser.py b/InterfaceGUI/QT5/browser.py index 694e1103..40b5b393 100644 --- a/InterfaceGUI/QT5/browser.py +++ b/InterfaceGUI/QT5/browser.py @@ -24,7 +24,7 @@ import traceback from InterfaceGUI.QT5 import typeNode -from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QApplication, QMessageBox +from PyQt5.QtWidgets import QTreeWidget, QTreeWidgetItem, QMessageBox from PyQt5.QtGui import QIcon from PyQt5.QtCore import Qt diff --git a/InterfaceGUI/QT5/compojdc.py b/InterfaceGUI/QT5/compojdc.py index a1f2acaf..c271fee0 100644 --- a/InterfaceGUI/QT5/compojdc.py +++ b/InterfaceGUI/QT5/compojdc.py @@ -127,7 +127,6 @@ class JDCTreeItem(Objecttreeitem.ObjectTreeItem): return listeCmd -import Accas - +from Accas import JDC treeitem = JDCTreeItem -objet = Accas.JDC +objet = JDC diff --git a/InterfaceGUI/QT5/composimp.py b/InterfaceGUI/QT5/composimp.py index aa7b6160..7d43590a 100644 --- a/InterfaceGUI/QT5/composimp.py +++ b/InterfaceGUI/QT5/composimp.py @@ -27,261 +27,160 @@ from InterfaceGUI.QT5 import typeNode # Modules Eficas from Editeur import Objecttreeitem from InterfaceGUI.QT5 import browser -from Noyau.N_CR import justifyText from Accas import SalomeEntry from Accas import ASSD from Accas import UserASSD from Accas import UserASSDMultiple +class NodeCommun: -class Node(browser.JDCNode, typeNode.PopUpMenuNodeMinimal): - def createPopUpMenu(self): - typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) + def getPanel(self, parentQt, maCommande): + return self.getPanelGroupe(parentQt, maCommande) def getPanelGroupe(self, parentQt, maCommande): + # Attention l ordre des if est important # print (self,self.item.nom, ) maDefinition = self.item.get_definition() monObjet = self.item.object monNom = self.item.nom # le mot clef est cache ou cache avec defaut - if maDefinition.statut in ("c", "d"): - return None + if maDefinition.statut in ("c", "d"): return None + # label informatif if monObjet.isInformation(): - from InterfaceGUI.QT5.nterfaceGUI.QT5.monWidgetInfo import MonWidgetInfo - - widget = MonWidgetInfo( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + from InterfaceGUI.QT5.InterfaceGUI.QT5.monWidgetInfo import MonWidgetInfo + widget = MonWidgetInfo( self, maDefinition, monNom, monObjet, parentQt, maCommande) self.widget = widget return widget - # Attention l ordre des if est important - # Attention il faut gerer les blocs et les facteurs - # a gerer comme dans composimp + # Recalule des into si on a une fonction + if maDefinition.into != [] and maDefinition.into != None: + if type(maDefinition.into) ==types.FunctionType : monInto=maDefinition.into() + else : monInto = maDefinition.into + + # Gestion des widgets specifiees dans le cata + if maDefinition.fenetreIhm != 'menuDeroulant' and maDefinition.fenetreIhm != None: + widgetParticularise=maDefinition.fenetreIhm + if widgetParticularise != None: + from importlib import import_module + module = import_module(widgetParticularise) + classeWidget = getattr(module,'MonWidgetSpecifique') + self.widget=classeWidget(self,maDefinition,monNom,monObjet,parentQt,maCommande) + return self.widget + # Gestion des matrices if self.item.waitMatrice(): from InterfaceGUI.QT5.monWidgetMatrice import MonWidgetMatrice - - widget = MonWidgetMatrice( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetMatrice( self, maDefinition, monNom, monObjet, parentQt, maCommande) self.widget = widget return widget - # print "____________________________", monNom, self.item.waitCo() - # print "____________________________", monNom, self.item.waitAssd() - # Gestion d'une seule valeur (eventuellement un tuple ou un complexe) - if maDefinition.into != [] and maDefinition.into != None: - if type(maDefinition.into) == types.FunctionType: - monInto = maDefinition.into() - else: - monInto = maDefinition.into - + # Gestion des SIMP attendant une seule valeur (eventuellement un tuple ou un complexe) if maDefinition.max == 1: - # A verifier + # Mot Clef avec une suggestion dans une combobox if maDefinition.intoSug != [] and maDefinition.intoSug != None: from InterfaceGUI.QT5.monWidgetCBIntoSug import MonWidgetCBIntoSug - - widget = MonWidgetCBIntoSug( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetCBIntoSug( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif maDefinition.into != [] and maDefinition.into != None: if maDefinition.fenetreIhm == "menuDeroulant": from InterfaceGUI.QT5.monWidgetCB import MonWidgetCB - - widget = MonWidgetCB( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetCB( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif len(monInto) < 4: from InterfaceGUI.QT5.monWidgetRadioButton import MonWidgetRadioButton - - widget = MonWidgetRadioButton( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetRadioButton( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif len(monInto) < 7: - from InterfaceGUI.QT5.monWidget4a6RadioButton import ( - MonWidget4a6RadioButton, - ) - - widget = MonWidget4a6RadioButton( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + from InterfaceGUI.QT5.monWidget4a6RadioButton import MonWidget4a6RadioButton + widget = MonWidget4a6RadioButton( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: from InterfaceGUI.QT5.monWidgetCB import MonWidgetCB - - widget = MonWidgetCB( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - + widget = MonWidgetCB( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitBool(): from InterfaceGUI.QT5.monWidgetSimpBool import MonWidgetSimpBool - - widget = MonWidgetSimpBool( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetSimpBool( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitFichier(): from InterfaceGUI.QT5.monWidgetSimpFichier import MonWidgetSimpFichier - - widget = MonWidgetSimpFichier( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - - # PNPNPN - a faire + widget = MonWidgetSimpFichier( self, maDefinition, monNom, monObjet, parentQt, maCommande) + # PNPNPN - a retester elif self.item.waitDate(): from InterfaceGUI.QT5.monWidgetDate import MonWidgetDate - - widget = MonWidgetDate( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetDate( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitHeure(): from InterfaceGUI.QT5.monWidgetHeure import MonWidgetHeure - - widget = MonWidgetHeure( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - + widget = MonWidgetHeure( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitTuple(): num = self.item.object.definition.type[0].ntuple nomDeLaClasse = "MonWidgetSimpTuple" + str(num) nomDuFichier = "InterfaceGUI.QT5.monWidgetSimpTupleN" try: # if 1 : - _temp = __import__( - nomDuFichier, globals(), locals(), [nomDeLaClasse], 0 - ) + _temp = __import__( nomDuFichier, globals(), locals(), [nomDeLaClasse], 0) # print (_temp) MonWidgetSimpTuple = getattr(_temp, nomDeLaClasse) # print (MonWidgetSimpTuple) except: print("Pas de Tuple de longueur : ", num) # print ("Prevenir la maintenance ") - widget = MonWidgetSimpTuple( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - + widget = MonWidgetSimpTuple( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitComplex(): from InterfaceGUI.QT5.monWidgetSimpComplexe import MonWidgetSimpComplexe - - widget = MonWidgetSimpComplexe( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - + widget = MonWidgetSimpComplexe( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitCo(): if len(self.item.getSdAvantDuBonType()) == 0: from InterfaceGUI.QT5.monWidgetUniqueSDCO import MonWidgetUniqueSDCO - - widget = MonWidgetUniqueSDCO( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetUniqueSDCO( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: from InterfaceGUI.QT5.monWidgetSDCOInto import MonWidgetSDCOInto - - widget = MonWidgetSDCOInto( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetSDCOInto( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitAssd(): # PN - pour ne pas appeller trop souvent self.item.getSdAvantDuBonType() if not (self.item.waitUserAssdOrAssdMultipleEnCreation()): maListe = self.item.getSdAvantDuBonType() if self.item.waitUserAssdOrAssdMultipleEnCreation(): from InterfaceGUI.QT5.monWidgetCreeUserAssd import MonWidgetCreeUserAssd - - widget = MonWidgetCreeUserAssd( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - # elif len(self.item.getSdAvantDuBonType()) == 0 : + widget = MonWidgetCreeUserAssd( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif len(maListe) == 0: from InterfaceGUI.QT5.monWidgetVide import MonWidgetVide - - widget = MonWidgetVide( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - # elif len(self.item.getSdAvantDuBonType()) < 4 : + widget = MonWidgetVide( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif len(maListe) < 4: from InterfaceGUI.QT5.monWidgetRadioButton import MonWidgetRadioButtonSD - - widget = MonWidgetRadioButtonSD( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - # elif len(self.item.getSdAvantDuBonType()) < 7 : + widget = MonWidgetRadioButtonSD( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif len(maListe) < 7: - from InterfaceGUI.QT5.monWidget4a6RadioButton import ( - MonWidget4a6RadioButtonSD, - ) - - widget = MonWidget4a6RadioButtonSD( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + from InterfaceGUI.QT5.monWidget4a6RadioButton import ( MonWidget4a6RadioButtonSD,) + widget = MonWidget4a6RadioButtonSD( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: from InterfaceGUI.QT5.monWidgetCB import MonWidgetCBSD - - widget = MonWidgetCBSD( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - + widget = MonWidgetCBSD( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitSalome() and self.editor.salome: from InterfaceGUI.QT5.monWidgetSimpSalome import MonWidgetSimpSalome - - widget = MonWidgetSimpSalome( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - + widget = MonWidgetSimpSalome( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitTxm(): from InterfaceGUI.QT5.monWidgetSimpTxt import MonWidgetSimpTxt - - widget = MonWidgetSimpTxt( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetSimpTxt( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: from InterfaceGUI.QT5.monWidgetSimpBase import MonWidgetSimpBase + widget = MonWidgetSimpBase( self, maDefinition, monNom, monObjet, parentQt, maCommande) - widget = MonWidgetSimpBase( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - - # Gestion des listes + # Gestion des SIMP attendant une liste else: if maDefinition.intoSug != [] and maDefinition.intoSug != None: - if self.item in self.editor.listeDesListesOuvertes or not ( - self.editor.afficheListesPliees - ): + if self.item in self.editor.listeDesListesOuvertes or not (self.editor.afficheListesPliees): from InterfaceGUI.QT5.monWidgetIntoSug import MonWidgetIntoSug - - widget = MonWidgetIntoSug( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetIntoSug( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: - from InterfaceGUI.QT5.monWidgetPlusieursPlie import ( - MonWidgetPlusieursPlie, - ) - - widget = MonWidgetPlusieursPlie( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlie + widget = MonWidgetPlusieursPlie( self, maDefinition, monNom, monObjet, parentQt, maCommande) # if maDefinition.into != [] and maDefinition.into != None: # Attention pas fini --> on attend une liste de ASSD avec ordre elif self.item.waitAssd() and self.item.isListSansOrdreNiDoublon(): listeAAfficher = self.item.getSdAvantDuBonType() if len(listeAAfficher) == 0: from InterfaceGUI.QT5.monWidgetVide import MonWidgetVide - - widget = MonWidgetVide( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetVide( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: - from InterfaceGUI.QT5.monWidgetPlusieursInto import ( - MonWidgetPlusieursInto, - ) - - widget = MonWidgetPlusieursInto( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - elif ( - self.item.waitAssd() - and not self.item.waitUserAssdOrAssdMultipleEnCreation() - ): + from InterfaceGUI.QT5.monWidgetPlusieursInto import MonWidgetPlusieursInto + widget = MonWidgetPlusieursInto( self, maDefinition, monNom, monObjet, parentQt, maCommande) + elif self.item.waitAssd() and not self.item.waitUserAssdOrAssdMultipleEnCreation(): listeAAfficher = self.item.getSdAvantDuBonType() # a changer selon UserASSD ou UserASSDMultiple mctype = maDefinition.type[0] @@ -295,133 +194,69 @@ class Node(browser.JDCNode, typeNode.PopUpMenuNodeMinimal): ) ) if enable_salome_selection: - from InterfaceGUI.QT5.monWidgetPlusieursBase import ( - MonWidgetPlusieursBase, - ) - - widget = MonWidgetPlusieursBase( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + from InterfaceGUI.QT5.monWidgetPlusieursBase import MonWidgetPlusieursBase + widget = MonWidgetPlusieursBase( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif len(listeAAfficher) == 0: from InterfaceGUI.QT5.monWidgetVide import MonWidgetVide - - widget = MonWidgetVide( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - elif self.item in self.editor.listeDesListesOuvertes or not ( - self.editor.afficheListesPliees - ): - from InterfaceGUI.QT5.monWidgetPlusieursASSDIntoOrdonne import ( - MonWidgetPlusieursASSDIntoOrdonne, - ) - - widget = MonWidgetPlusieursASSDIntoOrdonne( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetVide( self, maDefinition, monNom, monObjet, parentQt, maCommande) + elif self.item in self.editor.listeDesListesOuvertes or not ( self.editor.afficheListesPliees): + from InterfaceGUI.QT5.monWidgetPlusieursASSDIntoOrdonne import MonWidgetPlusieursASSDIntoOrdonne + widget = MonWidgetPlusieursASSDIntoOrdonne( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: - from InterfaceGUI.QT5.monWidgetPlusieursPlie import ( - MonWidgetPlusieursPlieASSD, - ) - - widget = MonWidgetPlusieursPlieASSD( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlieASSD + widget = MonWidgetPlusieursPlieASSD( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.waitTuple(): if self.item.object.definition.fenetreIhm == "Tableau": + # Attention, tableau est obsolete et mal teste from InterfaceGUI.QT5.monWidgetTableau import MonWidgetTableau - - widget = MonWidgetTableau( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetTableau( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: num = self.item.object.definition.type[0].ntuple nomDeLaClasse = "MonWidgetPlusieursTuple" + str(num) nomDuFichier = "InterfaceGUI.QT5.monWidgetPlusieursTupleN" try: - _temp = __import__( - nomDuFichier, globals(), locals(), [nomDeLaClasse], 0 - ) + _temp = __import__( nomDuFichier, globals(), locals(), [nomDeLaClasse], 0) MonWidgetPlusieursTuple = getattr(_temp, nomDeLaClasse) except: print("Pas de Tuple de longueur : ", num) print("Prevenir la maintenance ") - widget = MonWidgetPlusieursTuple( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + widget = MonWidgetPlusieursTuple( self, maDefinition, monNom, monObjet, parentQt, maCommande) elif self.item.hasInto(): if self.item.isListSansOrdreNiDoublon(): - if self.item in self.editor.listeDesListesOuvertes or not ( - self.editor.afficheListesPliees - ): - from InterfaceGUI.QT5.monWidgetPlusieursInto import ( - MonWidgetPlusieursInto, - ) - - widget = MonWidgetPlusieursInto( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + if self.item in self.editor.listeDesListesOuvertes or not ( self.editor.afficheListesPliees): + from InterfaceGUI.QT5.monWidgetPlusieursInto import MonWidgetPlusieursInto + widget = MonWidgetPlusieursInto( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: - from InterfaceGUI.QT5.monWidgetPlusieursPlie import ( - MonWidgetPlusieursPlie, - ) - - widget = MonWidgetPlusieursPlie( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlie + widget = MonWidgetPlusieursPlie( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: - if self.item in self.editor.listeDesListesOuvertes or not ( - self.editor.afficheListesPliees - ): - from InterfaceGUI.QT5.monWidgetPlusieursIntoOrdonne import ( - MonWidgetPlusieursIntoOrdonne, - ) - - widget = MonWidgetPlusieursIntoOrdonne( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + if self.item in self.editor.listeDesListesOuvertes or not (self.editor.afficheListesPliees): + from InterfaceGUI.QT5.monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne + widget = MonWidgetPlusieursIntoOrdonne( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: - from InterfaceGUI.QT5.monWidgetPlusieursPlie import ( - MonWidgetPlusieursPlie, - ) - - widget = MonWidgetPlusieursPlie( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlie + widget = MonWidgetPlusieursPlie( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: if self.item.waitUserAssdOrAssdMultipleEnCreation(): - from InterfaceGUI.QT5.monWidgetPlusieursCreeUserAssd import ( - MonWidgetPlusieursCreeUserAssd, - ) - - widget = MonWidgetPlusieursCreeUserAssd( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - elif self.item in self.editor.listeDesListesOuvertes or not ( - self.editor.afficheListesPliees - ): - from InterfaceGUI.QT5.monWidgetPlusieursBase import ( - MonWidgetPlusieursBase, - ) - - widget = MonWidgetPlusieursBase( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) + from InterfaceGUI.QT5.monWidgetPlusieursCreeUserAssd import MonWidgetPlusieursCreeUserAssd + widget = MonWidgetPlusieursCreeUserAssd( self, maDefinition, monNom, monObjet, parentQt, maCommande) + elif self.item in self.editor.listeDesListesOuvertes or not ( self.editor.afficheListesPliees): + from InterfaceGUI.QT5.monWidgetPlusieursBase import MonWidgetPlusieursBase + widget = MonWidgetPlusieursBase( self, maDefinition, monNom, monObjet, parentQt, maCommande) else: - from InterfaceGUI.QT5.monWidgetPlusieursPlie import ( - MonWidgetPlusieursPlie, - ) - - widget = MonWidgetPlusieursPlie( - self, maDefinition, monNom, monObjet, parentQt, maCommande - ) - + from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlie + widget = MonWidgetPlusieursPlie( self, maDefinition, monNom, monObjet, parentQt, maCommande) self.widget = widget return widget -class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): - itemNode = Node +class Node(NodeCommun, browser.JDCNode, typeNode.PopUpMenuNodeMinimal): + def createPopUpMenu(self): + typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) + + +class SIMPTreeItemCommun(Objecttreeitem.AtomicObjectTreeItem): def init(self): self.expandable = 0 @@ -1017,7 +852,9 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): return valeur -import Accas +class SIMPTreeItem(SIMPTreeItemCommun): + itemNode = Node +import Accas treeitem = SIMPTreeItem objet = Accas.MCSIMP diff --git a/InterfaceGUI/QT5/editor.py b/InterfaceGUI/QT5/editor.py index dba8bb76..7648ca9d 100755 --- a/InterfaceGUI/QT5/editor.py +++ b/InterfaceGUI/QT5/editor.py @@ -104,10 +104,8 @@ class JDCEditor(JDCEditorSsIhm, Ui_baseWidget, QWidget): self.afficheApresInsert = True if self.code in ["Adao", "ADAO", "MAP"]: self.afficheApresInsert = True - if self.code in [ "TELEMAC", ]: - self.enteteQTree = "premier" - else: - self.enteteQTree = "complet" + if self.code in [ "TELEMAC", ]: self.enteteQTree = "premier" + else: self.enteteQTree = "complet" if self.code in ["Adao", "ADAO", "TELEMAC", "VP"]: self.affichePlie = True else: diff --git a/InterfaceGUI/cinqC/__init__.py b/InterfaceGUI/cinqC/__init__.py index 57dacc3f..24d44c17 100644 --- a/InterfaceGUI/cinqC/__init__.py +++ b/InterfaceGUI/cinqC/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/browser.py b/InterfaceGUI/cinqC/browser.py index 9b6d10b2..3c6b5f95 100644 --- a/InterfaceGUI/cinqC/browser.py +++ b/InterfaceGUI/cinqC/browser.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 @@ -20,87 +20,97 @@ import traceback -#--------------- -class JDCTree(): -#---------------- - def __init__( self, jdcItem, editor): - #------------------------------------ - self.editor = editor - self.item = jdcItem - self.tree = self - self.appliEficas = self.editor.appliEficas - self.childrenComplete = [] - self.racine = self.item.itemNode(self,self.item) - - - # def affichePremier(self): - #-------------------------- - if self.racine.children !=[] : - self.racine.children[0].affichePanneau() +# ------------- +class JDCTree: +# -------------- - -#--------------- -class JDCNode(): -#--------------- - def __init__( self, treeParent, item, itemExpand=False, ancien=False, creeChildren=True ): - #----------------------------------------------------------------------------------------- - #print ("creation d'un noeud : ", item, " ",item.nom,"", treeParent, self) - self.item = item - self.vraiParent = treeParent - self.treeParent = treeParent - self.tree = self.treeParent.tree - self.editor = self.treeParent.editor + def __init__(self, jdcItem, editor): + # ---------------------------------- + self.editor = editor + self.item = jdcItem + self.tree = self + self.appliEficas = self.editor.appliEficas + self.childrenComplete = [] + print (self.item.__class__) + print (self.item.itemNode.__class__) + self.racine = self.item.itemNode(self, self.item) + self.affichePremier() + + def affichePremier(self): + # ----------------------- + if self.racine.children != []: + self.racine.children[0].affichePanneau() + + +# ----------- +class JDCNode: +# ------------- + def __init__( + self, treeParent, item, itemExpand=False, ancien=False, creeChildren=True + ): + # ----------------------------------------------------------------------------------------- + # print ("creation d'un noeud : ", item, " ",item.nom,"", treeParent, self) + self.item = item + self.vraiParent = treeParent + self.treeParent = treeParent + self.tree = self.treeParent.tree + self.editor = self.treeParent.editor self.appliEficas = treeParent.appliEficas self.appartientAUnNoeudPlie = False - self.childrenComplete =[] - + self.childrenComplete = [] - self.treeParent=treeParent - #while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) : + self.treeParent = treeParent + # while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) : # self.treeParent.childrenComplete.append(self) # self.treeParent=self.treeParent.vraiParent self.treeParent.childrenComplete.append(self) self.buildChildren() - - def buildChildren(self): - #----------------------- - """ Construit la liste des enfants de self """ + def buildChildren(self): + # ----------------------- + """Construit la liste des enfants de self""" """ Se charge de remettre les noeuds Expanded dans le meme etat """ debug = 0 - if debug : - print ("*********** buildChildren ",self,self.item, self.item.nom) + if debug: + print("*********** buildChildren ", self, self.item, self.item.nom) # import traceback # traceback.print_stack() - self.listeItemExpanded=[] - self.listeItemPlie=[] + self.listeItemExpanded = [] + self.listeItemPlie = [] - for enfant in self.childrenComplete : - if enfant.plie : self.listeItemPlie.append(enfant.item) - else : self.listeItemExpanded.append(enfant.item) + for enfant in self.childrenComplete: + if enfant.plie: + self.listeItemPlie.append(enfant.item) + else: + self.listeItemExpanded.append(enfant.item) self.children = [] self.childrenComplete = [] sublist = self.item._getSubList() - for item in sublist : - itemExpand=False - ancien=False - if item in self.listeItemExpanded : itemExpand=True; ancien=True - if item in self.listeItemPlie : itemExpand=False; ancien=True - nouvelItem=item.itemNode(self,item,itemExpand,ancien) + for item in sublist: + itemExpand = False + ancien = False + if item in self.listeItemExpanded: + itemExpand = True + ancien = True + if item in self.listeItemPlie: + itemExpand = False + ancien = True + nouvelItem = item.itemNode(self, item, itemExpand, ancien) self.children.append(nouvelItem) - def affichePanneau(self) : - #------------------------- - #itemParent=self - #while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent - #if itemParent != self : - # itemParent.affichePanneau() - # return - debug = False - if debug : print ('dans affichePanneau pour', self.item.nom) - self.fenetre = self.getPanel() + def affichePanneau(self): + # ------------------------- + # itemParent=self + # while not (hasattr (itemParent,'getPanel')) : itemParent=itemParent.treeParent + # if itemParent != self : + # itemParent.affichePanneau() + # return + debug = False + if debug: + print("dans affichePanneau pour", self.item.nom) + self.fenetre = self.getPanel() diff --git a/InterfaceGUI/cinqC/compoSelection.py b/InterfaceGUI/cinqC/compoSelection.py index 36f433c9..916b8b68 100644 --- a/InterfaceGUI/cinqC/compoSelection.py +++ b/InterfaceGUI/cinqC/compoSelection.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/compofact.py b/InterfaceGUI/cinqC/compofact.py index 6b60249f..5fb3cce4 100644 --- a/InterfaceGUI/cinqC/compofact.py +++ b/InterfaceGUI/cinqC/compofact.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/compojdc.py b/InterfaceGUI/cinqC/compojdc.py deleted file mode 100644 index 2f34be5c..00000000 --- a/InterfaceGUI/cinqC/compojdc.py +++ /dev/null @@ -1,109 +0,0 @@ -# -*- 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 -# - -from Editeur import Objecttreeitem -from InterfaceGUI.cinqC import browser -from Extensions.i18n import tr - - -class Node(browser.JDCNode): - - def getPanel(self): - - from InterfaceGUI.QT5.monChoixCommande import MonChoixCommande - return MonChoixCommande(self,self.item, self.editor) - - - -class JDCTreeItem(Objecttreeitem.ObjectTreeItem): - itemNode=Node - - def isExpandable(self): - return 1 - - def getText(self): - return " " - - def getLabelText(self): - # None --> fonte et couleur par defaut - return tr(self.object.nom),None,None - - def getJdc(self): - """ - Retourne l'objet pointe par self - """ - return self.object - - - def addItem(self,name,pos): - cmd = self._object.addEntite(name,pos) - return cmd - - def suppItem(self,item) : - # item = item de l'ETAPE a supprimer du JDC - # item.getObject() = ETAPE ou COMMENTAIRE - # self.object = JDC - - itemobject=item.getObject() - if self.object.suppEntite(itemobject): - if itemobject.nature == "COMMENTAIRE" : - message = tr("Commentaire supprime") - else : - message = tr("Commande %s supprimee",itemobject.nom) - return 1,message - else: - message=tr("Pb interne : impossible de supprimer cet objet") - return 0,message - - def getSubList(self): - """ - Retourne la liste des items fils de l'item jdc. - Cette liste est conservee et mise a jour a chaque appel - """ - if self.object.etapes_niveaux != []: - liste = self.object.etapes_niveaux - else: - liste = self.object.etapes - #print ('getSubList compojdc , liste : ', liste) - sublist=[None]*len(liste) - # suppression des items lies aux objets disparus - for item in self.sublist: - old_obj=item.getObject() - if old_obj in liste: - pos=liste.index(old_obj) - sublist[pos]=item - else: - pass # objets supprimes ignores - # ajout des items lies aux nouveaux objets - pos=0 - for obj in liste: - if sublist[pos] is None: - # nouvel objet : on cree un nouvel item - item = self.makeObjecttreeitem(self.appliEficas, obj.nom + " : ", obj) - sublist[pos]=item - pos=pos+1 - - self.sublist=sublist - return self.sublist - - -import Accas -treeitem =JDCTreeItem -objet = Accas.JDC diff --git a/InterfaceGUI/cinqC/compojdc.py b/InterfaceGUI/cinqC/compojdc.py new file mode 120000 index 00000000..4d30377a --- /dev/null +++ b/InterfaceGUI/cinqC/compojdc.py @@ -0,0 +1 @@ +old/compojdc.py \ No newline at end of file diff --git a/InterfaceGUI/cinqC/compomclist.py b/InterfaceGUI/cinqC/compomclist.py index 3cbe73df..aa8dc6f5 100644 --- a/InterfaceGUI/cinqC/compomclist.py +++ b/InterfaceGUI/cinqC/compomclist.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/compooper.py b/InterfaceGUI/cinqC/compooper.py index d64c889b..74b2f4ec 100644 --- a/InterfaceGUI/cinqC/compooper.py +++ b/InterfaceGUI/cinqC/compooper.py @@ -1,5 +1,5 @@ #-*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/compoproc.py b/InterfaceGUI/cinqC/compoproc.py index 0965e718..0b4bccb5 100644 --- a/InterfaceGUI/cinqC/compoproc.py +++ b/InterfaceGUI/cinqC/compoproc.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 @@ -27,7 +27,7 @@ class Node(browser.JDCNode): def getPanel(self): - debug=0 + debug=1 if debug : print ('in getPanel compoproc ', self.item.nom ) maDefinition = self.item.get_definition() if maDefinition.fenetreIhm != None : diff --git a/InterfaceGUI/cinqC/composimp.py b/InterfaceGUI/cinqC/composimp.py index 8f6aea78..c191cc6a 100644 --- a/InterfaceGUI/cinqC/composimp.py +++ b/InterfaceGUI/cinqC/composimp.py @@ -1,5 +1,5 @@ -# -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2021 EDF R&D +# -*- 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 @@ -17,830 +17,22 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# Modules Python -from __future__ import absolute_import -from __future__ import print_function -try : - from builtins import str -except : pass -import types,os - -from copy import copy,deepcopy -import traceback -from InterfaceGUI.QT5 import typeNode - -# Modules Eficas -from Editeur import Objecttreeitem -from Accas import SalomeEntry -from Accas import ASSD -from Accas import UserASSD -from Accas import UserASSDMultiple +from Editeur import Objecttreeitem from InterfaceGUI.cinqC import browser +from InterfaceGUI.QT5.compojdc import JDCTreeItem -#class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): -class Node(browser.JDCNode): - - def createPopUpMenu(self): - typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) - - #def getPanel(self,parentQt,maCommande, widgetParticularise=None): - def getPanel(self,parentQt,maCommande, widgetParticularise=None): - maDefinition=self.item.get_definition() - monObjet=self.item.object - monNom=self.item.nom - - # le mot clef est cache ou cache avec defaut - if maDefinition.statut in ('c','d') : return None - - if maDefinition.into != [] and maDefinition.into != None: - #if type(maDefinition.into) ==types.FunctionType : print(maDefinition.into()) - if type(maDefinition.into) ==types.FunctionType : monInto=maDefinition.into() - else : monInto = maDefinition.into - - if maDefinition.fenetreIhm != 'menuDeroulant' and maDefinition.fenetreIhm != None: - widgetParticularise=maDefinition.fenetreIhm - if widgetParticularise != None: - from importlib import import_module - module = import_module(widgetParticularise) - classeWidget = getattr(module,'MonWidgetSpecifique') - self.widget=classeWidget(self,maDefinition,monNom,monObjet,parentQt,maCommande) - return self.widget - - # label informatif - if monObjet.isInformation(): - from InterfaceGUI.QT5.monWidgetInfo import MonWidgetInfo - widget=MonWidgetInfo(self,maDefinition,monNom,monObjet,parentQt,maCommande) - self.widget=widget - return widget - - - # Attention l ordre des if est important - # Attention il faut gerer les blocs et les facteurs - # a gerer comme dans composimp - # Gestion des matrices - if self.item.waitMatrice (): - from InterfaceGUI.QT5.monWidgetMatrice import MonWidgetMatrice - widget=MonWidgetMatrice(self,maDefinition,monNom,monObjet,parentQt,maCommande) - self.widget=widget - return widget - - #print "____________________________", monNom, self.item.waitCo() - #print "____________________________", monNom, self.item.waitAssd() - # Gestion d'une seule valeur (eventuellement un tuple ou un complexe) - - - if maDefinition.max == 1 : - if maDefinition.intoSug != [] and maDefinition.intoSug != None: - from InterfaceGUI.QT5.monWidgetCBIntoSug import MonWidgetCBIntoSug - widget=MonWidgetCBIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif maDefinition.into != [] and maDefinition.into != None: - if maDefinition.fenetreIhm=='menuDeroulant' : - from InterfaceGUI.QT5.monWidgetCB import MonWidgetCB - widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif len(monInto) < 4 : - from InterfaceGUI.QT5.monWidgetRadioButton import MonWidgetRadioButton - widget=MonWidgetRadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif len(monInto) < 7 : - from InterfaceGUI.QT5.monWidget4a6RadioButton import MonWidget4a6RadioButton - widget=MonWidget4a6RadioButton(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetCB import MonWidgetCB - widget=MonWidgetCB(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - elif self.item.waitBool() : - from InterfaceGUI.QT5.monWidgetSimpBool import MonWidgetSimpBool - widget=MonWidgetSimpBool(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif self.item.waitFichier(): - from InterfaceGUI.QT5.monWidgetSimpFichier import MonWidgetSimpFichier - widget=MonWidgetSimpFichier(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - # PNPNPN - a faire - elif self.item.waitDate(): - from InterfaceGUI.QT5.monWidgetDate import MonWidgetDate - widget=MonWidgetDate(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif self.item.waitHeure(): - from InterfaceGUI.QT5.monWidgetHeure import MonWidgetHeure - widget=MonWidgetHeure(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - elif self.item.waitTuple() : - num=self.item.object.definition.type[0].ntuple - nomDeLaClasse = 'MonWidgetSimpTuple'+str(num) - nomDuFichier = 'InterfaceGUI.QT5.monWidgetSimpTupleN' - try : - #if 1 : - _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0) - #print (_temp) - MonWidgetSimpTuple = getattr(_temp,nomDeLaClasse) - #print (MonWidgetSimpTuple) - except : - print ("Pas de Tuple de longueur : ", num) - # print ("Prevenir la maintenance ") - widget=MonWidgetSimpTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - elif self.item.waitComplex(): - from InterfaceGUI.QT5.monWidgetSimpComplexe import MonWidgetSimpComplexe - widget=MonWidgetSimpComplexe(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - elif self.item.waitCo(): - if len(self.item.getSdAvantDuBonType()) == 0 : - from InterfaceGUI.QT5.monWidgetUniqueSDCO import MonWidgetUniqueSDCO - widget=MonWidgetUniqueSDCO(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetSDCOInto import MonWidgetSDCOInto - widget=MonWidgetSDCOInto(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif self.item.waitAssd(): - - # PN - pour ne pas appeller trop souvent self.item.getSdAvantDuBonType() - if not (self.item.waitUserAssdOrAssdMultipleEnCreation()) : maListe=self.item.getSdAvantDuBonType() - if self.item.waitUserAssdOrAssdMultipleEnCreation() : - from InterfaceGUI.QT5.monWidgetCreeUserAssd import MonWidgetCreeUserAssd - widget=MonWidgetCreeUserAssd(self,maDefinition,monNom,monObjet,parentQt,maCommande) - #elif len(self.item.getSdAvantDuBonType()) == 0 : - elif len(maListe) == 0 : - from InterfaceGUI.QT5.monWidgetVide import MonWidgetVide - widget=MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande) - #elif len(self.item.getSdAvantDuBonType()) < 4 : - elif len(maListe) < 4 : - from InterfaceGUI.QT5.monWidgetRadioButton import MonWidgetRadioButtonSD - widget=MonWidgetRadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande) - #elif len(self.item.getSdAvantDuBonType()) < 7 : - elif len(maListe) < 7 : - from InterfaceGUI.QT5.monWidget4a6RadioButton import MonWidget4a6RadioButtonSD - widget=MonWidget4a6RadioButtonSD(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetCB import MonWidgetCBSD - widget=MonWidgetCBSD(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - elif self.item.waitSalome() and self.editor.salome: - from InterfaceGUI.QT5.monWidgetSimpSalome import MonWidgetSimpSalome - widget=MonWidgetSimpSalome(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - elif self.item.waitTxm(): - from InterfaceGUI.QT5.monWidgetSimpTxt import MonWidgetSimpTxt - widget=MonWidgetSimpTxt(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetSimpBase import MonWidgetSimpBase - widget=MonWidgetSimpBase(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - # Gestion des listes - else : - if maDefinition.intoSug != [] and maDefinition.intoSug != None: - if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : - from InterfaceGUI.QT5.monWidgetIntoSug import MonWidgetIntoSug - widget=MonWidgetIntoSug(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlie - widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande) - #if maDefinition.into != [] and maDefinition.into != None: - # Attention pas fini --> on attend une liste de ASSD avec ordre - elif self.item.waitAssd() and self.item.isListSansOrdreNiDoublon(): - listeAAfficher = self.item.getSdAvantDuBonType() - if len(listeAAfficher) == 0: - from InterfaceGUI.QT5.monWidgetVide import MonWidgetVide - widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetPlusieursInto import MonWidgetPlusieursInto - widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif self.item.waitAssd() and not self.item.waitUserAssdOrAssdMultipleEnCreation() : - listeAAfficher = self.item.getSdAvantDuBonType() - # a changer selon UserASSD ou UserASSDMultiple - mctype=maDefinition.type[0] - enable_salome_selection = self.editor.salome and \ - (('grma' in repr(mctype)) or ('grno' in repr(mctype)) or ('SalomeEntry' in repr(mctype)) or \ - (hasattr(mctype, "enable_salome_selection") and mctype.enable_salome_selection)) - if enable_salome_selection: - from InterfaceGUI.QT5.monWidgetPlusieursBase import MonWidgetPlusieursBase - widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif len(listeAAfficher) == 0: - from InterfaceGUI.QT5.monWidgetVide import MonWidgetVide - widget = MonWidgetVide(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : - from InterfaceGUI.QT5.monWidgetPlusieursASSDIntoOrdonne import MonWidgetPlusieursASSDIntoOrdonne - widget=MonWidgetPlusieursASSDIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlieASSD - widget=MonWidgetPlusieursPlieASSD(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif self.item.waitTuple() : - if self.item.object.definition.fenetreIhm == 'Tableau' : - from InterfaceGUI.QT5.monWidgetTableau import MonWidgetTableau - widget=MonWidgetTableau(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - num=self.item.object.definition.type[0].ntuple - nomDeLaClasse = 'MonWidgetPlusieursTuple'+str(num) - nomDuFichier = 'InterfaceGUI.QT5.monWidgetPlusieursTupleN' - try: - _temp = __import__(nomDuFichier, globals(), locals(), [nomDeLaClasse], 0) - MonWidgetPlusieursTuple = getattr(_temp,nomDeLaClasse) - except : - print ("Pas de Tuple de longueur : ", num) - print ("Prevenir la maintenance ") - widget=MonWidgetPlusieursTuple(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - elif self.item.hasInto(): - if self.item.isListSansOrdreNiDoublon(): - - if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : - from InterfaceGUI.QT5.monWidgetPlusieursInto import MonWidgetPlusieursInto - widget=MonWidgetPlusieursInto(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlie - widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - if self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : - from InterfaceGUI.QT5.monWidgetPlusieursIntoOrdonne import MonWidgetPlusieursIntoOrdonne - widget=MonWidgetPlusieursIntoOrdonne(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlie - widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - if self.item.waitUserAssdOrAssdMultipleEnCreation() : - from InterfaceGUI.QT5.monWidgetPlusieursCreeUserAssd import MonWidgetPlusieursCreeUserAssd - widget=MonWidgetPlusieursCreeUserAssd(self,maDefinition,monNom,monObjet,parentQt,maCommande) - elif self.item in self.editor.listeDesListesOuvertes or not(self.editor.afficheListesPliees) : - from InterfaceGUI.QT5.monWidgetPlusieursBase import MonWidgetPlusieursBase - widget=MonWidgetPlusieursBase(self,maDefinition,monNom,monObjet,parentQt,maCommande) - else : - from InterfaceGUI.QT5.monWidgetPlusieursPlie import MonWidgetPlusieursPlie - widget=MonWidgetPlusieursPlie(self,maDefinition,monNom,monObjet,parentQt,maCommande) - - self.widget=widget - return widget - - -class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): - itemNode=Node - - def init(self) : - self.expandable = 0 - - - #----------------------------------------------- - # - # Methodes liees aux informations sur le Panel - # ou au mot-clef simple - # - #----------------------------------------------- - # isList - # hasInto - # getMinMax - # getMultiplicite - # getIntervalle - # getListeValeurs - # getListePossible - - def isList(self): - """ - Cette methode indique si le mot cle simple attend une liste (valeur de retour 1) - ou s'il n'en attend pas (valeur de retour 0) - - Deux cas principaux peuvent se presenter : avec validateurs ou bien sans. - Dans le cas sans validateur, l'information est donnee par l'attribut max - de la definition du mot cle. - Dans le cas avec validateur, il faut combiner l'information precedente avec - celle issue de l'appel de la methode isList sur le validateur.On utilisera - l'operateur ET pour effectuer cette combinaison (AndVal). - """ - is_a_list=0 - min,max = self.getMinMax() - assert (min <= max) - if max > 1 : - is_a_list=1 - # Dans le cas avec validateurs, pour que le mot cle soit considere - # comme acceptant une liste, il faut que max soit superieur a 1 - # ET que la methode isList du validateur retourne 1. Dans les autres cas - # on retournera 0 (n'attend pas de liste) - if self.definition.validators : - is_a_list= self.definition.validators.isList() * is_a_list - return is_a_list - - def isListSansOrdreNiDoublon(self): - if self.definition.homo=="SansOrdreNiDoublon" : return 1 - return 0 - - - def hasInto(self): - """ - Cette methode indique si le mot cle simple propose un choix (valeur de retour 1) - ou s'il n'en propose pas (valeur de retour 0) - - Deux cas principaux peuvent se presenter : avec validateurs ou bien sans. - Dans le cas sans validateur, l'information est donnee par l'attribut into - de la definition du mot cle. - Dans le cas avec validateurs, pour que le mot cle soit considere - comme proposant un choix, il faut que into soit present OU - que la methode hasInto du validateur retourne 1. Dans les autres cas - on retournera 0 (ne propose pas de choix) - """ - has_an_into=0 - if self.definition.into: - has_an_into=1 - elif self.definition.validators : - has_an_into= self.definition.validators.hasInto() - return has_an_into - - def hasIntoSug(self): - if self.definition.intoSug: return 1 - return 0 - - - def getMinMax(self): - """ Retourne les valeurs min et max de la definition de object """ - return self.object.getMinMax() - - def getMultiplicite(self): - """ A preciser. - Retourne la multiplicite des valeurs affectees a l'objet - represente par l'item. Pour le moment retourne invariablement 1. - """ - return 1 - - def getIntervalle(self): - """ - Retourne le domaine de valeur attendu par l'objet represente - par l'item. - """ - return self.object.getintervalle() - - def getListeValeurs(self) : - """ Retourne la liste des valeurs de object """ - valeurs=self.object.getListeValeurs() - try : - if "R" in self.object.definition.type: - clef=self.object.getNomConcept() - if clef in self.appliEficas.dict_reels: - if type(valeurs) == tuple: - valeurs_reelles=[] - for val in valeurs : - if val in self.appliEficas.dict_reels[clef]: - valeurs_reelles.append(self.appliEficas.dict_reels[clef][val]) - else : - valeurs_reelles.append(val) - else : - if valeurs in self.appliEficas.dict_reels[clef]: - valeurs_reelles=self.appliEficas.dict_reels[clef][valeurs] - valeurs=valeurs_reelles - except : - pass - return valeurs - - def getListePossible(self,listeActuelle=[]): - if hasattr(self.definition.validators,'into'): - valeurspossibles = self.definition.validators.into - else: - valeurspossibles = self.get_definition().into - - if listeActuelle==[] : return valeurspossibles - - #On ne garde que les items valides - listevalideitem=[] - if type(valeurspossibles) in (list,tuple) : - pass - else : - valeurspossibles=(valeurspossibles,) - for item in valeurspossibles: - encorevalide=self.valideItem(item) - if encorevalide : - listevalideitem.append(item) - - #on ne garde que les choix possibles qui passent le test de valideListePartielle - listevalideliste=[] - for item in listevalideitem: - encorevalide=self.valideListePartielle(item,listeActuelle) - if encorevalide : - listevalideliste.append(item) - #print listevalideliste - return listevalideliste - - def getListePossibleAvecSug(self,listeActuelle=[]): - if hasattr(self.definition,'intoSug'): - valeurspossibles = self.definition.intoSug - else: - return listeActuelle - - if listeActuelle==[] : return valeurspossibles - valeurspossibles = valeurspossibles+listeActuelle - #On ne garde que les items valides - listevalideitem=[] - if type(valeurspossibles) in (list,tuple) : - pass - else : - valeurspossibles=(valeurspossibles,) - for item in valeurspossibles: - encorevalide=self.valideItem(item) - if encorevalide : - listevalideitem.append(item) - - #on ne garde que les choix possibles qui passent le test de valideListePartielle - listevalideliste=[] - for item in listevalideitem: - encorevalide=self.valideListePartielle(item,listeActuelle) - if encorevalide : - listevalideliste.append(item) - return listevalideliste - - def getListeParamPossible(self): - liste_param=[] - l1,l2=self.jdc.getParametresFonctionsAvantEtape(self.getEtape()) - for param in self.object.jdc.params: - if param.nom not in l1 : continue - encorevalide=self.valideItem(param.valeur) - if encorevalide: - type_param=param.valeur.__class__.__name__ - for typ in self.definition.type: - if typ=='R': - liste_param.append(param) - if typ=='I' and type_param=='int': - liste_param.append(param) - if typ=='TXM' and type_param=='str': - liste_param.append(repr(param)) - if ('grma' in repr(typ)) and type_param=='str': - liste_param.append(param.nom) - return liste_param - - #-------------------------------------------------- - # - # Methodes liees a la validite des valeurs saisies - # - #--------------------------------------------------- - # valideItem - # valideListePartielle - # valideListeComplete - # infoErreurItem - # infoErreurListe - # isInIntervalle - # isValid - - def valideItem(self,item): - """ - La validation est realisee directement par l'objet - """ - return self.object.valideItem(item) - - def valideListePartielle(self,item,listecourante): - #On protege la liste en entree en la copiant - valeur=list(listecourante) - if item : valeur.append(item) - return self.object.validValeurPartielle(valeur) - - def valideListeComplete (self,valeur): - return self.object.validValeur(valeur) - - def infoErreurItem(self) : - commentaire="" - if self.definition.validators : - commentaire=self.definition.validators.infoErreurItem() - return commentaire - - def aide(self) : - commentaire="" - if self.definition.validators : - commentaire=self.definition.validators.aide() - return commentaire - - def infoErreurListe(self) : - commentaire="" - if self.definition.validators : - commentaire=self.definition.validators.infoErreurListe() - return commentaire - - def isInIntervalle(self,valeur): - """ - Retourne 1 si la valeur est dans l'intervalle permis par - l'objet represente par l'item. - """ - return self.valideItem(valeur) - - def isValid(self): - valide=self.object.isValid() - return valide - - #-------------------------------------------------- - # - # Autres ... - # - #--------------------------------------------------- - # getIconName - # getText - # setValeurCo - # getSdAvantDuBonType - - - def getIconName(self): - if self.appliEficas.maConfiguration.differencieSiDefaut and self.isValid(): - if self.object.definition.defaut != None : - if self.object.valeur == self.object.definition.defaut : return "ast-green-dark-ball" - if self.object.definition.max > 1 and list(self.object.valeur) == list(self.object.definition.defaut) : return "ast-green-dark-ball" - return "ast-green-ball" - elif self.isValid(): - return "ast-green-ball" - elif self.object.isOblig(): - return "ast-red-ball" - else: - return "ast-yel-ball" - - def getText(self): - """ - Classe SIMPTreeItem - Retourne le texte a afficher dans l'arbre representant la valeur de l'objet - pointe par self - """ - if self.waitUserAssdMultiple() or self.object.waitUserAssd() or self.object.waitAssd(): - return self.object.valeur - #if self.object.valeur != None : return self.object.valeur.nom - #else : return "" - text = self.object.getText() - if text == None : text="" - return text - - - def setValeurCo(self,nomCo): - """ - Affecte au MCS pointe par self l'objet de type CO et de nom nom_co - """ - ret = self.object.setValeurCo(nomCo) - #print "setValeurCo",ret - return ret - - def getSdAvantDuBonType(self): - """ - Retourne la liste des noms des SD presentes avant l'etape qui contient - le MCS pointe par self et du type requis par ce MCS - """ - # A changer pour tenir compte des UserASSDMultiple - # ici on passe par parent pour avoir le bon type - #if self.waitUserAssdMultiple() : - # l=self.object.parent.getSdCreeParObjetAvecFiltre(self.object) - # return l - if self.waitUserAssdMultiple() : - l=self.object.getUserAssdPossible() - return l - a=self.object.etape.parent.getSdAvantDuBonType(self.object.etape,self.object.definition.type) - if self.waitUserAssd() : l=self.jdc.getSdCreeParObjet(self.object.definition.type) - else :l=[] - return a+l - - def getSdAvantDuBonTypePourTypeDeBase(self): - a=self.object.jdc.getSdAvantDuBonTypePourTypeDe_Base(self.object.etape,"LASSD") - return a - - def deleteValeurCo(self,valeur=None): - """ - Supprime la valeur du mot cle (de type CO) - il faut propager la destruction aux autres etapes - """ - if not valeur : valeur=self.object.valeur - # XXX faut il vraiment appeler delSdprod ??? - #self.object.etape.parent.delSdprod(valeur) - self.object.etape.parent.deleteConcept(valeur) - - #----------------------------------------------- - # - # Methodes liees au type de l objet attendu - # - #----------------------------------------------- - # waitCo - # waitGeom - # waitComplex - # waitReel - # waitAssd - # getType - - def waitCo(self): - """ - Methode booleenne qui retourne 1 si l'objet pointe par self - attend un objet de type ASSD qui n'existe pas encore (type CO()), - 0 sinon - """ - return self.object.waitCo() - - def waitFichier(self): - maDefinition=self.object.definition - try : - if ('Repertoire' in maDefinition.type[0]) or ('Fichier' in maDefinition.type[0]) : - return 1 - except : - return 0 - - def waitGeom(self): - """ - Methode booleenne qui retourne 1 si l'objet pointe par self - attend un objet GEOM, 0 sinon - """ - return self.object.waitGeom() - - def waitTxm(self): - return self.object.waitTxm() - - - def waitComplex(self): - """ Methode booleenne qui retourne 1 si l'objet pointe par self - attend un complexe, 0 sinon """ - if 'C' in self.object.definition.type: - return 1 - else: - return 0 - - def waitReel(self): - """ Methode booleenne qui retourne 1 si l'objet pointe par self - attend un reel, 0 sinon """ - if 'R' in self.object.definition.type: - return 1 - else: - return 0 - - def waitTuple(self) : - return self.object.waitTuple() - - def waitDate(self): - """ Methode booleenne qui retourne 1 si l'objet pointe par self - attend un reel, 0 sinon """ - if 'DateHHMMAAAA' in self.object.definition.type: - return 1 - else: - return 0 - - def waitHeure(self): - """ Methode booleenne qui retourne 1 si l'objet pointe par self - attend un reel, 0 sinon """ - if 'HeureHHMMSS' in self.object.definition.type: - return 1 - else: - return 0 - - - - def waitTuple(self): - """ Methode booleenne qui retourne 1 si l'objet pointe par self - attend un Tuple, 0 sinon """ - for ss_type in self.object.definition.type: - if repr(ss_type).find('Tuple') != -1 : - return 1 - return 0 - - def waitMatrice(self): - """ Methode booleenne qui retourne 1 si l'objet pointe par self - attend un Tuple, 0 sinon """ - # il faut trouver autre chose que ce find!!! - for ss_type in self.object.definition.type: - #if repr(ss_type).find('Matrice') != -1 : - if hasattr(ss_type, 'typElt') : - return 1 - return 0 - - def waitAssd(self): - """Methode booleenne qui retourne 1 si l'objet pointe par self - attend un objet de type ASSD ou derive, 0 sinon """ - return self.object.waitAssd() - - def waitAssdOrTypeBase(self) : - boo=0 - if len(self.object.definition.type) > 1 : - if self.waitReel() : - boo = 1 - if 'I' in self.object.definition.type : - boo = 1 - return boo - - def waitSalome(self): - monType = self.object.definition.type[0] - if 'grma' in repr(monType) : return True - if 'grno' in repr(monType) : return True - try : - if issubclass(monType, SalomeEntry) : return True - except : - pass - return False - - def getType(self): - """ - Retourne le type de valeur attendu par l'objet represente par l'item. - """ - return self.object.getType() - - #----------------------------------------------------- - # - # Methodes liees a l evaluation de la valeur saisie - # - #----------------------------------------------------- - # evalValeur - # evalValeurItem - # isCO - # traiteReel - - def evalValeur(self,valeur): - """ Lance l'interpretation de 'valeur' (chaine de caracteres) comme valeur de self : - - retourne l'objet associe si on a pu interpreter (entier, reel, ASSD,...) - - retourne 'valeur' (chaine de caracteres) sinon - """ - newvaleur=self.evalVal(valeur) - return newvaleur,1 - - - def evalValeurItem(self,valeur): - """ Lance l'interpretation de 'valeur' qui doit ne pas etre un tuple - - va retourner la valeur de retour et la validite - selon le type de l objet attendu - - traite les reels et les parametres - """ - #print "evalValeurItem",valeur - if valeur==None or valeur == "" : - return None,0 - validite=1 - if self.waitReel(): - valeurinter = self.traiteReel(valeur) - if valeurinter != None : - valeurretour,validite= self.object.evalValeur(valeurinter) - else: - valeurretour,validite= self.object.evalValeur(valeur) - elif self.waitGeom(): - valeurretour,validite = valeur,1 - else : - valeurretour,validite= self.object.evalValeur(valeur) - - if validite == 0: - if (type(valeur) == bytes or type(valeur) == str )and self.object.waitTxm(): - essai_valeur="'" + valeur + "'" - valeurretour,validite= self.object.evalValeur(essai_valeur) - - if hasattr(valeurretour,'__class__'): - #if valeurretour.__class__.__name__ in ('PARAMETRE','PARAMETRE_EVAL'): - if valeurretour.__class__.__name__ in ('PARAMETRE',): - validite=1 - - #if self.waitCo(): - # CCAR : il ne faut pas essayer de creer un concept - # il faut simplement en chercher un existant ce qui a du etre fait par self.object.evalValeur(valeur) - #try: - #valeurretour=Accas.CO(valeur) - #except: - #valeurretour=None - #validite=0 - # on est dans le cas ou on a evalue et ou on n'aurait pas du - if self.object.waitTxm() : - if type(valeurretour) != bytes: - valeurretour=str(valeur) - validite=1 - return valeurretour,validite - - def isCO(self,valeur=None): - """ - Indique si valeur est un concept produit de la macro - Cette methode n'a de sens que pour un MCSIMP d'une MACRO - Si valeur vaut None on teste la valeur du mot cle - """ - # Pour savoir si un concept est un nouveau concept de macro - # on regarde s'il est present dans l'attribut sdprods de l'etape - # ou si son nom de classe est CO. - # Il faut faire les 2 tests car une macro non valide peut etre - # dans un etat pas tres catholique avec des CO pas encore types - # et donc pas dans sdprods (resultat d'une exception dans typeSDProd) - if not valeur:valeur=self.object.valeur - if valeur in self.object.etape.sdprods:return 1 - #if type(valeur) is not types.InstanceType:return 0 - if type(valeur) is not object:return 0 - if valeur.__class__.__name__ == 'CO':return 1 - return 0 - - def isParam(self,valeur) : - for param in self.jdc.params: - if (repr(param) == valeur): - return 1 - return 0 +class Node(browser.JDCNode): - def traiteReel(self,valeur): - """ - Cette fonction a pour but de rajouter le '.' en fin de chaine pour un reel - ou de detecter si on fait reference a un concept produit par DEFI_VALEUR - ou un EVAL ... - """ - valeur = valeur.strip() - liste_reels = self.getSdAvantDuBonType() - if valeur in liste_reels: - return valeur - if len(valeur) >= 3 : - if valeur[0:4] == 'EVAL' : - # on a trouve un EVAL --> on retourne directement la valeur - return valeur - if valeur.find('.') == -1 : - # aucun '.' n'a ete trouve dans valeur --> on en rajoute un a la fin - if (self.isParam(valeur)): - return valeur - else: - if valeur.find('e') != -1: - # Notation scientifique ? - try : - r=eval(valeur) - return valeur - except : - return None - else : - return valeur+'.' - else: - return valeur + def getPanel(self): + from InterfaceGUI.QT5.monChoixCommande import MonChoixCommande + return MonChoixCommande(self,self.item, self.editor) +# Voir avec Eric pour comprendre pourquoi cela change les choses ? +class cinqCJDCTreeItem(JDCTreeItem) : + pass -import Accas -treeitem = SIMPTreeItem -objet = Accas.MCSIMP +from Accas import JDC +treeitem = cinqCJDCTreeItem +objet = JDC diff --git a/InterfaceGUI/cinqC/editor.py b/InterfaceGUI/cinqC/editor.py index 255f5204..9b5b54f2 100644 --- a/InterfaceGUI/cinqC/editor.py +++ b/InterfaceGUI/cinqC/editor.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 @@ -66,6 +66,7 @@ class JDCEditor(Ui_editor5C, JDCEditorSsIhm, QWidget): self.lesIds = [] self.lesLabels = [] self.dictLabels = {} + self.enteteQTree = 'premier' # a envisager si on garde une selection ? self.initSelection() diff --git a/InterfaceGUI/cinqC/monWidgetBar.py b/InterfaceGUI/cinqC/monWidgetBar.py index dc9e44fa..50dd5843 100644 --- a/InterfaceGUI/cinqC/monWidgetBar.py +++ b/InterfaceGUI/cinqC/monWidgetBar.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/monWidgetCBSelection5C.py b/InterfaceGUI/cinqC/monWidgetCBSelection5C.py index cf084521..d14aebd2 100644 --- a/InterfaceGUI/cinqC/monWidgetCBSelection5C.py +++ b/InterfaceGUI/cinqC/monWidgetCBSelection5C.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/monWidgetDateSelection5C.py b/InterfaceGUI/cinqC/monWidgetDateSelection5C.py index 75a5a11c..2d944b08 100644 --- a/InterfaceGUI/cinqC/monWidgetDateSelection5C.py +++ b/InterfaceGUI/cinqC/monWidgetDateSelection5C.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/monWidgetSelection.py b/InterfaceGUI/cinqC/monWidgetSelection.py index a0fcedfd..b138342b 100644 --- a/InterfaceGUI/cinqC/monWidgetSelection.py +++ b/InterfaceGUI/cinqC/monWidgetSelection.py @@ -1,4 +1,4 @@ -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/monWidgetSimpSelection5C.py b/InterfaceGUI/cinqC/monWidgetSimpSelection5C.py index baaea4f4..f83e2f35 100644 --- a/InterfaceGUI/cinqC/monWidgetSimpSelection5C.py +++ b/InterfaceGUI/cinqC/monWidgetSimpSelection5C.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 diff --git a/InterfaceGUI/cinqC/qtEficas.py b/InterfaceGUI/cinqC/qtEficas.py index 00d5f06b..99d5e51c 100644 --- a/InterfaceGUI/cinqC/qtEficas.py +++ b/InterfaceGUI/cinqC/qtEficas.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -*- coding: UTF-8 -*- -# Copyright (C) 2007-2021 EDF R&D +# 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 -- 2.39.2