PageRenderTime 77ms CodeModel.GetById 55ms RepoModel.GetById 0ms app.codeStats 0ms

/examples/kitchensink/Images.py

http://pyjamas.googlecode.com/
Python | 64 lines | 51 code | 13 blank | 0 comment | 5 complexity | 34e709b31552520ff9cba372a0222500 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
  1. from Sink import Sink, SinkInfo
  2. from ui import DockPanel, Image, VerticalPanel, HasAlignment, HTML
  3. class Images(Sink):
  4. def __init__(self):
  5. self.curImage=0
  6. self.image=Image()
  7. self.loadingImage = Image(self.baseURL() + "images/blanksearching.gif")
  8. self.nextButton = Image(self.baseURL() + "rembrandt/forward.gif")
  9. self.prevButton = Image(self.baseURL() + "rembrandt/back.gif")
  10. self.sImages=["rembrandt/JohannesElison.jpg", "rembrandt/LaMarcheNocturne.jpg", "rembrandt/SelfPortrait1628.jpg", "rembrandt/SelfPortrait1640.jpg", "rembrandt/TheArtistInHisStudio.jpg", "rembrandt/TheReturnOfTheProdigalSon.jpg"]
  11. for i in range(len(self.sImages)):
  12. self.sImages[i]=self.baseURL() + self.sImages[i]
  13. self.image.addLoadListener(self)
  14. self.prevButton.addClickListener(self)
  15. self.nextButton.addClickListener(self)
  16. topPanel = DockPanel()
  17. topPanel.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE)
  18. topPanel.add(self.prevButton, DockPanel.WEST)
  19. topPanel.add(self.nextButton, DockPanel.EAST)
  20. topPanel.add(self.loadingImage, DockPanel.CENTER)
  21. panel = VerticalPanel()
  22. panel.setHorizontalAlignment(HasAlignment.ALIGN_CENTER)
  23. panel.add(HTML("<h2>A Bit of Rembrandt</h2>", True))
  24. panel.add(topPanel)
  25. panel.add(self.image)
  26. panel.setWidth("100%")
  27. self.initWidget(panel)
  28. self.image.setStyleName("ks-images-Image")
  29. self.nextButton.setStyleName("ks-images-Button")
  30. self.prevButton.setStyleName("ks-images-Button")
  31. self.loadImage(0)
  32. def onClick(self, sender):
  33. if sender==self.prevButton:
  34. self.loadImage(self.curImage - 1)
  35. elif sender == self.nextButton:
  36. self.loadImage(self.curImage + 1)
  37. def onError(self, sender):
  38. pass
  39. def onLoad(self, sender):
  40. self.loadingImage.setUrl(self.baseURL() + "images/blanksearching.gif")
  41. def loadImage(self, index):
  42. if index < 0:
  43. index = len(self.sImages) - 1
  44. elif index > len(self.sImages) - 1:
  45. index = 0
  46. self.curImage = index
  47. self.loadingImage.setUrl(self.baseURL() + "images/searching.gif")
  48. self.image.setUrl(self.sImages[self.curImage])
  49. def init():
  50. text="This page demonstrates GWT's support for images. Notice in particular how it uses the image's onLoad event to display a 'wait spinner' between the back and forward buttons."
  51. return SinkInfo("Images", text, Images)