From 9fc79507411842d0f2ab31ff61f72bdea6d0e45b Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Wed, 20 Oct 2021 15:15:14 +0200 Subject: [PATCH] changeValeur suite --- Editeur/Objecttreeitem.py | 23 ++++++++------------- Ihm/I_OBJECT.py | 3 ++- InterfaceWeb/browser.py | 43 +++++++++++++++++++++++++++------------ InterfaceWeb/composimp.py | 29 ++++++++++++++++++++------ InterfaceWeb/editor.py | 5 +++-- 5 files changed, 66 insertions(+), 37 deletions(-) diff --git a/Editeur/Objecttreeitem.py b/Editeur/Objecttreeitem.py index 95aea07b..a6ff12bf 100644 --- a/Editeur/Objecttreeitem.py +++ b/Editeur/Objecttreeitem.py @@ -28,9 +28,8 @@ try : except : pass import types,os,glob,imp,sys -import uuid from copy import copy,deepcopy - +from uuid import uuid1 # import du chargeur de composants from .comploader import makeObjecttreeitem from Ihm import CONNECTOR @@ -167,10 +166,14 @@ class ObjectTreeItem(TreeItem,Delegate): self.sublist=[] self.init() # on met le meme id au noeud et a l objet - self.idUnique=uuid.uuid1().hex - self._object.idUnique=self.idUnique + self.idUnique=uuid1().hex if self._object.nature == 'MCList' and len(self._object.data) == 1 : - self._object.data[0].idUnique=self.idUnique + self._object.data[0].idUnique=self.idUnique + if hasattr (self._object.data[0],'idUnique') : self._object.data[0].remplaceId = self._object.idUnique + else : self._object.data[0].remplaceId = None + if hasattr (self._object,'idUnique') : self._object.remplaceId = self._object.idUnique + else : self._object.remplaceId = None + self._object.idUnique=self.idUnique # Ici on teste si Web if hasattr (self.appliEficas,'dicoIdNode') : self.appliEficas.dicoIdNode[self.idUnique]=self @@ -437,16 +440,6 @@ class ObjectTreeItem(TreeItem,Delegate): sublist.append(item) return sublist - def getDicoObjetsPourWeb(self): - from collections import OrderedDict - monDico=OrderedDict() - for mc in self.mcListe : - nodeMC=self.editor.dicoIdNode[mc.idUnique] - if not mc.isMCList() : monDico[mc.idUnique]=nodeMC.getDicoObjetsPourWeb() - else : - for d in nodeMC.getDicoObjetsPourWeb() : - for i,k in d.items() : monDico[i]=k - return monDico # a piori inutile PN 06 11 17 #def wait_fichier_init(self): diff --git a/Ihm/I_OBJECT.py b/Ihm/I_OBJECT.py index 690bd0a0..e06d50d3 100644 --- a/Ihm/I_OBJECT.py +++ b/Ihm/I_OBJECT.py @@ -64,7 +64,8 @@ class OBJECT: #print "finModif",self # pour les objets autres que les commandes, aucun traitement specifique # on remonte l'info de fin de modif au parent - CONNECTOR.Emit(self,"valid") + # On en remonte beaucoup trop --> commente le 19oct21 + #CONNECTOR.Emit(self,"valid") if self.parent: self.parent.finModif() diff --git a/InterfaceWeb/browser.py b/InterfaceWeb/browser.py index 6cda5bd1..3e066ce0 100644 --- a/InterfaceWeb/browser.py +++ b/InterfaceWeb/browser.py @@ -83,6 +83,7 @@ class JDCNode(): self.appliEficas = treeParent.appliEficas self.firstAffiche = True self.childrenComplete=[] + self.oldValidite=None #from . import compocomm @@ -137,10 +138,10 @@ class JDCNode(): self.menu=None self.existeMenu=1 - #self.item.connect("valid",self.onValid,()) - #self.item.connect("supp" ,self.onSupp,()) - #self.item.connect("add" ,self.onAdd,()) - #self.item.connect("redessine" ,self.onRedessine,()) + self.item.connect("valid",self.onValid,()) + self.item.connect("supp" ,self.onSupp,()) + self.item.connect("add" ,self.onAdd,()) + self.item.connect("redessine" ,self.onRedessine,()) self.state="" self.fenetre=None @@ -151,6 +152,29 @@ class JDCNode(): #except : # pass + def onValid(self): + #----------------- + print ('appel onValid pour', self.item.nom) + validite=self.item.isValid() + if self.oldValidite==validite : return + self.oldValidite=validite + print ('appel de propageValide pour ', self.item.nom, validite,self.oldValidite) + self.editor.connecteur.toWebApp('propageValide',self.item.idUnique, validite) + + def onAdd(self,object): + #---------------------- + self.editor.connecteur.toWebApp('Add',self.item.idUnique, 1) + + def onSupp(self,object): + #----------------------- + self.editor.connecteur.toWebApp('Add',self.item.idUnique, 1) + + def onRedessine(self): + #---------------------- + print ('on Redessine pour ', self) + + #--------------------- + # self.affichePanneau() def buildChildren(self,posInsertion=10000): @@ -184,6 +208,7 @@ class JDCNode(): 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) + item.fauxNodeGraphique=nouvelItem self.children.append(nouvelItem) #print ("fin *********** buildChildren ",self,self.item, self.item.nom, self.children) @@ -235,15 +260,6 @@ class JDCNode(): #---------------- #def deleteMultiple(self,liste=()): #-------------------------------- - #def onValid(self): - #----------------- - #def onAdd(self,object): - #---------------------- - #def onSupp(self,object): - #----------------------- - #def onRedessine(self): - #--------------------- - # self.affichePanneau() #def updateNodeValid(self): #----------------------- @@ -294,3 +310,4 @@ class JDCNode(): #def selectApres(self): #--------------------- + diff --git a/InterfaceWeb/composimp.py b/InterfaceWeb/composimp.py index 7350cfef..7587f26d 100644 --- a/InterfaceWeb/composimp.py +++ b/InterfaceWeb/composimp.py @@ -36,12 +36,29 @@ from Accas import UserASSD from Accas import UserASSDMultiple from . import typeNode from . import browser - -class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): - - def createPopUpMenu(self): - typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) - +from .politiquesValidation import PolitiqueUnique +from .politiquesValidation import PolitiquePlusieurs + +#class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): +class Node(browser.JDCNode): + + #def createPopUpMenu(self): + # typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self) + + # appelée via Connecteur + # equivalent dans monWidgetxxx.py pour qt + def traiteValeurSaisie(self,valeur): + if self.item.get_definition().max==1 : self.politique = PolitiqueUnique (self, self.editor) + else : self.politique = PolitiquePlusieurs(self, self.editor) + if self.item.definition.validators != None : + if self.item.definition.validators.verifItem(nouvelleValeur) !=1 : + commentaire=self.node.item.definition.validators.infoErreurItem() + return (self.item.idUnique, commentaire, false) + nouvelleValeurFormat=self.politique.getValeurTexte(valeur) + validite,commentaire=self.politique.recordValeur(nouvelleValeurFormat) + return (self.item.idUnique, commentaire, validite) + + def getPanelGroupe(self,parentQt,maCommande): print ('getPanelGroupe de composimp pour ',self,self.item.nom, ) diff --git a/InterfaceWeb/editor.py b/InterfaceWeb/editor.py index a9024a10..f4537f59 100755 --- a/InterfaceWeb/editor.py +++ b/InterfaceWeb/editor.py @@ -44,10 +44,11 @@ class JDCWebEditor(JDCEditorSsIhm): Editeur de jdc """ - def __init__ (self,appliEficas,fichier = None, jdc=None ): - #---------------------------------------------------------- + def __init__ (self,appliEficas,fichier = None, jdc= None, connecteur = None ): + #------------------------------------------------------------------------ JDCEditorSsIhm.__init__(self,appliEficas,fichier) + self.connecteur=connecteur self.dicoIdNode={} comploader.chargerComposants(Ihm='Web') self.tree=None -- 2.39.2