from Sink import Sink, SinkInfo from pyjamas.ui.TabPanel import TabPanel from pyjamas.ui.VerticalPanel import VerticalPanel from pyjamas.ui.TextArea import TextArea from pyjamas.ui.HTML import HTML from SfaData import PlanetLabData from NodePanel import NodePanel from LinkPanel import LinkPanel from SliverPanel import SliverPanel class PlTabs(TabPanel): def __init__(self): TabPanel.__init__(self) self.data = PlanetLabData() self.rspec = self.data.getRSpec() nodetab = NodePanel(self.data, self.rspec) slivertab = SliverPanel(self.data, self.rspec) self.add(nodetab, "Nodes") self.add(slivertab, "Slivers") self.selectTab(0) def onTabSelected(self, sender, index): tab = self.getWidget(index) tab.refresh() TabPanel.onTabSelected(self, sender, index) class PlanetLab(Sink): def __init__(self): Sink.__init__(self) self.tabs = PlTabs() self.tabs.setWidth("100%") self.tabs.setHeight("100%") self.initWidget(self.tabs) def init(): return SinkInfo("PlanetLab", "Specify PlanetLab Resources", PlanetLab)