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
27 def onHistoryChanged(self, token):
28 info = self.sink_list.find(token)
30 self.show(info, False)
34 def onModuleLoad(self):
36 self.tp.setWidth("100%")
40 self.description=HTML()
41 self.sink_list=SinkList()
42 self.panel=DockPanel()
44 self.sinkContainer = DockPanel()
45 self.sinkContainer.setStyleName("ks-Sink")
50 vp.add(self.description)
51 vp.add(self.sinkContainer)
53 self.description.setStyleName("ks-Info")
55 self.panel.add(self.tp, DockPanel.NORTH)
56 self.panel.add(self.sink_list, DockPanel.WEST)
57 self.panel.add(vp, DockPanel.CENTER)
59 self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP)
60 self.panel.setCellWidth(vp, "100%")
61 self.panel.setCellHeight(vp, "100%")
63 History.addHistoryListener(self)
64 RootPanel().add(self.panel)
66 #Show the initial screen.
67 initToken = History.getToken()
69 self.onHistoryChanged(initToken)
73 def show(self, info, affectHistory):
74 if info == self.curInfo: return
77 if self.curSink <> None:
79 self.sinkContainer.remove(self.curSink)
81 self.curSink = info.getInstance()
82 self.sink_list.setSinkSelection(info.getName())
83 self.description.setHTML(info.getDescription())
86 History.newItem(info.getName())
88 self.sinkContainer.add(self.curSink, DockPanel.CENTER)
89 self.sinkContainer.setCellWidth(self.curSink, "100%")
90 self.sinkContainer.setCellHeight(self.curSink, "100%")
91 self.sinkContainer.setCellVerticalAlignment(self.curSink, HasAlignment.ALIGN_TOP)
95 self.sink_list.addSink(Welcome.init())
96 #self.sink_list.addSink(Identities.init())
97 # self.sink_list.addSink(Slices.init())
98 self.sink_list.addSink(PlanetLab.init())
99 self.sink_list.addSink(PLE.init())
100 self.sink_list.addSink(PLJ.init())
101 self.sink_list.addSink(GpENI.init())
102 self.sink_list.addSink(VINI.init())
103 #self.sink_list.addSink(OpenCirrus.init())
104 self.sink_list.addSink(SfaBrowser.init())
105 self.sink_list.addSink(Configure.init())
108 self.show(self.sink_list.find("Welcome"), False)
113 if __name__ == '__main__':
114 pyjd.setup("public/SfaGUI.html")