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
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
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):
#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()
self.appliEficas = treeParent.appliEficas
self.firstAffiche = True
self.childrenComplete=[]
+ self.oldValidite=None
#from . import compocomm
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
#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):
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)
#----------------
#def deleteMultiple(self,liste=()):
#--------------------------------
- #def onValid(self):
- #-----------------
- #def onAdd(self,object):
- #----------------------
- #def onSupp(self,object):
- #-----------------------
- #def onRedessine(self):
- #---------------------
- # self.affichePanneau()
#def updateNodeValid(self):
#-----------------------
#def selectApres(self):
#---------------------
+
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, )
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