def getDicoForFancy(self):
#print ('MCSIMP getDicoForFancy ', self)
monDico={}
- #leTexte="<span class='" + self.getNomClassWeb() + "' id='" +self.idUnique+ "'>" + self.nom + ' ' + str(self.val) + "</span>"
monDico['title']=self.nom
monDico['key']=self.idUnique
- if self.val != None : monDico['wValue']=str(self.val)
+ if self.valeur != None : monDico['wValue']=str(self.valeur)
else : monDico['wValue']=''
monDico['classeAccas']=self.nature
monDico['validite']=self.getValid()
+ if monDico['validite']== None : monDico['validite']=self.isValid()
monDico['max']=self.definition.max
monDico['min']=self.definition.min
monDico['into']=self.definition.into
#if ancien and not itemExpand : self.plie = True
#if (isinstance(self.item,composimp.SIMPTreeItem)) : self.plie=False
- #from . import compomclist
#ajoutAuParentduNoeud=0
- # PN a revoir
- #from . import compobloc
- #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)
+ from . import compobloc
+ from . import compomclist
+ while (isinstance(self.treeParent,compobloc.Node) or ( isinstance(self.treeParent,compomclist.Node) and self.treeParent.item.isMCList())) :
+ self.treeParent=self.treeParent.vraiParent
#if (isinstance(self,compobloc.Node) or (isinstance(self,compomclist.Node) and self.item.isMCList()) or ( hasattr(self.item.parent,'inhibeValidator') and isinstance(self,compomclist.Node) and self.item.parent.inhibeValidator)) :
def onAdd(self,ajout):
#-----------------------
- print ('on add', '________ ajout', ajout , ' dans ', self.item.nom)
+ #print ('on add', '________ ajout', ajout , ' dans ', self.item.nom)
self.buildChildren()
- # si on a un copie multiple
+ # 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
pos = 0; trouve=0
for c in self.children :
if c.item._object == mcAjoute :
- pos+=1
trouve=1
break
+ pos+=1
if not trouve : print ('souci au add *************************')
- if self.children[pos].item == 'MCBLOC' : laListe=self.children[pos].item.getDicoForFancy()
- else : laListe=(self.children[pos].item.getDicoForFancy())
- print (' appel appendChild',self.item.idUnique,laListe,pos)
- self.editor.connecteur.toWebApp('appendChild',self.item.idUnique,laListe,pos)
-
- def onSupp(self,object):
- #-----------------------
- self.editor.connecteur.toWebApp('Add',self.item.idUnique, 1)
+ if self.children[pos].item.nature == 'MCBLOC' : laListe=self.children[pos].item.getDicoForFancy()
+ else : laListe=(self.children[pos].item.getDicoForFancy(),)
+ self.editor.connecteur.toWebApp('appendChildren',self.getIdUnique(),laListe,pos)
+ #print (' appel appendChild',self.item.idUnique,laListe,pos)
+
+ def onSupp(self,suppression):
+ #---------------------------
+ print ('on Supp', suppression)
+ if len(suppression) > 1 :
+ self.buildChildren()
+ self.editor.connecteur.toWebApp('remplacementNode',self.item.remplaceId,self.item.idUnique(),self.item.getDicoForFancy())
+ return
+ mcSupprime= suppression[0]
+ if mcSupprime.nature != 'MCBLOC' : liste=self.item.idUnique
+ else :
+ liste=[]
+ listeMC=mcSupprime.getAllChildInBloc()
+ for mc in listeMC : liste.append(mc.idUnique)
+ self.buildChildren()
+ self.editor.connecteur.toWebApp('deleteChildren',liste)
+ print (' appel deleteChildren',liste)
def onRedessine(self):
#----------------------
# surcharge pour mcliste
return self.item.idUnique
+
def buildChildren(self,posInsertion=10000):
#------------------------------------------
""" Construit la liste des enfants de self """
ou en position intermediaire.
Si pos vaut None, on le place a la position du catalogue.
"""
- print ("************** appendChild ",self.item.getLabelText(), pos )
+ #print ("************** appendChild ",self.item.getLabelText(), pos )
#import traceback
#traceback.print_stack()
print ("-------------- fin append child", child, child.item)
return True
+ def delete(self):
+ #----------------
+ """
+ Methode externe pour la destruction de l'objet associe au noeud
+ """
+ index = self.vraiParent.children.index(self) - 1
+ ret,commentaire=self.vraiParent.item.suppItem(self.item)
+ if ret!=0 : self.treeParent.buildChildren()
+ return (ret,commentaire)
#def chercheNoeudCorrespondant(self,objSimp):
#----------------------------------------------------
#def deplace(self):
#-----------------
- #def delete(self):
- #----------------
#def deleteMultiple(self,liste=()):
#--------------------------------
return dico
+ def getAllChildInBloc(self):
+ # contrairement a getValeur ne retourne que les enfants de mcListe
+ liste=[]
+ for mc in self.mcListe:
+ if mc.isBLOC():
+ for petitfils in mc.getAllChildInBloc() : liste.append(petitfils)
+ else:
+ liste.append(mc)
+ return liste
+
def isBLOC(self):
"""
Indique si l'objet est un BLOC
)
MonProc2 = PROC(nom='MonProc2',
param1 = SIMP(statut='o',typ='R'),
+ param11 = SIMP(statut='o',typ='R'),
+ param12= SIMP(statut='o',typ='R'),
b1 = BLOC (condition = 'param1 == 2',
- param1_inBloc = SIMP(statut='o',typ='R'),
+ param1_inBloc = SIMP(statut='o',typ='R', defaut = 2),
+ B11 = BLOC (condition = 'param1_inBloc == 2',
+ param_inBlocDeBloc = SIMP(statut='o',typ='R', defaut=2),
+ B111 = BLOC (condition = 'param1_inBlocDeBloc == 2',
+ paramDernier = SIMP(statut='o',typ='R', defaut=2),
+ ),
+ ),
param2_inBloc = SIMP(statut='o',typ='R'),
),
Fact1 = FACT (statut ='o', max=2,
- param3 = SIMP(statut='o',typ='R'),
+ paramInFact1 = SIMP(statut='o',typ='R'),
+ ),
+ Fact2 = FACT (statut ='f',
+ param3InFact2 = SIMP(statut='o',typ='R'),
+ paramFacultatif = SIMP(statut='f',typ='R'),
),
)
- def appendChild(self,id,name,pos):
- #--------------------------------
+ def suppNode(self,id):
+ #-------------------
+ monNode=self.monEditeur.getNodeById(id)
+ retour=monNode.fauxNoeudGraphique.delete()
+ return retour
+
+ def appendChild(self,id,name,pos=None):
+ #-------------------------------------
"""
Methode pour ajouter un objet fils name a l objet associe au noeud id.
On peut l'ajouter en debut de liste (pos='first'), en fin (pos='last')
"""
monNode=self.monEditeur.getNodeById(id)
retour=monNode.fauxNoeudGraphique.appendChild(name,pos)
+ return retour
def saveFile(self,fileName):
#--------------------------------
__import__(name)
code=prefs.code
monEficasConnecteur=accasConnecteur(code, langue='ang')
+ #monEficasConnecteur.litFichierComm('/tmp/ajoutProcEtBloc.comm')
+ #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
+ #pprint.pprint(d)
+
monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm')
idRacine=monEficasConnecteur.monEditeur.tree.racine.item.idUnique
r=monEficasConnecteur.appendChild(idRacine,'MonProc2','last')
- d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
- i=d['children'][2]['children'][0]['key']
+ #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
+ #i=d['children'][2]['children'][0]['key']
#r=monEficasConnecteur.changeValeur(i,'65')
#d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
#(ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProc.comm')
#pprint.pprint(d)
# creation du bloc
- r=monEficasConnecteur.changeValeur(i,'2')
- d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
- (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProcEtBloc.comm')
+ #r=monEficasConnecteur.changeValeur(i,'2')
+ #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
+ #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutProcEtBloc.comm')
#pprint.pprint(d)
- exit()
# suppression du bloc
- r=monEficasConnecteur.changeValeur(i,'1')
- d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
- (ok,newFile)=monEficasConnecteur.saveFile('/tmp/suppressionBloc.comm')
- pprint.pprint(d)
-
-
- #monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_incomplet.comm')
+ #r=monEficasConnecteur.changeValeur(i,'1')
#d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
- #pprint.pprint (monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine))
- d=monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)
+ #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/suppressionBloc.comm')
#pprint.pprint(d)
- r=monEficasConnecteur.changeValeur(i,'toto')
- r=monEficasConnecteur.changeValeur(i,'65')
+
+ # ajout du Fact2
+ d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
+ e=d['children'][2]['key']
+ r=monEficasConnecteur.appendChild(e,'Fact2')
+ (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFact2.comm')
+ d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
+ mf=d['children'][2]['children'][4]['key']
+ print (mf)
+ r=monEficasConnecteur.appendChild(mf,'paramFacultatif')
+ (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFacultatif.comm')
+ d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
+ mf=d['children'][2]['children'][4]['children'][1]['key']
+ r=monEficasConnecteur.suppNode(mf)
print (r)
- d=monEficasConnecteur.getDicoObjetsCompletsPourTree(monEficasConnecteur.monEditeur.tree.racine)
- pprint.pprint(d)
- print ('\n')
+ (ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutFacultatifEtSuppresse.comm')
+ # essai enlever un mot clef qu on ne peut pas enlever
+ d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
+ mf=d['children'][2]['children'][1]['key']
+ r=monEficasConnecteur.suppNode(mf)
+ print (r)
+ #(ok,newFile)=monEficasConnecteur.saveFile('/tmp/ajoutPuisSuppresFact2.comm')
+ #d=monEficasConnecteur.getDicoForFancy(monEficasConnecteur.monEditeur.tree.racine)
+ #pprint.pprint(d)
+ #print ('_________', r)
+
+ exit()
+
#print ( '\n Fichier /home/A96028/QT5GitEficasTravail/Web/eficas/WebTest/web_tres_simple_avec_2Procs.comm')
#monEficasConnecteur.litFichierComm('../WebTest/web_tres_simple_avec_2Procs.comm')