From: Marc Englund Date: Tue, 26 Feb 2008 09:29:02 +0000 (+0000) Subject: Enabled quick-browsing (holding mousebutton) year/month w/o immediate varchange. X-Git-Tag: 6.7.0.beta1~5014 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=cfafc1af38fd84f05d9e9924a6d2837c1dfa24e0;p=vaadin-framework.git Enabled quick-browsing (holding mousebutton) year/month w/o immediate varchange. svn changeset:3928/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/CalendarPanel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/CalendarPanel.java index f7bb56d312..482c9c6b22 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/CalendarPanel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/CalendarPanel.java @@ -261,7 +261,7 @@ public class CalendarPanel extends FlexTable implements MouseListener, } public void onClick(Widget sender) { - processClickEvent(sender); + // processClickEvent(sender, true); } private boolean isEnabledDate(Date date) { @@ -272,36 +272,39 @@ public class CalendarPanel extends FlexTable implements MouseListener, return true; } - private void processClickEvent(Widget sender) { + private void processClickEvent(Widget sender, boolean updateVariable) { if (!datefield.isEnabled() || datefield.isReadonly()) { return; } Date showingDate = datefield.getShowingDate(); - if (sender == prevYear) { - showingDate.setYear(showingDate.getYear() - 1); - updateCalendar(); - } else if (sender == nextYear) { - showingDate.setYear(showingDate.getYear() + 1); - updateCalendar(); - } else if (sender == prevMonth) { - showingDate.setMonth(showingDate.getMonth() - 1); - updateCalendar(); - } else if (sender == nextMonth) { - showingDate.setMonth(showingDate.getMonth() + 1); - updateCalendar(); - } - if (datefield.getCurrentResolution() == IDateField.RESOLUTION_YEAR - || datefield.getCurrentResolution() == IDateField.RESOLUTION_MONTH) { - // Due to current UI, update variable if res=year/month - datefield.setCurrentDate(new Date(showingDate.getTime())); - if (datefield.getCurrentResolution() == IDateField.RESOLUTION_MONTH) { - datefield.getClient().updateVariable(datefield.getId(), - "month", datefield.getCurrentDate().getMonth() + 1, - false); + if (!updateVariable) { + if (sender == prevYear) { + showingDate.setYear(showingDate.getYear() - 1); + updateCalendar(); + } else if (sender == nextYear) { + showingDate.setYear(showingDate.getYear() + 1); + updateCalendar(); + } else if (sender == prevMonth) { + showingDate.setMonth(showingDate.getMonth() - 1); + updateCalendar(); + } else if (sender == nextMonth) { + showingDate.setMonth(showingDate.getMonth() + 1); + updateCalendar(); + } + } else { + if (datefield.getCurrentResolution() == IDateField.RESOLUTION_YEAR + || datefield.getCurrentResolution() == IDateField.RESOLUTION_MONTH) { + // Due to current UI, update variable if res=year/month + datefield.setCurrentDate(new Date(showingDate.getTime())); + if (datefield.getCurrentResolution() == IDateField.RESOLUTION_MONTH) { + datefield.getClient().updateVariable(datefield.getId(), + "month", datefield.getCurrentDate().getMonth() + 1, + false); + } + datefield.getClient().updateVariable(datefield.getId(), "year", + datefield.getCurrentDate().getYear() + 1900, + datefield.isImmediate()); } - datefield.getClient().updateVariable(datefield.getId(), "year", - datefield.getCurrentDate().getYear() + 1900, - datefield.isImmediate()); } } @@ -309,9 +312,10 @@ public class CalendarPanel extends FlexTable implements MouseListener, public void onMouseDown(final Widget sender, int x, int y) { if (sender instanceof IEventButton) { + processClickEvent(sender, false); timer = new Timer() { public void run() { - processClickEvent(sender); + processClickEvent(sender, false); } }; timer.scheduleRepeating(100); @@ -334,6 +338,7 @@ public class CalendarPanel extends FlexTable implements MouseListener, if (timer != null) { timer.cancel(); } + processClickEvent(sender, true); } private class IEventButton extends IButton implements SourcesMouseEvents {