# itemNode(treeOrNode,item,command,rmenu)
# ou treeOrNode est le noeud parent, item est l'item associe
# command est une fonction python appelee sur selection graphique
- # du noeud et rmenu est une fonction python appelee sur click droit sur le noeud
+ # du noeud (pas utilisee) et rmenu est une fonction python appelee sur click droit sur le noeud
itemNode=None
def __init__(self):
else:
return "ast-yel-los"
- def ajoutPossible(self):
- return self._object.ajoutPossible()
-
def getIndex(self,child):
""" Retourne le numero de child dans la liste des enfants de self """
return self._object.getIndex(child.getObject())
return 0
def getSubList(self):
- print ('auriouuzeeeeeeeeeeeeeeeeeeeeeeeeee')
isublist=iter(self.sublist)
liste=self._object.data
iliste=iter(liste)
Retourne 1 si le mot-cle facteur self peut etre repete
Retourne 0 dans le cas contraire
"""
- if self.definition.max > 1:
- # marche avec '**'
+ objet = self.parent.getChild(self.nom)
+ lenDejaLa=len(objet)
+ if self.definition.max > 1 and lenDejaLa < self.definition.max :
return 1
else :
return 0
def isOblig(self):
- if self.definition.statut != 'o' : return 0
+ if self.definition.statut != 'f' : return 0
objet = self.parent.getChild(self.nom)
- if len(objet) > 1 : return 0
+ if len(objet) > self.definition.min : return 0
else : return 1
def getMinMax(self):
Indique si l'objet est repetable.
Retourne 1 si le mot-cle facteur self peut etre repete
Retourne 0 dans le cas contraire
+ Appele uniquement pour le 1er fact de la liste
"""
- if self.data[0].definition.max > 1:
- # marche avec '**'
+ if self.data[0].definition.max > 1 :
return 1
else :
return 0
def getDicoObjetsCompletsPourTree(self):
#print ('MCSIMP getDicoObjetsCompletsPourTree ', self)
monDico={}
- print('-----')
- print(self.getNomClassWeb())
- print('-----')
# leTexte="<span class='" + self.getNomClassWeb() + "' id='" +self.idUnique+ "'>" + self.nom + ' ' + str(self.val) + "</span>"
leTexte= "<span class='" + self.getNomClassWeb() + "' id='" +self.idUnique+ "'>" + \
"<label class='form-check-label'>" + self.nom + \
return monDico
def getNomClassWeb(self):
+ # code mort
laClasse=self.nature
if self.isValid() : laClasse+='Valide'
else : laClasse+='NonValide'
self.appliEficas = treeParent.appliEficas
self.firstAffiche = True
self.childrenComplete=[]
- self.oldValidite='init'
+ self.oldValidite = 'init'
+ self.oldRepetable = 'init'
+ self.oldStatut = 'init'
self.item.fauxNoeudGraphique = self
if item.nom != tr(item.nom) : name = str(tr(item.nom)+" :")
def onValid(self):
#-----------------
debug=0
- if self.treeParent.oldValidite=='init' : self.treeParent.oldValidite='unknown'
+ #if self.treeParent.oldValidite=='init' : self.treeParent.oldValidite='unknown'
validite=self.item.isValid()
if debug : print ('ds onValid', self.item.nom, self.oldValidite, validite)
if self.oldValidite==validite : return
self.oldValidite=validite
if self.item.state != 'modified' : return
self.oldValidite=validite
- #print ('appel de propageValide pour ', self.item.nom, validite,self.oldValidite)
self.editor.connecteur.toWebApp('propageValide',self.getIdUnique(), validite)
+ if debug : print ('appel de propageValide pour ', self.item.nom, validite,self.oldValidite)
def onAdd(self,ajout):
#----------------------
debug=0
if debug : print ('on add de browser', '________ ajout', ajout, ' dans ', self.item.nom)
if debug : print ('nature de l item', self.item.nature)
- if self.oldValidite=='init' : self.oldValidite='unknown'
+ #if self.oldValidite=='init' : self.oldValidite='unknown'
self.buildChildren()
# si on a un copie multiple --> pas gere correctement
posOuAjouter=posDansArbre
self.editor.connecteur.toWebApp('appendChildren',ouAjouter,laListe,posOuAjouter)
+ print (laListe)
#print ('la pos ', posOuAjouter)
#print (' appel appendChild',self.item.idUnique,laListe,pos)
def onSupp(self,suppression):
#---------------------------
- if self.treeParent.oldValidite=='init' : self.treeParent.oldValidite='unknown'
+ #if self.treeParent.oldValidite=='init' : self.treeParent.oldValidite='unknown'
if len(suppression) > 1 :
print ('onSupp suppression multiple non valeur')
return
def updateNodeLabel(self):
#-------------------------
monDictPartiel={}
- monDictPartiel['title']=self.item.getLabelText()[0]
+ monDictPartiel['title']=self.item.getLabelText()[0][0:-1]
+ self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel)
+
+ def updateRepetable(self,isRepetable):
+ #-------------------------------------
+ monDictPartiel={}
+ monDictPartiel['repetable']=isRepetable
+ self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel)
+
+ def updateStatut(self,statut):
+ #-----------------------------
+ monDictPartiel={}
+ monDictPartiel['statut']=statut
+ self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel)
+
+ def updateOptionnels(self):
+ #---------------------------
+ print ('dans updateOptionnels')
+ return
+ monDictPartiel={}
+ monDictPartiel['infoOptionnels']=maNouvelleListeOtionnels
self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel)
#def chercheNoeudCorrespondant(self,objSimp):
"""
print ('******* mcfact :_appel de delete _______', self, self.vraiParent, self.item.nature)
if len(self.vraiParent.item._object) == 1 :
- print ('JE PASSE LA !!!!!!!!!!!!!!!!!!!!!!!')
treeParent=self.vraiParent.treeParent
- print (self.vraiParent.treeParent, self.vraiParent)
ret,commentaire=self.vraiParent.treeParent.item.suppItem(self.vraiParent.item)
if ret!=0 : treeParent.buildChildren()
return (ret,commentaire)
+
+ obj=self.item.getObject()
+ indexFact=self.vraiParent.item._object.index(obj)
ret,commentaire=self.vraiParent.item.suppItem(self.item)
- if ret!=0 : self.treeParent.buildChildren()
+ if not ret : return (ret,commentaire)
+ self.treeParent.buildChildren()
+ self.vraiParent.buildChildren()
+ for c in self.vraiParent.children[indexFact:] :
+ c.updateNodeLabel()
+ self.treeParent.updateOptionnels()
return (ret,commentaire)
- item = item du MOCLE a supprimer du MOCLE pere
- item.getObject() = MCSIMP ou MCBLOC
"""
+ print ('lllllllllllllllllllllllllllllllllllllll')
+ print ('inutile --> dans MCLIST ')
+ print ('SVP si on passe la on le dit a Pascale')
+ print ('lllllllllllllllllllllllllllllllllllllll')
+ print (poum)
itemobject=item.getObject()
if itemobject.isOblig() :
return (0, tr('Impossible de supprimer un mot-cle obligatoire '))
class Node(browser.JDCNode,typeNode.PopUpMenuNodeMinimal):
- def createPopUpMenu(self):
- typeNode.PopUpMenuNodeMinimal.createPopUpMenu(self)
+ def __init__( self, treeParent, item, itemExpand=False, ancien=False ):
+ #--------------------------------------------------------------------
+ browser.JDCNode.__init__(self, treeParent, item, itemExpand,ancien)
+ # depend si le comm contient deja une liste ou si elle cree a l ihm
+ if self.item.nature == 'MCList' :
+ self.minListe = self.item.data[0].definition.min
+ self.maxListe = self.item.data[0].definition.max
+ self.statutListe= self.item.data[0].definition.statut
+ else:
+ self.minListe = self.item.definition.min
+ self.maxListe = self.item.definition.max
+ self.statutListe= self.item.definition.statut
def getIdUnique(self):
#---------------------
- print ('pas d iD unique pour la MCLIST')
+ print ('pas d iD unique pour la MCLIST')
def onValid(self):
#-----------------
#print( self.item.nature)
- if self.item.nature == 'MCFACT' :
- validite=self.item.isValid()
- if self.oldValidite != validite :
- self.editor.connecteur.toWebApp('propageValide',self.item.idUnique, validite)
- self.oldValidite = validite
- # browser.JDCNode.onValid(self)
- # return
+ if self.item.nature == 'MCFACT' :
+ validite=self.item.isValid()
+ if self.oldValidite != validite :
+ self.editor.connecteur.toWebApp('propageValide',self.item.idUnique, validite)
+ self.oldValidite = validite
- if self.item.state != 'modified' : return
- self.treeParent.item.state= 'modified'
+ if self.item.state != 'modified' : return
+ self.treeParent.item.state= 'modified'
def onAdd(self,ajout):
#----------------------
if debug : print (' posDansArbre ', posDansArbre , ' posDansSelf ', posDansSelf)
self.editor.connecteur.toWebApp('appendChildren',ouAjouter,laListe,posDansArbre)
+
if len(self.item.data) == 2 : self.children[0].updateNodeLabel()
+
+ for nodeChild in self.children :
+ if nodeChild.item.isOblig() : newStatut ='o'
+ else : newStatut = 'f'
+ if newStatut != nodeChild.oldStatut :
+ nodeChild.updateStatut(newStatut)
+ nodeChild.oldStatut=newStatut
+ newRepetable=nodeChild.item.isRepetable()
+ if newRepetable != nodeChild.oldRepetable :
+ nodeChild.updateRepetable(newRepetable)
+ nodeChild.oldRepetable=newRepetable
+
+
#print ('la pos ', posOuAjouter)
#print (' appel appendChild',self.item.idUnique,laListe,pos)
if self.object.suppEntite(obj):
if len(self._object) == 1: self.updateDelegate()
- if len(self._object) == 1: print ('je change de delegate')
message = "Mot-clef " + obj.nom + " supprime"
return (1,message)
else:
return (0,tr('Impossible de supprimer ce mot-clef'))
+
import Accas
objet = Accas.MCList