From 0663aa85d0902441c4da10d2fa9bc9a2f32a421f Mon Sep 17 00:00:00 2001 From: Jouni Koivuviita Date: Mon, 15 Sep 2008 10:20:29 +0000 Subject: [PATCH] CalendarPanel with YEAR resolution was not built initially, if the locale was the default locale of the application (silly yes). Fixes #2044. svn changeset:5397/svn branch:trunk --- .../gwt/client/ui/ICalendarPanel.java | 19 ++++++------------- .../gwt/client/ui/IPopupCalendar.java | 3 +++ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ICalendarPanel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ICalendarPanel.java index 5c9f14b2e8..1dc64187f6 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ICalendarPanel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ICalendarPanel.java @@ -11,7 +11,6 @@ import java.util.List; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.Timer; -import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.FlexTable; import com.google.gwt.user.client.ui.MouseListener; import com.google.gwt.user.client.ui.MouseListenerCollection; @@ -22,8 +21,7 @@ import com.google.gwt.user.client.ui.Widget; import com.itmill.toolkit.terminal.gwt.client.DateTimeService; import com.itmill.toolkit.terminal.gwt.client.LocaleService; -public class ICalendarPanel extends FlexTable implements MouseListener, - ClickListener { +public class ICalendarPanel extends FlexTable implements MouseListener { private final IDateField datefield; @@ -68,6 +66,7 @@ public class ICalendarPanel extends FlexTable implements MouseListener, final boolean needsMonth = datefield.getCurrentResolution() > IDateField.RESOLUTION_YEAR; boolean needsBody = datefield.getCurrentResolution() >= IDateField.RESOLUTION_DAY; final boolean needsTime = datefield.getCurrentResolution() >= IDateField.RESOLUTION_HOUR; + forceRedraw = prevYear == null ? true : forceRedraw; buildCalendarHeader(forceRedraw, needsMonth); clearCalendarBody(!needsBody); if (needsBody) { @@ -106,8 +105,6 @@ public class ICalendarPanel extends FlexTable implements MouseListener, nextYear.setStyleName("i-button-nextyear"); prevYear.addMouseListener(this); nextYear.addMouseListener(this); - prevYear.addClickListener(this); - nextYear.addClickListener(this); setWidget(0, 0, prevYear); setWidget(0, 4, nextYear); @@ -120,8 +117,6 @@ public class ICalendarPanel extends FlexTable implements MouseListener, nextMonth.setStyleName("i-button-nextmonth"); prevMonth.addMouseListener(this); nextMonth.addMouseListener(this); - prevMonth.addClickListener(this); - nextMonth.addClickListener(this); setWidget(0, 3, nextMonth); setWidget(0, 1, prevMonth); } @@ -131,9 +126,7 @@ public class ICalendarPanel extends FlexTable implements MouseListener, IDateField.CLASSNAME + "-calendarpanel-header"); } else if (!needsMonth) { // Remove month traverse buttons - prevMonth.removeClickListener(this); prevMonth.removeMouseListener(this); - nextMonth.removeClickListener(this); nextMonth.removeMouseListener(this); remove(prevMonth); remove(nextMonth); @@ -260,10 +253,6 @@ public class ICalendarPanel extends FlexTable implements MouseListener, resolution = datefield.getCurrentResolution(); } - public void onClick(Widget sender) { - // processClickEvent(sender, true); - } - private boolean isEnabledDate(Date date) { if ((minDate != null && date.before(minDate)) || (maxDate != null && date.after(maxDate))) { @@ -311,6 +300,10 @@ public class ICalendarPanel extends FlexTable implements MouseListener, private Timer timer; public void onMouseDown(final Widget sender, int x, int y) { + // Allow user to click-n-hold for fast-forward or fast-rewind. + // Timer is first used for a 500ms delay after mousedown. After that has + // elapsed, another timer is triggered to go off every 150ms. Both + // timers are cancelled on mouseup or mouseout. if (sender instanceof IEventButton) { processClickEvent(sender, false); timer = new Timer() { diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupCalendar.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupCalendar.java index 138c07d730..6b46eb88d0 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupCalendar.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupCalendar.java @@ -47,6 +47,7 @@ public class IPopupCalendar extends ITextualDate implements Paintable, Field, } + @Override public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { super.updateFromUIDL(uidl, client); if (date != null) { @@ -99,6 +100,7 @@ public class IPopupCalendar extends ITextualDate implements Paintable, Field, buildDate(); // Sigh. Timer t = new Timer() { + @Override public void run() { open = false; } @@ -116,6 +118,7 @@ public class IPopupCalendar extends ITextualDate implements Paintable, Field, calendar.setFocus(focus); } + @Override protected int getFieldExtraWidth() { if (fieldExtraWidth < 0) { fieldExtraWidth = super.getFieldExtraWidth(); -- 2.39.5