PageRenderTime 26ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/examples/dynamictable/DayFilterWidget.py

http://pyjamas.googlecode.com/
Python | 65 lines | 46 code | 19 blank | 0 comment | 4 complexity | c411ae5d55b69e6471765c111b88634d MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
  1. from ui import Composite, CheckBox, HorizontalPanel, VerticalPanel, Button, HasAlignment
  2. class DayCheckBox(CheckBox):
  3. def __init__(self, owner, caption, day):
  4. CheckBox.__init__(self, caption)
  5. self.day = day
  6. self.addClickListener(owner.dayCheckBoxListener)
  7. self.setChecked(owner.calendar.getDayIncluded(day))
  8. class DayCheckBoxListener:
  9. def __init__(self, calendar):
  10. self.calendar = calendar
  11. def onClick(self, sender):
  12. self.calendar.setDayIncluded(sender.day, sender.isChecked())
  13. class DayFilterWidget(Composite):
  14. def __init__(self, calendar):
  15. Composite.__init__(self)
  16. self.calendar = calendar
  17. self.dayCheckBoxListener = DayCheckBoxListener(calendar)
  18. self.outer = VerticalPanel()
  19. self.initWidget(self.outer)
  20. self.setStyleName("DynaTable-DayFilterWidget")
  21. self.outer.add(DayCheckBox(self, "Sunday", 0))
  22. self.outer.add(DayCheckBox(self, "Monday", 1))
  23. self.outer.add(DayCheckBox(self, "Tuesday", 2))
  24. self.outer.add(DayCheckBox(self, "Wednesday", 3))
  25. self.outer.add(DayCheckBox(self, "Thursday", 4))
  26. self.outer.add(DayCheckBox(self, "Friday", 5))
  27. self.outer.add(DayCheckBox(self, "Saturday", 6))
  28. self.buttonAll = Button("All", self)
  29. self.buttonNone = Button("None", self)
  30. hp = HorizontalPanel()
  31. hp.setHorizontalAlignment(HasAlignment.ALIGN_CENTER)
  32. hp.add(self.buttonAll)
  33. hp.add(self.buttonNone)
  34. self.outer.add(hp)
  35. self.outer.setCellVerticalAlignment(hp, HasAlignment.ALIGN_BOTTOM)
  36. self.outer.setCellHorizontalAlignment(hp, HasAlignment.ALIGN_CENTER)
  37. def setAllCheckBoxes(self, checked):
  38. for widget in self.outer:
  39. if widget.setChecked:
  40. widget.setChecked(checked)
  41. self.dayCheckBoxListener.onClick(widget)
  42. def onClick(self, sender):
  43. if self.buttonAll == sender:
  44. self.setAllCheckBoxes(True)
  45. elif self.buttonNone == sender:
  46. self.setAllCheckBoxes(False)