]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
add V0 + diverses proprietes
authorpascale.noyret <pascale.noyret@edf.fr>
Mon, 25 Oct 2021 12:16:04 +0000 (14:16 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Mon, 25 Oct 2021 12:16:04 +0000 (14:16 +0200)
Editeur/Objecttreeitem.py
Ihm/I_JDC.py
Ihm/I_MCSIMP.py
Ihm/I_OBJECT.py
InterfaceWeb/browser.py
InterfaceWeb/compojdc.py
InterfaceWeb/compomclist.py
InterfaceWeb/composimp.py
Validation/V_JDC.py
Validation/V_MCFACT.py

index a6ff12bf4a883e1ab6ed63b9e6f737749ccd6027..6f79ad8e446c478ea39d914293927ab21b6b8f34 100644 (file)
@@ -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
index 3932592cae5dcd649f56b2a18a7e9afc725a67a3..f8fef42741fce5d9a1a7a06a7d9ef1ac053ba76d 100644 (file)
@@ -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 :
index 09e84254731e0a4759414934aca226b7a733a6ad..8a23e4927d9e979793403da1e20e2cec7cc903d9 100644 (file)
@@ -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
 
index 7ac4d20758567607116793ec43e08b14a5f946ab..a6b6c02996d10251d0d950d24f9cb42733d3fa44 100644 (file)
@@ -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()
index 09b37f157106dfd14d8b97a5c5f62764170586c3..743b80a26bff57d78a96c12d8bfbefbca000be39 100644 (file)
@@ -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):
     #---------------------
 
-
index 46fab7d0e4852f7a35a1c3d75d6d2b923c089f5c..1b26b568076cf52d081c78ac275653105e14eae8 100644 (file)
@@ -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="<span class='" + e.getNomClassWeb() + "' id='" +e.idUnique+ "'>" + e.nom + sdNom + "</span>"
-            # leTexte=e.nom + sdNom
-            #listNodes.append(e.getDicoObjetsCompletsPourTree())
-        #monDico['nodes']=listNodes
-
-    
       
 
 import Accas
index 9475d90d52f70a072ea0fb537c599b6bad4a6c1e..5d74def083b7936903b4c02dd7cfec5a951403ad 100644 (file)
@@ -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
index 6d0b29d01a5352aa8ff2785220af3125d304feea..17f1c8ecd4720e410dd53d6e969bb177372412ab 100644 (file)
@@ -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 
 
     #--------------------------------------------------
     #
index 23bfa89f4dc718ba5897691a45c2ccc125d2c1ca..c0dab31463e85abc0d8de3a3f00c3f808c8676ef 100644 (file)
@@ -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
index 0567294efeb6ba71060493a65a6526e210d32cf0..7cb68070768b4beeb32a8f62874fac64d02dfadb 100644 (file)
@@ -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
+