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.TabPanel import TabPanel
+from pyjamas.ui.VerticalPanel import VerticalPanel
from pyjamas.ui.HTML import HTML
from SfaData import ViniData
+from NodePanel import NodePanel
+from LinkPanel import LinkPanel
+from SliverPanel import SliverPanel
+from SubmitPanel import SubmitPanel
+from HelpPanel import VINIHelpPanel
-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()
+ self.data.refreshRSpec()
+
+ nodetab = NodePanel(self.data)
+ linktab = LinkPanel(self.data)
+ slivertab = SliverPanel(self.data)
+ submittab = SubmitPanel(self.data)
+ helptab = VINIHelpPanel()
- 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)
+ self.add(nodetab, "Nodes")
+ self.add(linktab, "Links")
+ self.add(slivertab, "Slivers")
+ self.add(submittab, "Submit")
+ self.add(HTML("force tabs to right"), None)
+ self.add(helptab, "Help")
- 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)
+ 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)
+ return SinkInfo("VINI", "<b>Specify VINI Resources</b>", VINI)