]> source.dussan.org Git - vaadin-framework.git/commitdiff
CalendarPanel with YEAR resolution was not built initially, if the locale was the...
authorJouni Koivuviita <jouni.koivuviita@itmill.com>
Mon, 15 Sep 2008 10:20:29 +0000 (10:20 +0000)
committerJouni Koivuviita <jouni.koivuviita@itmill.com>
Mon, 15 Sep 2008 10:20:29 +0000 (10:20 +0000)
svn changeset:5397/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/ICalendarPanel.java
src/com/itmill/toolkit/terminal/gwt/client/ui/IPopupCalendar.java

index 5c9f14b2e8c7c1d9c40c44d8037f0f981e9061a9..1dc64187f6d43e6d723e3131f762da8b573e96ac 100644 (file)
@@ -11,7 +11,6 @@ import java.util.List;
 import com.google.gwt.user.client.DOM;\r
 import com.google.gwt.user.client.Event;\r
 import com.google.gwt.user.client.Timer;\r
-import com.google.gwt.user.client.ui.ClickListener;\r
 import com.google.gwt.user.client.ui.FlexTable;\r
 import com.google.gwt.user.client.ui.MouseListener;\r
 import com.google.gwt.user.client.ui.MouseListenerCollection;\r
@@ -22,8 +21,7 @@ import com.google.gwt.user.client.ui.Widget;
 import com.itmill.toolkit.terminal.gwt.client.DateTimeService;\r
 import com.itmill.toolkit.terminal.gwt.client.LocaleService;\r
 \r
-public class ICalendarPanel extends FlexTable implements MouseListener,\r
-        ClickListener {\r
+public class ICalendarPanel extends FlexTable implements MouseListener {\r
 \r
     private final IDateField datefield;\r
 \r
@@ -68,6 +66,7 @@ public class ICalendarPanel extends FlexTable implements MouseListener,
         final boolean needsMonth = datefield.getCurrentResolution() > IDateField.RESOLUTION_YEAR;\r
         boolean needsBody = datefield.getCurrentResolution() >= IDateField.RESOLUTION_DAY;\r
         final boolean needsTime = datefield.getCurrentResolution() >= IDateField.RESOLUTION_HOUR;\r
+        forceRedraw = prevYear == null ? true : forceRedraw;\r
         buildCalendarHeader(forceRedraw, needsMonth);\r
         clearCalendarBody(!needsBody);\r
         if (needsBody) {\r
@@ -106,8 +105,6 @@ public class ICalendarPanel extends FlexTable implements MouseListener,
                 nextYear.setStyleName("i-button-nextyear");\r
                 prevYear.addMouseListener(this);\r
                 nextYear.addMouseListener(this);\r
-                prevYear.addClickListener(this);\r
-                nextYear.addClickListener(this);\r
                 setWidget(0, 0, prevYear);\r
                 setWidget(0, 4, nextYear);\r
 \r
@@ -120,8 +117,6 @@ public class ICalendarPanel extends FlexTable implements MouseListener,
                     nextMonth.setStyleName("i-button-nextmonth");\r
                     prevMonth.addMouseListener(this);\r
                     nextMonth.addMouseListener(this);\r
-                    prevMonth.addClickListener(this);\r
-                    nextMonth.addClickListener(this);\r
                     setWidget(0, 3, nextMonth);\r
                     setWidget(0, 1, prevMonth);\r
                 }\r
@@ -131,9 +126,7 @@ public class ICalendarPanel extends FlexTable implements MouseListener,
                         IDateField.CLASSNAME + "-calendarpanel-header");\r
             } else if (!needsMonth) {\r
                 // Remove month traverse buttons\r
-                prevMonth.removeClickListener(this);\r
                 prevMonth.removeMouseListener(this);\r
-                nextMonth.removeClickListener(this);\r
                 nextMonth.removeMouseListener(this);\r
                 remove(prevMonth);\r
                 remove(nextMonth);\r
@@ -260,10 +253,6 @@ public class ICalendarPanel extends FlexTable implements MouseListener,
         resolution = datefield.getCurrentResolution();\r
     }\r
 \r
-    public void onClick(Widget sender) {\r
-        // processClickEvent(sender, true);\r
-    }\r
-\r
     private boolean isEnabledDate(Date date) {\r
         if ((minDate != null && date.before(minDate))\r
                 || (maxDate != null && date.after(maxDate))) {\r
@@ -311,6 +300,10 @@ public class ICalendarPanel extends FlexTable implements MouseListener,
     private Timer timer;\r
 \r
     public void onMouseDown(final Widget sender, int x, int y) {\r
+        // Allow user to click-n-hold for fast-forward or fast-rewind.\r
+        // Timer is first used for a 500ms delay after mousedown. After that has\r
+        // elapsed, another timer is triggered to go off every 150ms. Both\r
+        // timers are cancelled on mouseup or mouseout.\r
         if (sender instanceof IEventButton) {\r
             processClickEvent(sender, false);\r
             timer = new Timer() {\r
index 138c07d730cebd86d179e4f6f82c38cd31823531..6b46eb88d0d835fe5f68a0010b4d38f75c0dfd57 100644 (file)
@@ -47,6 +47,7 @@ public class IPopupCalendar extends ITextualDate implements Paintable, Field,
 \r
     }\r
 \r
+    @Override\r
     public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {\r
         super.updateFromUIDL(uidl, client);\r
         if (date != null) {\r
@@ -99,6 +100,7 @@ public class IPopupCalendar extends ITextualDate implements Paintable, Field,
             buildDate();\r
             // Sigh.\r
             Timer t = new Timer() {\r
+                @Override\r
                 public void run() {\r
                     open = false;\r
                 }\r
@@ -116,6 +118,7 @@ public class IPopupCalendar extends ITextualDate implements Paintable, Field,
         calendar.setFocus(focus);\r
     }\r
 \r
+    @Override\r
     protected int getFieldExtraWidth() {\r
         if (fieldExtraWidth < 0) {\r
             fieldExtraWidth = super.getFieldExtraWidth();\r