from Sink import Sink, SinkInfo from pyjamas.ui.Composite import Composite from pyjamas.ui.RootPanel import RootPanel from pyjamas.ui.VerticalPanel import VerticalPanel from pyjamas.ui.HorizontalPanel import HorizontalPanel from pyjamas.ui.CaptionPanel import CaptionPanel from pyjamas.ui.TextBox import TextBox from pyjamas.ui.Button import Button from pyjamas.ui.HTML import HTML from pyjamas.ui.Grid import Grid from pyjamas.ui import HasAlignment from SfaData import SfaData class TopPanel(Composite): panel = None def __init__(self): TopPanel.panel = self Composite.__init__(self) self.data = SfaData() self.outer = HorizontalPanel() self.inner = VerticalPanel() self.outer.setHorizontalAlignment(HasAlignment.ALIGN_RIGHT) self.inner.setHorizontalAlignment(HasAlignment.ALIGN_RIGHT) # No links right now... self.links = HorizontalPanel() self.links.setSpacing(4) self.outer.add(self.inner) self.refresh() self.initWidget(self.outer) def onClick(self, sender): pass def refresh(self): self.inner.clear() self.inner.add(HTML("User: %s" % self.data.getUser())) self.inner.add(HTML("Slice: %s" % self.data.getSlice())) self.inner.add(self.links) class LabeledTextBox: def __init__(self, label, initialText): self.hp = CaptionPanel(label) self.tb = TextBox() self.tb.setWidth("100%") self.tb.setText(initialText) self.hp.add(self.tb) def getText(self): return self.tb.getText() def getWidget(self): return self.hp class Configure(Sink): def __init__(self): Sink.__init__(self) self.data = SfaData() panel = VerticalPanel() panel.setWidth("100%") panel.setWidth("100%") self.userBox = LabeledTextBox("User HRN:", SfaData.user) panel.add(self.userBox.getWidget()) self.sliceBox = LabeledTextBox("Slice HRN:", SfaData.slice) panel.add(self.sliceBox.getWidget()) hp = HorizontalPanel() applyButton = Button("Apply", self.apply) hp.add(applyButton) panel.add(hp) self.initWidget(panel) def apply(self, sender): self.data.setUser(self.userBox.getText()) self.data.setSlice(self.sliceBox.getText()) TopPanel.panel.refresh() def onShow(self): pass def init(): return SinkInfo("Configure", "Configure SFA Federation GUI", Configure)