""" Connecte la fonction callable (avec arguments args) a l'item self sur le
canal channel
"""
- #print self,channel,callable,args
CONNECTOR.Connect(self._object,channel,callable,args)
CONNECTOR.Connect(self.object, channel,callable,args)
objUserAssd.supprime(self)
def initModifUp(self):
+ print ('llllllllllllllllllllllllllllllllllllllllllll',self.nom)
Validation.V_MCCOMPO.MCCOMPO.initModifUp(self)
CONNECTOR.Emit(self,"valid")
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 :
for i in self.data:
dico = i.getDicoForFancy()
if nbFactDejaLa > i.definition.min : dico['statut']='f'
- if nbFactDejaLa < i.definition.max-1 : dico['repetable'] = 1
+ if nbFactDejaLa < i.definition.max : dico['repetable'] = 1
else : dico['repetable'] = 0
listeDict.append(dico)
return listeDict
Methode appelee apres qu'une modification a ete faite afin de declencher
d'eventuels traitements post-modification
"""
- #print "finModif",self
CONNECTOR.Emit(self,"valid")
if self.parent:
self.parent.finModif()
COMMENT = "COMMENTAIRE"
PARAMETERS = "PARAMETRE"
-import traceback
#---------------
class JDCNode():
#--------------
def onValid(self):
#-----------------
debug=0
+
+ print ('ds onValid', self.item.nom)
+ if self.item.nom == 'Fact1' : print ('je suis dans on Valide ----------------', self)
#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.item.state != 'modified' : return
self.oldValidite=validite
self.editor.connecteur.toWebApp('propageValide',self.getIdUnique(), validite)
- if debug : print ('appel de propageValide pour ', self.item.nom, validite,self.oldValidite)
+ #if debug : print ('appel de propageValide pour ', self.item.nom, validite,self.oldValidite)
def onAdd(self,ajout):
#----------------------
if debug : print ('posDansArbre', posDansSelf)
if self.children[posDansSelf].item.nature == 'MCBLOC' : laListe=self.children[posDansSelf].item.getDicoForFancy()
+ elif self.children[posDansSelf].item.nature == 'MCList' : laListe=self.children[posDansSelf].item.getDicoForFancy()
else : laListe=(self.children[posDansSelf].item.getDicoForFancy(),)
posOuAjouter=posDansArbre
self.editor.connecteur.toWebApp('appendChildren',ouAjouter,laListe,posOuAjouter)
- print (laListe)
#print ('la pos ', posOuAjouter)
#print (' appel appendChild',self.item.idUnique,laListe,pos)
return None
- #print ('dans appendChild browser.py appel addItem', self.item.addItem)
+ print ('dans appendChild browser.py appel addItem', self.item.addItem)
obj = self.item.addItem(name,index) # emet le signal 'add'
-
- # PN : boucle sur les mclist. si necessaire a deriver
- #try :
- # self.buildChildren()
- # child=self.children[index]
- #except :
- # print ('pb buildChildren dans appendChild')
- # pass
-
-
- #print ("-------------- fin append child", child, child.item)
if not obj : return None
+ self.updateOptionnels()
return True
#return child.getIdUnique()
#print ('browser :_appel de delete _______', self, self.vraiParent, self.item.nature)
ret,commentaire=self.vraiParent.item.suppItem(self.item)
- if ret!=0 : self.treeParent.buildChildren()
+ if ret!=0 :
+ self.treeParent.buildChildren()
+ self.treeParent.updateOptionnels()
return (ret,commentaire)
def updateNodeLabel(self):
#-------------------------
monDictPartiel={}
- monDictPartiel['title']=self.item.getLabelText()[0][0:-1]
+ label=self.item.getLabelText()[0]
+ if label[-1]==":" : label=label[0:-1]
+ monDictPartiel['title']=label
self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel)
def updateRepetable(self,isRepetable):
#-------------------------------------
+ if self.oldRepetable == isRepetable : return
+ self.oldRepetable = isRepetable
monDictPartiel={}
monDictPartiel['repetable']=isRepetable
self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel)
def updateStatut(self,statut):
#-----------------------------
+ if self.oldStatut == statut : return
+ self.oldStatut = statut
monDictPartiel={}
monDictPartiel['statut']=statut
self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel)
def updateOptionnels(self):
#---------------------------
- print ('dans updateOptionnels')
- return
+ if self.item.nature == 'MCList' or self.item.nature == 'JDC' : return
monDictPartiel={}
- monDictPartiel['infoOptionnels']=maNouvelleListeOtionnels
+ monDictPartiel['infoOptionnels'] = self.item.calculOptionnelInclutBlocs()
self.editor.connecteur.toWebApp('updateNodeInfo',self.getIdUnique(), monDictPartiel)
#def chercheNoeudCorrespondant(self,objSimp):
def suppItem(self,item) :
"""
Cette methode a pour fonction de supprimer l'item passee en argument
- des fils de l'item FACT qui est son pere
+ dans l'item FACT qui est son pere
- 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 '))
def getIdUnique(self):
#---------------------
print ('pas d iD unique pour la MCLIST')
+ # on renvoie l'ID du 1er MCFact
+ # print (self.item._object[0].idUnique)
+ return self.item._object[0].idUnique
- def onValid(self):
+ def onValidBad(self):
#-----------------
#print( self.item.nature)
if self.item.nature == 'MCFACT' :
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 :
+ #print ('la pos ', posOuAjouter)
+ #print (' appel appendChild',self.item.idUnique,laListe,pos)
+ self.updateChildrenProperties()
+
+
+ def onSupp(self,suppression):
+ #---------------------------
+ browser.JDCNode.onSupp(self, suppression)
+ self.updateChildrenProperties()
+
+
+ def updateChildrenProperties(self):
+ #----------------------------------
+ if self.item.nature == 'MCFACT':
+ children=(self.item.fauxNoeudGraphique,)
+ children[0].updateNodeLabel()
+ else :
+ if len(self.item.data) == 2 : self.children[0].updateNodeLabel()
+ children=self.children
+ for nodeChild in children :
if nodeChild.item.isOblig() : newStatut ='o'
else : newStatut = 'f'
if newStatut != nodeChild.oldStatut :
nodeChild.oldRepetable=newRepetable
- #print ('la pos ', posOuAjouter)
- #print (' appel appendChild',self.item.idUnique,laListe,pos)
class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem):
""" La classe MCListTreeItem joue le role d'un adaptateur pour les objets
itemNode=Node
def init(self):
- # Si l'objet Accas (MCList) a moins d'un mot cle facteur
+ # Avant Si l'objet Accas (MCList) a moins d'un mot cle facteur
# on utilise directement ce mot cle facteur comme delegue
self.updateDelegate()
def updateDelegate(self):
+ self.setDelegate(self._object)
+ return
if len(self._object) > 1:
self.setDelegate(self._object)
else:
def getSubList(self):
self.updateDelegate()
- if len(self._object) <= 1:
- self._object.data[0].alt_parent=self._object
- return compofact.FACTTreeItem.getSubList(self)
+ #if len(self._object) <= 1:
+ # self._object.data[0].alt_parent=self._object
+ # return compofact.FACTTreeItem.getSubList(self)
liste=self._object.data
sublist=[None]*len(liste)
+
# suppression des items lies aux objets disparus
for item in self.sublist:
old_obj=item.getObject()
obj.alt_parent=self._object
pos=pos+1
- if len(self._object) <= 1:
- self._object.data[0].alt_parent=self._object
- return compofact.FACTTreeItem.getSubList(self)
-
self.sublist=sublist
+
+ #if len(self._object) <= 1:
+ # self._object.data[0].alt_parent=self._object
+ # return compofact.FACTTreeItem.getSubList(self)
+
return self.sublist
def getIconName(self):