]> SALOME platform Git repositories - modules/yacs.git/blob - src/pyqt/gui/BoxManager.py
Salome HOME
merge from branch DEV tag mergeto_trunk_04apr08
[modules/yacs.git] / src / pyqt / gui / BoxManager.py
1
2 from qt import *
3 import CONNECTOR
4
5 class BoxManager(QWidgetStack):
6   """ A BoxManager manages a collection of widget 
7       Each widget is associated to an item
8       A widget is displayed when the associated item is selected
9       To get the associated widget : item.box(self)
10   """
11   def __init__(self,parent):
12     QWidgetStack.__init__(self,parent)
13     self.panels={}
14
15   def setRootItem(self,rootItem):
16     self.rootItem=rootItem
17     CONNECTOR.Connect(self.rootItem,"selected",self.setview,())
18
19   def setview(self,item):
20     if not self.panels.has_key(item):
21       CONNECTOR.Connect(item,"changed",self.changePanel,(item,))
22       panel=item.box(self)
23       self.panels[item]=panel
24       idd=self.addWidget(panel)
25     self.raiseWidget(self.panels[item])
26
27   def changePanel(self,item):
28     print "changePanel",item
29     if self.panels.has_key(item):
30       self.removeWidget(self.panels[item])
31     panel=item.box(self)
32     self.panels[item]=panel
33     idd=self.addWidget(panel)
34     self.raiseWidget(self.panels[item])