]> source.dussan.org Git - vaadin-framework.git/commitdiff
Enabled quick-browsing (holding mousebutton) year/month w/o immediate varchange.
authorMarc Englund <marc.englund@itmill.com>
Tue, 26 Feb 2008 09:29:02 +0000 (09:29 +0000)
committerMarc Englund <marc.englund@itmill.com>
Tue, 26 Feb 2008 09:29:02 +0000 (09:29 +0000)
svn changeset:3928/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/CalendarPanel.java

index f7bb56d312ff7ef3bb151e0c792ee35482af26db..482c9c6b222e4e6d401d30c369140e736ffa8f14 100644 (file)
@@ -261,7 +261,7 @@ public class CalendarPanel extends FlexTable implements MouseListener,
     }\r
 \r
     public void onClick(Widget sender) {\r
-        processClickEvent(sender);\r
+        // processClickEvent(sender, true);\r
     }\r
 \r
     private boolean isEnabledDate(Date date) {\r
@@ -272,36 +272,39 @@ public class CalendarPanel extends FlexTable implements MouseListener,
         return true;\r
     }\r
 \r
-    private void processClickEvent(Widget sender) {\r
+    private void processClickEvent(Widget sender, boolean updateVariable) {\r
         if (!datefield.isEnabled() || datefield.isReadonly()) {\r
             return;\r
         }\r
         Date showingDate = datefield.getShowingDate();\r
-        if (sender == prevYear) {\r
-            showingDate.setYear(showingDate.getYear() - 1);\r
-            updateCalendar();\r
-        } else if (sender == nextYear) {\r
-            showingDate.setYear(showingDate.getYear() + 1);\r
-            updateCalendar();\r
-        } else if (sender == prevMonth) {\r
-            showingDate.setMonth(showingDate.getMonth() - 1);\r
-            updateCalendar();\r
-        } else if (sender == nextMonth) {\r
-            showingDate.setMonth(showingDate.getMonth() + 1);\r
-            updateCalendar();\r
-        }\r
-        if (datefield.getCurrentResolution() == IDateField.RESOLUTION_YEAR\r
-                || datefield.getCurrentResolution() == IDateField.RESOLUTION_MONTH) {\r
-            // Due to current UI, update variable if res=year/month\r
-            datefield.setCurrentDate(new Date(showingDate.getTime()));\r
-            if (datefield.getCurrentResolution() == IDateField.RESOLUTION_MONTH) {\r
-                datefield.getClient().updateVariable(datefield.getId(),\r
-                        "month", datefield.getCurrentDate().getMonth() + 1,\r
-                        false);\r
+        if (!updateVariable) {\r
+            if (sender == prevYear) {\r
+                showingDate.setYear(showingDate.getYear() - 1);\r
+                updateCalendar();\r
+            } else if (sender == nextYear) {\r
+                showingDate.setYear(showingDate.getYear() + 1);\r
+                updateCalendar();\r
+            } else if (sender == prevMonth) {\r
+                showingDate.setMonth(showingDate.getMonth() - 1);\r
+                updateCalendar();\r
+            } else if (sender == nextMonth) {\r
+                showingDate.setMonth(showingDate.getMonth() + 1);\r
+                updateCalendar();\r
+            }\r
+        } else {\r
+            if (datefield.getCurrentResolution() == IDateField.RESOLUTION_YEAR\r
+                    || datefield.getCurrentResolution() == IDateField.RESOLUTION_MONTH) {\r
+                // Due to current UI, update variable if res=year/month\r
+                datefield.setCurrentDate(new Date(showingDate.getTime()));\r
+                if (datefield.getCurrentResolution() == IDateField.RESOLUTION_MONTH) {\r
+                    datefield.getClient().updateVariable(datefield.getId(),\r
+                            "month", datefield.getCurrentDate().getMonth() + 1,\r
+                            false);\r
+                }\r
+                datefield.getClient().updateVariable(datefield.getId(), "year",\r
+                        datefield.getCurrentDate().getYear() + 1900,\r
+                        datefield.isImmediate());\r
             }\r
-            datefield.getClient().updateVariable(datefield.getId(), "year",\r
-                    datefield.getCurrentDate().getYear() + 1900,\r
-                    datefield.isImmediate());\r
         }\r
     }\r
 \r
@@ -309,9 +312,10 @@ public class CalendarPanel extends FlexTable implements MouseListener,
 \r
     public void onMouseDown(final Widget sender, int x, int y) {\r
         if (sender instanceof IEventButton) {\r
+            processClickEvent(sender, false);\r
             timer = new Timer() {\r
                 public void run() {\r
-                    processClickEvent(sender);\r
+                    processClickEvent(sender, false);\r
                 }\r
             };\r
             timer.scheduleRepeating(100);\r
@@ -334,6 +338,7 @@ public class CalendarPanel extends FlexTable implements MouseListener,
         if (timer != null) {\r
             timer.cancel();\r
         }\r
+        processClickEvent(sender, true);\r
     }\r
 \r
     private class IEventButton extends IButton implements SourcesMouseEvents {\r