From: pascale.noyret Date: Mon, 25 Oct 2021 12:16:04 +0000 (+0200) Subject: add V0 + diverses proprietes X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=4329616a7989854af5e67a769173307b81e3dec8;p=tools%2Feficas.git add V0 + diverses proprietes --- diff --git a/Editeur/Objecttreeitem.py b/Editeur/Objecttreeitem.py index a6ff12bf..6f79ad8e 100644 --- a/Editeur/Objecttreeitem.py +++ b/Editeur/Objecttreeitem.py @@ -169,7 +169,7 @@ class ObjectTreeItem(TreeItem,Delegate): 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.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 diff --git a/Ihm/I_JDC.py b/Ihm/I_JDC.py index 3932592c..f8fef427 100644 --- a/Ihm/I_JDC.py +++ b/Ihm/I_JDC.py @@ -978,6 +978,8 @@ class JDC(I_OBJECT.OBJECT): monDico={} monDico['title']=self.code monDico['key']=self.idUnique + monDico['classeAccas']='JDC' + monDico['validite']=self.getValid() # self.editor.fichier ? listNodes=[] for e in self.etapes : diff --git a/Ihm/I_MCSIMP.py b/Ihm/I_MCSIMP.py index 09e84254..8a23e492 100644 --- a/Ihm/I_MCSIMP.py +++ b/Ihm/I_MCSIMP.py @@ -84,6 +84,12 @@ class MCSIMP(I_OBJECT.OBJECT): monDico['title']=self.nom monDico['key']=self.idUnique monDico['wValue']=str(self.val) + monDico['classeAccas']=self.nature + monDico['validite']=self.getValid() + monDico['max']=self.definition.max + monDico['min']=self.definition.min + monDico['into']=self.definition.into + return monDico diff --git a/Ihm/I_OBJECT.py b/Ihm/I_OBJECT.py index 7ac4d207..a6b6c029 100644 --- a/Ihm/I_OBJECT.py +++ b/Ihm/I_OBJECT.py @@ -214,6 +214,9 @@ class OBJECT: if self.nature == 'OPERATEUR' and self.sdnom != "sansnom" : leNom = self.nom+'__'+self.sdnom monDico['title']=leNom monDico['key']=self.idUnique + monDico['classeAccas']=self.nature + if self.nature == 'MCLIST': monDico['validite']=None + else : monDico['validite']=self.getValid() listeNodes=[] for obj in self.mcListe: lesNodes=obj.getDicoForFancy() diff --git a/InterfaceWeb/browser.py b/InterfaceWeb/browser.py index 09b37f15..743b80a2 100644 --- a/InterfaceWeb/browser.py +++ b/InterfaceWeb/browser.py @@ -41,7 +41,7 @@ class JDCTree(): def __init__( self, jdc_item, editor): #---------------------------------------- - #print ('__init__ JDCTree') + print ('__init__ JDCTree') self.editor = editor self.plie=False self.item = jdc_item @@ -84,6 +84,8 @@ class JDCNode(): self.firstAffiche = True self.childrenComplete=[] self.oldValidite=None + self.item.fauxNoeudGraphique = self + #self.plie=True # pas gere #from . import compocomm @@ -108,10 +110,11 @@ class JDCNode(): #if ancien and not itemExpand : self.plie = True #if (isinstance(self.item,composimp.SIMPTreeItem)) : self.plie=False - #from . import compobloc #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 @@ -154,16 +157,54 @@ class JDCNode(): def onValid(self): #----------------- - print ('appel onValid pour', self.item.nom) + #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) + #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 onAdd(self,ajout): + #-------------------------- + # bien tester avec les blocs + #print ('on add', '________ object', object) + avantChildren=self.children + indexAvant=0 + indexApres=0 + reconstruitMoi=False + self.buildChildren() + 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 + if id1 == id2 : + indexAvant += 1 + indexApres += 1 + continue + pos = indexApres + indexApres += 1 + break + reconstruitMoi=False + if indexAvant == len(avantChildren) : pos = indexApres + while (indexAvant < len(avantChildren)): + id1=avantChildren[indexAvant].idUnique + id2=self.children[indexApres].idUnique + if id1 == id2 : + indexAvant += 1 + indexApres += 1 + continue + reconstruitMoi=True + 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 + 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) def onSupp(self,object): #----------------------- @@ -182,37 +223,39 @@ class JDCNode(): """ Construit la liste des enfants de self """ """ Se charge de remettre les noeuds Expanded dans le meme etat """ #print ("*********** buildChildren ",self,self.item, self.item.nom) - #print (poum) - - self.listeItemExpanded=[] - self.listeItemPlie=[] - - for enfant in self.childrenComplete : - if enfant.plie : self.listeItemPlie.append(enfant.item) - else : self.listeItemExpanded.append(enfant.item) - - for enfant in self.childrenComplete : - parent = enfant.treeParent - parent.removeChild(enfant) - enfant.JESUISOFF=1 + #if self.item.nom == 'web_tres_simple_avec_2Procs.comm' : + # print ("*********** buildChildren ",self,self.item, self.item.nom) self.children = [] - self.childrenComplete = [] + self.childrenItemComplete = [] sublist = self.item._getSubList() ind=0 for item in sublist : - itemExpand=False - ancien=False - 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 + nouvelItem=item.itemNode(self,item) + item.fauxNoeudGraphique=nouvelItem self.children.append(nouvelItem) + + self.childrenItemComplete=self.construitChildrenComplete() + if self.item.nom == 'web_tres_simple_avec_2Procs.comm' : print (self.children) #print ("fin *********** buildChildren ",self,self.item, self.item.nom, self.children) + + def construitChildrenComplete(self): + # PN a tester avec des blocs de blocs + from . import compobloc + liste=[] + for itemFils in self.item._getSubList(): + if isinstance(itemFils,compobloc.Node): + for itemPetitFils in itemFils.construitChildrenComplete(): + liste.append(itemPetitFils) + itemPetitFils.treeParent=self + else : + liste.append(itemFils) + return liste + def getDicoObjetsPourWeb(self): return self.item.getDicoObjetsPourWeb() @@ -224,6 +267,45 @@ class JDCNode(): def getDicoForFancy(self): return self.item.getDicoForFancy() + def appendChild(self,name,pos=None): + #----------------------------------- + """ + Methode pour ajouter un objet fils a l'objet associe au noeud self. + On peut l'ajouter en debut de liste (pos='first'), en fin (pos='last') + ou en position intermediaire. + Si pos vaut None, on le place a la position du catalogue. + """ + print ("************** appendChild ",self.item.getLabelText(), pos ) + #import traceback + #traceback.print_stack() + + + if pos == 'first' : index = 0 + elif pos == 'last' : index = len(self.children) + elif type(pos) == int : index = pos # position fixee + elif type(pos) == object : index = self.item.getIndex(pos) +1 # pos est un item. Il faut inserer name apres pos + elif type(name) == object : index = self.item.getIndexChild(name.nom) + else : index = self.item.getIndexChild(name) + + # si on essaye d inserer a la racine + if (isinstance(self.treeParent,JDCTree) and index==0) : + verifiePosition=self.verifiePosition(name,'first',aLaRacine=True) + if not verifiePosition : return 0 + + obj = self.item.addItem(name,index) # emet le signal 'add' + if obj is None : obj=0 + + child=self.children[index] + #try : + # if len(obj) > 1 : self.buildChildren() + #except : pass + + + print ("-------------- fin append child", child, child.item) + return True + + + #def chercheNoeudCorrespondant(self,objSimp): #------------------------------------------- # sublist = self.item._getSubList() @@ -255,8 +337,6 @@ class JDCNode(): #---------------------------------------------------- #def verifiePosition(self,name,pos,aLaRacine=False): #---------------------------------------------------- - #def appendChild(self,name,pos=None,plier=False): - #------------------------------------------------ #def deplace(self): #----------------- #def delete(self): @@ -313,4 +393,3 @@ class JDCNode(): #def selectApres(self): #--------------------- - diff --git a/InterfaceWeb/compojdc.py b/InterfaceWeb/compojdc.py index 46fab7d0..1b26b568 100644 --- a/InterfaceWeb/compojdc.py +++ b/InterfaceWeb/compojdc.py @@ -40,7 +40,6 @@ class Node(browser.JDCNode,typeNode.PopUpMenuRacine): return param - class JDCTreeItem(Objecttreeitem.ObjectTreeItem): itemNode=Node @@ -128,35 +127,6 @@ class JDCTreeItem(Objecttreeitem.ObjectTreeItem): def getValidite(self): return self.object.isValid() - def getDicoObjetsPourWeb(self): - from collections import OrderedDict - monDico=OrderedDict() - for e in self.object.etapes : - nodeEtape=self.editor.dicoIdNode[e.idUnique] - monDico[e.idUnique]=nodeEtape.getDicoObjetsPourWeb() - return monDico - - def getDicoForFancy(self): - return self.object.getDicoForFancy() - - #def getDicoObjetsCompletsPourTreeUU(self): - # Pour N importe quel objet - # du coup, on appelle sur objet y compris pour le jdc - # print ('compojdc getDicoObjetsCompletsPourTree ',self, self.object) - # return self.object.getDicoObjetsCompletsPourTree() - - #monDico={} - #monDico['text']="Racine à Programmer" - #listNodes=[] - #for e in self.object.etapes : - # sdNom = '' - # if e.nature == 'OPERATEUR' and e.sdnom != "sansnom" : sdNom = e.sdnom - # # leTexte="" + e.nom + sdNom + "" - # leTexte=e.nom + sdNom - #listNodes.append(e.getDicoObjetsCompletsPourTree()) - #monDico['nodes']=listNodes - - import Accas diff --git a/InterfaceWeb/compomclist.py b/InterfaceWeb/compomclist.py index 9475d90d..5d74def0 100644 --- a/InterfaceWeb/compomclist.py +++ b/InterfaceWeb/compomclist.py @@ -96,17 +96,6 @@ class MCListTreeItem(Objecttreeitem.SequenceTreeItem,compofact.FACTTreeItem): else: self.setDelegate(self._object.data[0]) - def getDicoObjetsPourWebUU(self): - listeDict=[] - from collections import OrderedDict - for i in self._object.data: - monDico=OrderedDict() - nodeFact=self.appliEficas.dicoIdNode[i.idUnique] - monDico[i.idUnique]=nodeFact.getDicoObjetsPourWeb() - listeDict.append(monDico) - return listeDict - - def panel(self,jdcdisplay,pane,node): """ Retourne une instance de l'objet panneau associe a l'item (self) Si la liste ne contient qu'un mot cle facteur, on utilise le panneau diff --git a/InterfaceWeb/composimp.py b/InterfaceWeb/composimp.py index 6d0b29d0..17f1c8ec 100644 --- a/InterfaceWeb/composimp.py +++ b/InterfaceWeb/composimp.py @@ -451,11 +451,6 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): liste_param.append(param.nom) return liste_param - def getDicoObjetsPourWeb(self): - return self.val - - def getDicoObjetsPourWeb(self): - return self.val #-------------------------------------------------- # diff --git a/Validation/V_JDC.py b/Validation/V_JDC.py index 23bfa89f..c0dab314 100644 --- a/Validation/V_JDC.py +++ b/Validation/V_JDC.py @@ -83,6 +83,10 @@ class JDC(V_MCCOMPO.MCCOMPO): self.valid = valid return self.valid + def getValid(self, cr='non'): + if self.state == 'unchanged': return self.valid + else : return self.isValid() + def verifRegles(self): """ Effectue la verification de validite des regles du jeu de commandes diff --git a/Validation/V_MCFACT.py b/Validation/V_MCFACT.py index 0567294e..7cb68070 100644 --- a/Validation/V_MCFACT.py +++ b/Validation/V_MCFACT.py @@ -89,3 +89,11 @@ class MCFACT(V_MCCOMPO.MCCOMPO): if not old_valid or old_valid != self.valid: self.initModifUp() return self.valid + + def getValid(self): + if hasattr(self, 'valid'): + return self.valid + else: + self.valid = None + return None +