1 import pyjd # this is dummy in pyjs
3 from pyjamas.ui.Button import Button
4 from pyjamas.ui.RootPanel import RootPanel
5 from pyjamas.ui.HTML import HTML
6 from pyjamas.ui.DockPanel import DockPanel
7 from pyjamas.ui import HasAlignment
8 from pyjamas.ui.Hyperlink import Hyperlink
9 from pyjamas.ui.VerticalPanel import VerticalPanel
10 from pyjamas import Window
11 from SinkList import SinkList
12 from Configure import TopPanel
13 from pyjamas import History
24 def onHistoryChanged(self, token):
25 info = self.sink_list.find(token)
27 self.show(info, False)
31 def onModuleLoad(self):
33 self.tp.setWidth("100%")
37 self.description=HTML()
38 self.sink_list=SinkList()
39 self.panel=DockPanel()
41 self.sinkContainer = DockPanel()
42 self.sinkContainer.setStyleName("ks-Sink")
47 vp.add(self.description)
48 vp.add(self.sinkContainer)
50 self.description.setStyleName("ks-Info")
52 self.panel.add(self.sink_list, DockPanel.WEST)
53 self.panel.add(vp, DockPanel.CENTER)
55 self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP)
56 self.panel.setCellWidth(vp, "100%")
57 self.panel.setCellHeight(vp, "100%")
59 History.addHistoryListener(self)
60 RootPanel().add(self.tp)
61 RootPanel().add(self.panel)
63 #Show the initial screen.
64 initToken = History.getToken()
66 self.onHistoryChanged(initToken)
70 def show(self, info, affectHistory):
71 if info == self.curInfo: return
74 if self.curSink <> None:
76 self.sinkContainer.remove(self.curSink)
78 self.curSink = info.getInstance()
79 self.sink_list.setSinkSelection(info.getName())
80 self.description.setHTML(info.getDescription())
83 History.newItem(info.getName())
85 self.sinkContainer.add(self.curSink, DockPanel.CENTER)
86 self.sinkContainer.setCellWidth(self.curSink, "100%")
87 self.sinkContainer.setCellHeight(self.curSink, "100%")
88 self.sinkContainer.setCellVerticalAlignment(self.curSink, HasAlignment.ALIGN_TOP)
92 self.sink_list.addSink(Welcome.init())
93 #self.sink_list.addSink(Identities.init())
94 # self.sink_list.addSink(Slices.init())
95 self.sink_list.addSink(PlanetLab.init())
96 self.sink_list.addSink(VINI.init())
97 #self.sink_list.addSink(OpenCirrus.init())
98 self.sink_list.addSink(SfaBrowser.init())
99 self.sink_list.addSink(Configure.init())
102 self.show(self.sink_list.find("Welcome"), False)
107 if __name__ == '__main__':
108 pyjd.setup("public/SfaGUI.html")