From a7190d20b0ad34e9518fc18b3d503fd8350f7998 Mon Sep 17 00:00:00 2001 From: "pascale.noyret" Date: Tue, 26 Oct 2021 09:56:35 +0200 Subject: [PATCH] modif bloc --- Editeur/Objecttreeitem.py | 3 ++ Ihm/I_MCBLOC.py | 10 +++++ Ihm/I_OBJECT.py | 3 +- InterfaceWeb/browser.py | 51 ++++++++++++++++++------ InterfaceWeb/compomclist.py | 4 ++ WebTest/web_tres_simple_avec_2Procs.comm | 3 +- testFlask/connectEficas.py | 18 +++++---- 7 files changed, 70 insertions(+), 22 deletions(-) diff --git a/Editeur/Objecttreeitem.py b/Editeur/Objecttreeitem.py index 6f79ad8e..cbdef924 100644 --- a/Editeur/Objecttreeitem.py +++ b/Editeur/Objecttreeitem.py @@ -167,12 +167,14 @@ class ObjectTreeItem(TreeItem,Delegate): self.init() # on met le meme id au noeud et a l objet self.idUnique=uuid1().hex + if self._object.nature == 'MCList' and len(self._object.data) == 1 : self._object.data[0].idUnique=self.idUnique if hasattr (self._object.data[0],'idUnique') : self._object.data[0].remplaceId = self._object.data[0].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 @@ -452,6 +454,7 @@ class ObjectTreeItem(TreeItem,Delegate): Cette methode, globale pour les objets de type item, permet de construire et de retourner un objet de type item associe a l'object passe en argument. """ + if labeltext == 'b1 :' :print ('---------------makeObjecttreeitem', labeltext,object) return makeObjecttreeitem(appliEficas,labeltext,object,setFunction) #def __del__(self): diff --git a/Ihm/I_MCBLOC.py b/Ihm/I_MCBLOC.py index c96a9f80..402f924d 100644 --- a/Ihm/I_MCBLOC.py +++ b/Ihm/I_MCBLOC.py @@ -23,3 +23,13 @@ class MCBLOC(I_MCCOMPO.MCCOMPO): def getNomDsXML(self): return self.parent.getNomDsXML() + + def getDicoForFancy(self): + listeNodes=[] + for obj in self.mcListe: + lesNodes=obj.getDicoForFancy() + if not (isinstance(lesNodes,list)) : listeNodes.append(lesNodes) + else : + for leNode in lesNodes : listeNodes.append(leNode) + return listeNodes + diff --git a/Ihm/I_OBJECT.py b/Ihm/I_OBJECT.py index a6b6c029..2a35cd5f 100644 --- a/Ihm/I_OBJECT.py +++ b/Ihm/I_OBJECT.py @@ -215,7 +215,8 @@ class OBJECT: monDico['title']=leNom monDico['key']=self.idUnique monDico['classeAccas']=self.nature - if self.nature == 'MCLIST': monDico['validite']=None + if self.nature == 'MCLIST': monDico['validite']=None + elif self.nature == 'MCBLOC': monDico['validite']=None else : monDico['validite']=self.getValid() listeNodes=[] for obj in self.mcListe: diff --git a/InterfaceWeb/browser.py b/InterfaceWeb/browser.py index 743b80a2..7edbcb58 100644 --- a/InterfaceWeb/browser.py +++ b/InterfaceWeb/browser.py @@ -164,21 +164,26 @@ class JDCNode(): #print ('appel de propageValide pour ', self.item.nom, validite,self.oldValidite) self.editor.connecteur.toWebApp('propageValide',self.item.idUnique, validite) - def onAdd(self,ajout): + def onAddV0(self,ajout): #-------------------------- # bien tester avec les blocs - #print ('on add', '________ object', object) + # En fait, on a toujours ajour d 1 seul MC donc on est toujours dans la creation + print ('on add', '________ object', object , ' dans ', self.item.nom) avantChildren=self.children indexAvant=0 indexApres=0 reconstruitMoi=False + if self.item.nom == 'MonProc2' : print ('avant Children ', avantChildren) + self.buildChildren() + if self.item.nom == 'MonProc2' : print (' Children ', self.children) if len(ajout) > 1 : reconstruitMoi=False elif len(avantChildren)+1 == len(self.children): for i in range(len(avantChildren)): - id1=avantChildren[indexAvant].item.idUnique - id2=self.children[indexApres].item.idUnique + print (avantChildren[indexAvant].item) + id1=avantChildren[indexAvant].getIdUnique() + id2=self.children[indexApres].getIdUnique() if id1 == id2 : indexAvant += 1 indexApres += 1 @@ -189,8 +194,8 @@ class JDCNode(): reconstruitMoi=False if indexAvant == len(avantChildren) : pos = indexApres while (indexAvant < len(avantChildren)): - id1=avantChildren[indexAvant].idUnique - id2=self.children[indexApres].idUnique + id1=avantChildren[indexAvant].getIdUnique() + id2=self.children[indexApres].getIdUnique() if id1 == id2 : indexAvant += 1 indexApres += 1 @@ -199,12 +204,31 @@ class JDCNode(): else : reconstruitMoi=True if reconstruitMoi : - print ('Remplace', self.item.idUnique, self.item.remplaceId) - self.editor.connecteur.toWebApp('RemplacementNode',self.item.remplaceId,self.item.idUnique,self.item.getDicoForFancy()) # faut il ajouter pos + print ('-------------- Remplace', self.item.idUnique, self.item.remplaceId) + self.editor.connecteur.toWebApp('remplacementNode',self.item.remplaceId,self.item.getIdUnique(),self.item.getDicoForFancy()) # faut il ajouter pos else : - print ('Add', self.item.idUnique) - if (ajout[0] != self.children[pos].item._object ) : print ('souci au add *************************') - self.editor.connecteur.toWebApp('creationNodeFils',self.item.idUnique,self.children[pos].item.getDicoForFancy(),pos) + print ('-------------- Add', self.item.idUnique) + self.editor.connecteur.toWebApp('creationNodeFils',self.item.idUnique(),self.children[pos].item.getDicoForFancy(),pos) + + def onAdd(self,ajout): + #----------------------- + print ('on add', '________ ajout', ajout , ' dans ', self.item.nom) + self.buildChildren() + # si on a un copie multiple + + if len(ajout) > 1 : + self.editor.connecteur.toWebApp('remplacementNode',self.item.remplaceId,self.item.idUnique(),self.item.getDicoForFancy()) + return + + mcAjoute= ajout[0] + pos = 0; trouve=0 + for c in self.children : + if c.item._object == mcAjoute : + pos+=1 + trouve=1 + break + if not trouve : print ('souci au add *************************') + self.editor.connecteur.toWebApp('appendChild',self.item.idUnique,self.children[pos].item.getDicoForFancy(),pos) def onSupp(self,object): #----------------------- @@ -213,10 +237,13 @@ class JDCNode(): def onRedessine(self): #---------------------- print ('on Redessine pour ', self) - #--------------------- # self.affichePanneau() + def getIdUnique(self): + #--------------------- + # surcharge pour mcliste + return self.item.idUnique def buildChildren(self,posInsertion=10000): #------------------------------------------ diff --git a/InterfaceWeb/compomclist.py b/InterfaceWeb/compomclist.py index 5d74def0..e6b2cc9f 100644 --- a/InterfaceWeb/compomclist.py +++ b/InterfaceWeb/compomclist.py @@ -72,6 +72,10 @@ class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal): self.parent().buildChildren() return child + def getIdUnique(self): + #--------------------- + return 3 + class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): diff --git a/WebTest/web_tres_simple_avec_2Procs.comm b/WebTest/web_tres_simple_avec_2Procs.comm index ae56a419..308b34cd 100644 --- a/WebTest/web_tres_simple_avec_2Procs.comm +++ b/WebTest/web_tres_simple_avec_2Procs.comm @@ -2,4 +2,5 @@ MonProc(param1=2.0,); MonProc(param1=3.0,); -#CHECKSUM:d68d2f6ef67b2266c1a22c4c29ca5d7a -:FIN CHECKSUM \ No newline at end of file + +#CHECKSUM:e6a300dc9063eaaa855d6c43d8ed2eaf -:FIN CHECKSUM diff --git a/testFlask/connectEficas.py b/testFlask/connectEficas.py index 0335164b..8888adfd 100644 --- a/testFlask/connectEficas.py +++ b/testFlask/connectEficas.py @@ -106,9 +106,12 @@ class accasConnecteur : doit-on mettre l ancienne valeur en retour qui serait utile si validité = Non """ monNode=self.monEditeur.getNodeById(id) + #print (' change Valeur', monNode) (idUnique, commentaire, validite)=monNode.fauxNoeudGraphique.traiteValeurSaisie(valeur) - print ('retourChangeValeur',id, commentaire, validite ) - self.toWebApp('retourChangeValeur',id, commentaire, validite ) + print ('retour ChangeValeur',idUnique, commentaire, validite ) + return monNode.fauxNoeudGraphique.traiteValeurSaisie(valeur) + + #self.toWebApp('retourChangeValeur',id, commentaire, validite )) @@ -153,18 +156,17 @@ if __name__ == "__main__": monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm') d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) - #pprint.pprint(d) - print ('\n') - - print ('\n') - - + pprint.pprint(d) #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)) idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last') d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) + #pprint.pprint(d) i=d['children'][2]['children'][0]['key'] r=monEficasConnecteur.changeValeur(i,'65') + i=d['children'][2]['children'][0]['key'] + r=monEficasConnecteur.changeValeur(i,'2') + #print (r) d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine) pprint.pprint(d) -- 2.39.2