Added Node selection and Sliver (attribute) configuration panels to
[sfa-gui.git] / VINI.py
diff --git a/VINI.py b/VINI.py
index c82c7fd..15f5795 100644 (file)
--- a/VINI.py
+++ b/VINI.py
@@ -1,46 +1,42 @@
 from Sink import Sink, SinkInfo
-from pyjamas.ui.horizsplitpanel import HorizontalSplitPanel
-from pyjamas.ui.CaptionPanel import CaptionPanel
-from pyjamas.ui.ListBox import ListBox
-from pyjamas.ui.HTML import HTML
+from pyjamas.ui.TabPanel import TabPanel
+from pyjamas.ui.VerticalPanel import VerticalPanel
 from SfaData import ViniData
+from NodePanel import NodePanel
+from LinkPanel import LinkPanel
+from SliverPanel import SliverPanel
 
-class VINI(Sink):
+class VINITabs(TabPanel):
     def __init__(self):
+        TabPanel.__init__(self)
 
-        Sink.__init__(self)
-        self.panel = HorizontalSplitPanel()
-        self.panel.setSize("100%", "100%")
-        self.panel.setSplitPosition("50%")
         self.data = ViniData()
         self.rspec = self.data.getRSpec()
 
-        leftcap = CaptionPanel("Available nodes")
-        leftcap.setSize("90%", "90%")
-        leftlist = ListBox(MultipleSelect=True)
-        leftlist.setSize("100%", "100%")
-        available = self.rspec.get_node_list()
-        for i in available:
-            leftlist.addItem(i)
-        leftcap.add(leftlist)
-
-        rightcap = CaptionPanel("Selected nodes")
-        rightcap.setSize("90%", "90%")
-        rightlist = ListBox(MultipleSelect=True)
-        rightlist.setSize("100%", "100%")
-        slivers = self.rspec.get_sliver_list()
-        for i in slivers:
-            rightlist.addItem(i)
-        rightcap.add(rightlist)
+        nodetab = NodePanel(self.data, self.rspec)
+        linktab = LinkPanel(self.data, self.rspec)
+        slivertab = SliverPanel(self.data, self.rspec)
+    
+        self.add(nodetab, "Nodes")
+        self.add(linktab, "Links")
+        self.add(slivertab, "Slivers")
+        self.selectTab(0)
 
-        self.panel.setLeftWidget(leftcap)
-        self.panel.setRightWidget(rightcap)
+    def onTabSelected(self, sender, index):
+        tab = self.getWidget(index)
+        tab.refresh()
+        TabPanel.onTabSelected(self, sender, index)
 
-        self.initWidget(self.panel)
+class VINI(Sink):
+    def __init__(self):
 
-    def onShow(self):
-        pass
+        Sink.__init__(self)
+        
+        self.tabs = VINITabs()
 
+        self.tabs.setWidth("100%")
+        self.tabs.setHeight("100%")
+        self.initWidget(self.tabs)
 
 def init():
     return SinkInfo("VINI", "Specify VINI Resources", VINI)