PageRenderTime 16ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/examples/addonsgallery/AddonsGallery.py

http://pyjamas.googlecode.com/
Python | 82 lines | 79 code | 3 blank | 0 comment | 2 complexity | c2f95fe56bcb339b7c876f0688706691 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
  1. from ui import Button, RootPanel, HTML, DockPanel, HasAlignment, Hyperlink, VerticalPanel
  2. import Window
  3. from SinkList import SinkList
  4. from History import History
  5. import IntroTab
  6. import TooltipTab
  7. import AutoCompleteTab
  8. import CanvasTab
  9. class AddonsGallery:
  10. def onHistoryChanged(self, token):
  11. info = self.sink_list.find(token)
  12. if info:
  13. self.show(info, False)
  14. else:
  15. self.showIntro()
  16. def onModuleLoad(self):
  17. self.curInfo=''
  18. self.curSink=None
  19. self.description=HTML()
  20. self.sink_list=SinkList()
  21. self.panel=DockPanel()
  22. self.loadSinks()
  23. self.sinkContainer = DockPanel()
  24. self.sinkContainer.setStyleName("ks-Sink")
  25. vp=VerticalPanel()
  26. vp.setWidth("100%")
  27. vp.add(self.description)
  28. vp.add(self.sinkContainer)
  29. self.description.setStyleName("ks-Info")
  30. self.panel.add(self.sink_list, DockPanel.WEST)
  31. self.panel.add(vp, DockPanel.CENTER)
  32. self.panel.setCellVerticalAlignment(self.sink_list, HasAlignment.ALIGN_TOP)
  33. self.panel.setCellWidth(vp, "100%")
  34. History().addHistoryListener(self)
  35. RootPanel().add(self.panel)
  36. initToken = History().getToken()
  37. if len(initToken):
  38. self.onHistoryChanged(initToken)
  39. else:
  40. self.showIntro()
  41. def show(self, info, affectHistory):
  42. if info == self.curInfo: return
  43. self.curInfo = info
  44. if self.curSink <> None:
  45. self.curSink.onHide()
  46. self.sinkContainer.remove(self.curSink)
  47. self.curSink = info.getInstance()
  48. self.sink_list.setSinkSelection(info.getName())
  49. self.description.setHTML(info.getDescription())
  50. if (affectHistory):
  51. History().newItem(info.getName())
  52. self.sinkContainer.add(self.curSink, DockPanel.CENTER)
  53. self.sinkContainer.setCellWidth(self.curSink, "100%")
  54. self.sinkContainer.setCellHeight(self.curSink, "100%")
  55. self.sinkContainer.setCellVerticalAlignment(self.curSink, HasAlignment.ALIGN_TOP)
  56. self.curSink.onShow()
  57. def loadSinks(self):
  58. self.sink_list.addSink(IntroTab.init())
  59. self.sink_list.addSink(TooltipTab.init())
  60. self.sink_list.addSink(AutoCompleteTab.init())
  61. self.sink_list.addSink(CanvasTab.init())
  62. def showIntro(self):
  63. self.show(self.sink_list.find("Intro"))