/examples/addonsgallery/AddonsGallery.py

http://pyjamas.googlecode.com/ · Python · 82 lines · 63 code · 19 blank · 0 comment · 7 complexity · c2f95fe56bcb339b7c876f0688706691 MD5 · raw file

  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"))