Salome HOME
Pour Adao
[tools/eficas.git] / InterfaceQT4 / browser.py
index 57d842b0de0165b1cb5c3f602cedeb534ff45d6c..c24ebfd33210e24558ce155c1853d31c480ede2f 100644 (file)
@@ -44,7 +44,6 @@ class JDCTree( QTreeWidget ):
         self.item          = jdc_item
         self.tree          = self        
         self.editor       = QWParent
-        self.editor.fenetreAffichee=None
         self.appliEficas   = self.editor.appliEficas
         self.childrenComplete=[]
         self.childrenIssusDesBlocs=[]
@@ -53,7 +52,7 @@ class JDCTree( QTreeWidget ):
         self.itemCourrant=None
 
         self.connect(self, SIGNAL("itemClicked ( QTreeWidgetItem * ,int) "), self.handleOnItem)
-        self.connect(self, SIGNAL("itemDoubleClicked ( QTreeWidgetItem * ,int) "), self.handleDoubleClickedOnItem)
+        #self.connect(self, SIGNAL("itemDoubleClicked ( QTreeWidgetItem * ,int) "), self.handleDoubleClickedOnItem)
 
         #PNPNPN verifier dans quel cas on se trouve : affiche l arbre ou la commande
         self.node_selected=self.racine
@@ -90,6 +89,7 @@ class JDCTree( QTreeWidget ):
     def handleOnItem(self,item,int):
         if (len(self.selectedIndexes())!=2): return
         self.itemCourrant=item
+        self.handleDoubleClickedOnItem(item,int)
         #try :
         if 1:
            fr = item.item.get_fr()
@@ -99,8 +99,18 @@ class JDCTree( QTreeWidget ):
             pass
 
     def handleDoubleClickedOnItem(self,item,int):
-        item.affichePanneau()
-        self.expandItem(item)
+        print "je passe dans handleDoubleClickedOnItem"
+        #if item.fenetre == None :
+        #   while not (hasattr (item,'getPanel2')) : item=item.treeParent 
+        #   item.affichePanneau()
+        #   self.expandItem(item)
+        #else:
+        #   item.fenetre.rendVisible()
+        itemParent=item
+        while not (hasattr (itemParent,'getPanel2')) : itemParent=item.treeParent 
+        itemParent.affichePanneau()
+        if itemParent!=item:
+           item.fenetre.rendVisible()
 
     def choisitPremier(self,name):
         self.editor.layoutJDCCHOIX.removeWidget(self.racine.fenetre)
@@ -123,13 +133,18 @@ class JDCNode(QTreeWidgetItem):
         self.treeParent.childrenIssusDesBlocs=[]
         self.childrenComplete=[]
                         
-        name  = self.appliEficas.trUtf8(  str( item.GetLabelText()[0] ) )
-        value = self.appliEficas.trUtf8(  str( item.GetText() ) )
+        from InterfaceQT4 import compocomm
+        from InterfaceQT4 import compoparam
+        if   (isinstance(self.item,compocomm.COMMTreeItem)) : name=tr("Commentaire")
+        elif (isinstance(self.item,compoparam.PARAMTreeItem)) : name=self.appliEficas.trUtf8(str(item.GetLabelText()[0]))
+        else:   name  = self.appliEficas.trUtf8(str(tr( item.nom))+" :")
+        value = self.appliEficas.trUtf8(str( item.GetText() ) )
+
         mesColonnes=QStringList()
         mesColonnes <<  name << value
-        from InterfaceQT4 import compobloc
 
         ajoutAuParentduNoeud=0
+        from InterfaceQT4 import compobloc
         while (isinstance(self.treeParent,compobloc.Node)) :
               self.treeParent=self.treeParent.treeParent
               ajoutAuParentduNoeud=1
@@ -171,7 +186,6 @@ class JDCNode(QTreeWidgetItem):
         """ Construit la liste des enfants de self """
         """ Se charge de remettre les noeuds Expanded dans le meme etat """
         #print "*********** build_children ",self.item, self.item.GetLabelText()
-        #print self.childrenComplete
         
         listeExpanded=[]
         for item in self.childrenComplete :
@@ -189,6 +203,7 @@ class JDCNode(QTreeWidgetItem):
             parent.removeChild(item)
 
         self.children = []
+        self.childrenComplete = []
         sublist = self.item._GetSubList()
         ind=0
         for item in sublist :
@@ -199,10 +214,13 @@ class JDCNode(QTreeWidgetItem):
             ind=ind+1
         #print "*********** fin build_children ",self.item, self.item.GetLabelText()
         
+    def chercheNoeudCorrespondant(self,objSimp):
+        sublist = self.item._GetSubList()
+        for node in self.childrenComplete:
+            if node.item.object==objSimp : return node
+        return None
 
     def affichePanneau(self) :
-        #print "affichePanneau pour" ,self.item.nom
-        self.select()
         if self.item.isactif():
            panel=self.getPanel2()
         else:
@@ -222,7 +240,7 @@ class JDCNode(QTreeWidgetItem):
            self.editor.splitter.setSizes((400,1400,400))
            if not(isinstance(self.fenetre,MonChoixCommande)): self.editor.first=False
         self.tree.expandItem(self)
-        #print "fin affichePanneau"
+        self.select()
           
 
     def createPopUpMenu(self):
@@ -291,7 +309,6 @@ class JDCNode(QTreeWidgetItem):
         """        
         for item in self.tree.selectedItems() :
             item.setSelected(0)
-        #print "select -----------> " , self.item.GetLabelText()
         self.setSelected( True )    
         self.setExpanded( True )    
         self.tree.setCurrentItem( self )    
@@ -348,7 +365,7 @@ class JDCNode(QTreeWidgetItem):
         ## PNPNPN : cas de Map nouvelle version 
         #if 1 :
         try :
-          print "1er Try"
+          #print "1er Try"
           old_obj = self.item.object.get_child(name.nom,restreint = 'oui')
           child=old_obj[-1]
           child.affichePanneau() 
@@ -384,10 +401,15 @@ class JDCNode(QTreeWidgetItem):
         self.treeParent.build_children()
         if self.treeParent.childrenComplete : toselect=self.treeParent.childrenComplete[index]
         else: toselect=self.treeParent
-        if recalcule :
-           jdc.recalcule_etat_correlation()
-        toselect.select()
-        #toselect.affichePanneau()
+        if recalcule : jdc.recalcule_etat_correlation()
+        from InterfaceQT4 import compojdc
+        # cas ou on detruit dans l arbre sans affichage
+        if isinstance(self.treeParent,compojdc.Node) : 
+           toselect.affichePanneau()
+        else :
+           if self.treeParent.fenetre== None : return
+           print "J appelle reaffiche de browser apres delete"
+           self.treeParent.fenetre.reaffiche(toselect)
 
     def deleteMultiple(self,liste=()):
         """ 
@@ -427,6 +449,7 @@ class JDCNode(QTreeWidgetItem):
 #    #------------------------------------------------------------------
     def onValid(self):        
 
+        #print "onValid pour ", self.item.nom
         if hasattr(self,'fenetre') and self.fenetre: 
            self.fenetre.setValide()
         if self.item.nom == "VARIABLE" and self.item.isvalid():
@@ -440,14 +463,19 @@ class JDCNode(QTreeWidgetItem):
         self.update_node_texte()
 
     def onAdd(self,object):
-        #print "___________________________ onAdd", object
+        #print "onAdd pour ", self.item.nom
         self.editor.init_modif()
         self.update_nodes()
+        print "dans onAdd" ,self.item 
+        # PN -- non necessaire si item=jdc
+        if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
  
     def onSupp(self,object):
-        #print "___________________________ onSupp",  self.item, self.item.GetLabelText()
+        #print "onSupp pour ", self.item.nom
         self.editor.init_modif()
         self.update_nodes()
+        # PN -- non necessaire si item=jdc
+        if hasattr(self.item,'jdc'): self.item.jdc.aReafficher=True
          
     def detruit_les_noeuds_issus_de_blocs(self,bloc):
         from InterfaceQT4 import compobloc