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)