/examples/mail/MailDetail.py

http://pyjamas.googlecode.com/ · Python · 56 lines · 45 code · 11 blank · 0 comment · 2 complexity · 08c4ef4b2deb8e61a15c24f6900abe01 MD5 · raw file

  1. from ui import Composite, DockPanel, HTML, ScrollPanel, VerticalPanel
  2. from Logger import Logger
  3. class MailDetail(Composite):
  4. def __init__(self):
  5. panel = VerticalPanel()
  6. headerPanel = VerticalPanel()
  7. self.subject = HTML()
  8. self.sender = HTML()
  9. self.recipient = HTML()
  10. self.body = HTML()
  11. self.scroller = ScrollPanel(self.body)
  12. self.body.setWordWrap(True)
  13. headerPanel.add(self.subject)
  14. headerPanel.add(self.sender)
  15. headerPanel.add(self.recipient)
  16. headerPanel.setWidth("100%")
  17. innerPanel = DockPanel()
  18. innerPanel.add(headerPanel, DockPanel.NORTH)
  19. innerPanel.add(self.scroller, DockPanel.CENTER)
  20. innerPanel.setCellHeight(self.scroller, "100%")
  21. panel.add(innerPanel)
  22. innerPanel.setSize("100%", "100%")
  23. self.scroller.setSize("100%", "100%")
  24. self.initWidget(panel)
  25. self.setStyleName("mail-Detail")
  26. headerPanel.setStyleName("mail-DetailHeader")
  27. innerPanel.setStyleName("mail-DetailInner")
  28. self.subject.setStyleName("mail-DetailSubject")
  29. self.sender.setStyleName("mail-DetailSender")
  30. self.recipient.setStyleName("mail-DetailRecipient")
  31. self.body.setStyleName("mail-DetailBody")
  32. Logger("Mail detail", " ")
  33. def setItem(self, item):
  34. self.subject.setHTML(item.subject)
  35. self.sender.setHTML("<b>From:</b>&nbsp;" + item.sender)
  36. self.recipient.setHTML("<b>To:</b>&nbsp;foo@example.com")
  37. self.body.setHTML(item.body)
  38. def adjustSize(self, windowWidth, windowHeight):
  39. scrollWidth = windowWidth - self.scroller.getAbsoluteLeft() - 9
  40. if (scrollWidth < 1):
  41. scrollWidth = 1
  42. scrollHeight = windowHeight - self.scroller.getAbsoluteTop() - 9
  43. if (scrollHeight < 1):
  44. scrollHeight = 1
  45. self.scroller.setSize("" + scrollWidth, "" + scrollHeight)