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)