Author: gbrown
Date: Thu Apr 22 13:02:52 2010
New Revision: 936821
URL: http://svn.apache.org/viewvc?rev=936821&view=rev
Log:
Add "year" and "month" properties to CalendarButton.
Modified:
pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButton.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButtonListener.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButton.java
URL:
http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButton.java?rev=936821&r1=936820&r2=936821&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButton.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButton.java Thu Apr 22
13:02:52 2010
@@ -32,10 +32,23 @@ import org.apache.pivot.wtk.content.Cale
* is hidden until the user pushes the button.
*/
public class CalendarButton extends Button {
- private static class CalendarButtonListenerList
- extends ListenerList<CalendarButtonListener>
+ private static class CalendarButtonListenerList extends
ListenerList<CalendarButtonListener>
implements CalendarButtonListener {
@Override
+ public void yearChanged(CalendarButton calendarButton, int
previousYear) {
+ for (CalendarButtonListener listener : this) {
+ listener.yearChanged(calendarButton, previousYear);
+ }
+ }
+
+ @Override
+ public void monthChanged(CalendarButton calendarButton, int
previousMonth) {
+ for (CalendarButtonListener listener : this) {
+ listener.monthChanged(calendarButton, previousMonth);
+ }
+ }
+
+ @Override
public void localeChanged(CalendarButton calendarButton, Locale
previousLocale) {
for (CalendarButtonListener listener : this) {
listener.localeChanged(calendarButton, previousLocale);
@@ -91,6 +104,9 @@ public class CalendarButton extends Butt
}
}
+ private int year;
+ private int month;
+
private CalendarDate selectedDate = null;
private Locale locale = Locale.getDefault();
private Filter<CalendarDate> disabledDateFilter = null;
@@ -113,12 +129,17 @@ public class CalendarButton extends Butt
private static final Button.DataRenderer DEFAULT_DATA_RENDERER = new
CalendarButtonDataRenderer();
public CalendarButton() {
- this(null);
+ this(new CalendarDate());
}
- public CalendarButton(Object buttonData) {
- super(buttonData);
+ private CalendarButton(CalendarDate calendarDate) {
+ this(calendarDate.year, calendarDate.month);
+ }
+ public CalendarButton(int year, int month) {
+ this.year = year;
+ this.month = month;
+
setDataRenderer(DEFAULT_DATA_RENDERER);
installThemeSkin(CalendarButton.class);
@@ -135,6 +156,44 @@ public class CalendarButton extends Butt
}
/**
+ * Gets the year to which this calendar button is currently set.
+ */
+ public int getYear() {
+ return year;
+ }
+
+ /**
+ * Sets this calendar's year.
+ */
+ public void setYear(int year) {
+ int previousYear = this.year;
+
+ if (previousYear != year) {
+ this.year = year;
+ calendarButtonListeners.yearChanged(this, previousYear);
+ }
+ }
+
+ /**
+ * Gets the month to which this calendar button is currently set.
+ */
+ public int getMonth() {
+ return month;
+ }
+
+ /**
+ * Sets this calendar's month.
+ */
+ public void setMonth(int month) {
+ int previousMonth = this.month;
+
+ if (previousMonth != month) {
+ this.month = month;
+ calendarButtonListeners.monthChanged(this, previousMonth);
+ }
+ }
+
+ /**
* Returns the currently selected date.
*
* @return
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButtonListener.java
URL:
http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButtonListener.java?rev=936821&r1=936820&r2=936821&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButtonListener.java
(original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/CalendarButtonListener.java Thu
Apr 22 13:02:52 2010
@@ -30,6 +30,14 @@ public interface CalendarButtonListener
*/
public static class Adapter implements CalendarButtonListener {
@Override
+ public void yearChanged(CalendarButton calendarButton, int
previousYear) {
+ }
+
+ @Override
+ public void monthChanged(CalendarButton calendarButton, int
previousMonth) {
+ }
+
+ @Override
public void localeChanged(CalendarButton calendarButton, Locale
previousLocale) {
}
@@ -40,6 +48,22 @@ public interface CalendarButtonListener
}
/**
+ * Called when a calendar button's year value has changed.
+ *
+ * @param calendarButton
+ * @param previousYear
+ */
+ public void yearChanged(CalendarButton calendarButton, int previousYear);
+
+ /**
+ * Called when a calendar button's month value has changed.
+ *
+ * @param calendarButton
+ * @param previousMonth
+ */
+ public void monthChanged(CalendarButton calendarButton, int previousMonth);
+
+ /**
* Called when a calendar button's locale has changed.
*
* @param calendarButton
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java
URL:
http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java?rev=936821&r1=936820&r2=936821&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java
(original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/CalendarButtonSkin.java Thu
Apr 22 13:02:52 2010
@@ -24,6 +24,7 @@ import org.apache.pivot.wtk.Calendar;
import org.apache.pivot.wtk.CalendarButton;
import org.apache.pivot.wtk.CalendarButtonListener;
import org.apache.pivot.wtk.CalendarButtonSelectionListener;
+import org.apache.pivot.wtk.CalendarListener;
import org.apache.pivot.wtk.Component;
import org.apache.pivot.wtk.ComponentKeyListener;
import org.apache.pivot.wtk.ComponentMouseButtonListener;
@@ -144,6 +145,19 @@ public abstract class CalendarButtonSkin
public CalendarButtonSkin() {
calendar = new Calendar();
+ calendar.getCalendarListeners().add(new CalendarListener.Adapter() {
+ @Override
+ public void yearChanged(Calendar calendar, int previousYear) {
+ CalendarButton calendarButton = (CalendarButton)getComponent();
+ calendarButton.setYear(calendar.getYear());
+ }
+
+ @Override
+ public void monthChanged(Calendar calendar, int previousMonth) {
+ CalendarButton calendarButton = (CalendarButton)getComponent();
+ calendarButton.setMonth(calendar.getMonth());
+ }
+ });
calendarPopup = new Window();
calendarPopup.getComponentMouseButtonListeners().add(calendarPopupMouseButtonListener);
@@ -260,6 +274,16 @@ public abstract class CalendarButtonSkin
// Calendar button events
@Override
+ public void yearChanged(CalendarButton calendarButton, int previousYear) {
+ calendar.setYear(calendarButton.getYear());
+ }
+
+ @Override
+ public void monthChanged(CalendarButton calendarButton, int previousMonth)
{
+ calendar.setMonth(calendarButton.getMonth());
+ }
+
+ @Override
public void localeChanged(CalendarButton calendarButton, Locale
previousLocale) {
calendar.setLocale(calendarButton.getLocale());
}