1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
from pyjamas.ui.Composite import Composite
from pyjamas.ui.CheckBox import CheckBox
from pyjamas.ui.HorizontalPanel import HorizontalPanel
from pyjamas.ui.VerticalPanel import VerticalPanel
from pyjamas.ui.Button import Button
from pyjamas.ui import HasAlignment
class DayCheckBox(CheckBox):
def __init__(self, owner, caption, day):
CheckBox.__init__(self, caption)
self.day = day
self.addClickListener(owner.dayCheckBoxListener)
self.setChecked(owner.calendar.getDayIncluded(day))
class DayCheckBoxListener:
def __init__(self, calendar):
self.calendar = calendar
def onClick(self, sender):
self.calendar.setDayIncluded(sender.day, sender.isChecked())
class DayFilterWidget(Composite):
def __init__(self, calendar):
Composite.__init__(self)
self.calendar = calendar
self.dayCheckBoxListener = DayCheckBoxListener(calendar)
self.outer = VerticalPanel()
self.initWidget(self.outer)
self.setStyleName("DynaTable-DayFilterWidget")
self.outer.add(DayCheckBox(self, "Sunday", 0))
self.outer.add(DayCheckBox(self, "Monday", 1))
self.outer.add(DayCheckBox(self, "Tuesday", 2))
self.outer.add(DayCheckBox(self, "Wednesday", 3))
self.outer.add(DayCheckBox(self, "Thursday", 4))
self.outer.add(DayCheckBox(self, "Friday", 5))
self.outer.add(DayCheckBox(self, "Saturday", 6))
self.buttonAll = Button("All", self)
self.buttonNone = Button("None", self)
hp = HorizontalPanel()
hp.setHorizontalAlignment(HasAlignment.ALIGN_CENTER)
hp.add(self.buttonAll)
hp.add(self.buttonNone)
self.outer.add(hp)
self.outer.setCellVerticalAlignment(hp, HasAlignment.ALIGN_BOTTOM)
self.outer.setCellHorizontalAlignment(hp, HasAlignment.ALIGN_CENTER)
def setAllCheckBoxes(self, checked):
for widget in self.outer:
if hasattr(widget, "setChecked"):
widget.setChecked(checked)
self.dayCheckBoxListener.onClick(widget)
def onClick(self, sender):
if self.buttonAll == sender:
self.setAllCheckBoxes(True)
elif self.buttonNone == sender:
self.setAllCheckBoxes(False)
|