]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix for #5277
authorJonatan Kronqvist <jonatan.kronqvist@itmill.com>
Wed, 7 Jul 2010 10:18:34 +0000 (10:18 +0000)
committerJonatan Kronqvist <jonatan.kronqvist@itmill.com>
Wed, 7 Jul 2010 10:18:34 +0000 (10:18 +0000)
svn changeset:14128/svn branch:6.4

src/com/vaadin/ui/DateField.java
tests/src/com/vaadin/tests/components/datefield/DateFieldEmptyValid.html
tests/src/com/vaadin/tests/components/datefield/DateFieldEmptyValid.java

index 9957365096eaeea39e068609023ca2114a049498..2e61699ac7d154c969cbd5ffe8185bd743ae7ef8 100644 (file)
@@ -238,24 +238,35 @@ public class DateField extends AbstractField implements
         for (int r = resolution; r <= largestModifiable; r++) {
             switch (r) {
             case RESOLUTION_MSEC:
-                target.addVariable(this, "msec", currentDate != null ? calendar
-                        .get(Calendar.MILLISECOND) : -1);
+                target.addVariable(
+                        this,
+                        "msec",
+                        currentDate != null ? calendar
+                                .get(Calendar.MILLISECOND) : -1);
                 break;
             case RESOLUTION_SEC:
-                target.addVariable(this, "sec", currentDate != null ? calendar
-                        .get(Calendar.SECOND) : -1);
+                target.addVariable(this, "sec",
+                        currentDate != null ? calendar.get(Calendar.SECOND)
+                                : -1);
                 break;
             case RESOLUTION_MIN:
-                target.addVariable(this, "min", currentDate != null ? calendar
-                        .get(Calendar.MINUTE) : -1);
+                target.addVariable(this, "min",
+                        currentDate != null ? calendar.get(Calendar.MINUTE)
+                                : -1);
                 break;
             case RESOLUTION_HOUR:
-                target.addVariable(this, "hour", currentDate != null ? calendar
-                        .get(Calendar.HOUR_OF_DAY) : -1);
+                target.addVariable(
+                        this,
+                        "hour",
+                        currentDate != null ? calendar
+                                .get(Calendar.HOUR_OF_DAY) : -1);
                 break;
             case RESOLUTION_DAY:
-                target.addVariable(this, "day", currentDate != null ? calendar
-                        .get(Calendar.DAY_OF_MONTH) : -1);
+                target.addVariable(
+                        this,
+                        "day",
+                        currentDate != null ? calendar
+                                .get(Calendar.DAY_OF_MONTH) : -1);
                 break;
             case RESOLUTION_MONTH:
                 target.addVariable(this, "month",
@@ -263,8 +274,8 @@ public class DateField extends AbstractField implements
                                 : -1);
                 break;
             case RESOLUTION_YEAR:
-                target.addVariable(this, "year", currentDate != null ? calendar
-                        .get(Calendar.YEAR) : -1);
+                target.addVariable(this, "year",
+                        currentDate != null ? calendar.get(Calendar.YEAR) : -1);
                 break;
             }
         }
@@ -527,6 +538,15 @@ public class DateField extends AbstractField implements
         }
     }
 
+    @Override
+    protected void setInternalValue(Object newValue) {
+        // Also set the internal dateString
+        if (newValue != null) {
+            dateString = newValue.toString();
+        }
+        super.setInternalValue(newValue);
+    }
+
     /**
      * Gets the resolution.
      * 
@@ -684,7 +704,24 @@ public class DateField extends AbstractField implements
          * Logically isEmpty() should return false also in the case that the
          * entered value is invalid.
          */
-        return dateString == null || dateString.equals("");
+        boolean empty = (dateString == null || dateString.equals(""));
+        return empty;
+    }
+
+    @Override
+    public void valueChange(Property.ValueChangeEvent event) {
+        /*
+         * We also need to update the dateString if the value of the property
+         * data source changes. This has to be done before super fires the value
+         * change event in case someone checks isEmpty in a value change
+         * listener.
+         */
+        Object value = getValue();
+        if (value != null) {
+            dateString = value.toString();
+        }
+
+        super.valueChange(event);
     }
 
     /*
index 3c09c59645e062d4b1aa132a14184c40b4c6eb57..b180246839485ed609a2a3f5098591b6292b814a 100644 (file)
 <tr><td rowspan="1" colspan="3">DateFieldEmptyValid</td></tr>
 </thead><tbody>
 <tr>
-       <td>open</td>
-       <td>/run/com.vaadin.tests.components.datefield.DateFieldEmptyValid?restartApplication</td>
-       <td></td>
+    <td>open</td>
+    <td>/run/com.vaadin.tests.components.datefield.DateFieldEmptyValid?restartApplication</td>
+    <td></td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
-       <td>2. isEmpty: false, isValid: true</td>
+    <td>waitForVaadin</td>
+    <td></td>
+    <td></td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
-       <td>1. DateField value is now 1973-03-03</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>2. isEmpty: false, isValid: true</td>
 </tr>
 <tr>
-       <td>assertValue</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td>3.3.1973</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
+    <td>1. DateField value is now 1973-03-03</td>
 </tr>
 <tr>
-       <td>mouseClick</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td>62,12</td>
+    <td>assertValue</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td>3.3.1973</td>
 </tr>
 <tr>
-       <td>pressSpecialKey</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td>down</td>
+    <td>mouseClick</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td>62,12</td>
 </tr>
 <tr>
-       <td>pressSpecialKey</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
-       <td>down</td>
+    <td>pressSpecialKey</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td>down</td>
 </tr>
 <tr>
-       <td>pressSpecialKey</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
-       <td>down</td>
+    <td>pressSpecialKey</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
+    <td>down</td>
 </tr>
 <tr>
-       <td>pressSpecialKey</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
-       <td>left</td>
+    <td>pressSpecialKey</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
+    <td>down</td>
 </tr>
 <tr>
-       <td>pressSpecialKey</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
-       <td>left</td>
+    <td>pressSpecialKey</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
+    <td>left</td>
 </tr>
 <tr>
-       <td>pressSpecialKey</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
-       <td>enter</td>
+    <td>pressSpecialKey</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
+    <td>left</td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
-       <td>4. isEmpty: false, isValid: true</td>
+    <td>pressSpecialKey</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::Root/VOverlay[0]/VCalendarPanel[0]</td>
+    <td>enter</td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
-       <td>3. DateField value is now Thu Mar 15 11:46:40 EET 1973</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>4. isEmpty: false, isValid: true</td>
 </tr>
 <tr>
-       <td>assertValue</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td>15.3.1973</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
+    <td>3. DateField value is now Thu Mar 15 11:46:40 EET 1973</td>
 </tr>
 <tr>
-       <td>mouseClick</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td>64,13</td>
+    <td>assertValue</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td>15.3.1973</td>
 </tr>
 <tr>
-       <td>enterCharacter</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td>15.3.1973d</td>
+    <td>mouseClick</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td>64,13</td>
 </tr>
 <tr>
-       <td>screenCapture</td>
-       <td></td>
-       <td>InvalidDateIcon</td>
+    <td>enterCharacter</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td>15.3.1973d</td>
 </tr>
 <tr>
-       <td>mouseClick</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/domChild[0]/domChild[2]</td>
-       <td>208,5</td>
+    <td>screenCapture</td>
+    <td></td>
+    <td>InvalidDateIcon</td>
 </tr>
 <tr>
-       <td>click</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VButton[0]/domChild[0]</td>
-       <td></td>
+    <td>mouseClick</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/domChild[0]/domChild[2]</td>
+    <td>208,5</td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
-       <td>6. isEmpty: false, isValid: false</td>
+    <td>click</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[7]/VButton[0]/domChild[0]/domChild[0]</td>
+    <td></td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
-       <td>5. DateField value is now null</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>6. isEmpty: false, isValid: false</td>
 </tr>
 <tr>
-       <td>mouseClick</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td>64,10</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
+    <td>5. DateField value is now null</td>
 </tr>
 <tr>
-       <td>enterCharacter</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td>15.3.1973dd</td>
+    <td>mouseClick</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td>64,10</td>
 </tr>
 <tr>
-       <td>mouseClick</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/domChild[0]/domChild[2]</td>
-       <td>186,10</td>
+    <td>enterCharacter</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td>15.3.1973dd</td>
 </tr>
 <tr>
-       <td>click</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VButton[0]/domChild[0]/domChild[0]</td>
-       <td></td>
+    <td>mouseClick</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/domChild[0]/domChild[2]</td>
+    <td>186,10</td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
-       <td>8. isEmpty: false, isValid: false</td>
+    <td>click</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[7]/VButton[0]/domChild[0]/domChild[0]</td>
+    <td></td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
-       <td>7. DateField value is now null</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>8. isEmpty: false, isValid: false</td>
 </tr>
 <tr>
-       <td>click</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
-       <td></td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
+    <td>7. DateField value is now null</td>
 </tr>
 <tr>
-       <td>assertValue</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td></td>
+    <td>click</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+    <td></td>
 </tr>
 <tr>
-       <td>click</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VButton[0]/domChild[0]/domChild[0]</td>
-       <td></td>
+    <td>assertValue</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td></td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
-       <td>9. DateField value is now null</td>
+    <td>click</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[7]/VButton[0]/domChild[0]/domChild[0]</td>
+    <td></td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
-       <td>10. isEmpty: true, isValid: false</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
+    <td>9. DateField value is now null</td>
 </tr>
 <tr>
-       <td>click</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VButton[0]/domChild[0]/domChild[0]</td>
-       <td></td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>10. isEmpty: true, isValid: false</td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
-       <td>12. isEmpty: false, isValid: true</td>
+    <td>click</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[4]/VButton[0]/domChild[0]/domChild[0]</td>
+    <td></td>
 </tr>
 <tr>
-       <td>assertText</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
-       <td>11. DateField value is now 1990-05-04</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>12. isEmpty: false, isValid: true</td>
 </tr>
 <tr>
-       <td>assertValue</td>
-       <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
-       <td>4.5.1990</td>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
+    <td>11. DateField value is now 1990-05-04</td>
+</tr>
+<tr>
+    <td>assertValue</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[2]/VPopupCalendar[0]/domChild[0]</td>
+    <td>4.5.1990</td>
+</tr>
+<tr>
+    <td>click</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VButton[0]/domChild[0]/domChild[0]</td>
+    <td></td>
+</tr>
+<tr>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>14. isEmpty: false, isValid: true</td>
+</tr>
+<tr>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
+    <td>13. DateField value is now 2000-06-05</td>
+</tr>
+<tr>
+    <td>click</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[3]/VButton[0]/domChild[0]/domChild[0]</td>
+    <td></td>
+</tr>
+<tr>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>16. isEmpty: true, isValid: false</td>
+</tr>
+<tr>
+    <td>click</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[5]/VButton[0]/domChild[0]/domChild[0]</td>
+    <td></td>
+</tr>
+<tr>
+    <td>mouseClick</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>105,12</td>
+</tr>
+<tr>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>20. isEmpty: false, isValid: true</td>
+</tr>
+<tr>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
+    <td>19. DateField value is now 2000-06-05</td>
+</tr>
+<tr>
+    <td>click</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[6]/VButton[0]/domChild[0]/domChild[0]</td>
+    <td></td>
+</tr>
+<tr>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VLabel[0]</td>
+    <td>26. isEmpty: false, isValid: true</td>
+</tr>
+<tr>
+    <td>assertText</td>
+    <td>vaadin=runcomvaadintestscomponentsdatefieldDateFieldEmptyValid::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[1]/VLabel[0]</td>
+    <td>25. DateField value is now 2005-08-27</td>
 </tr>
-
 </tbody></table>
 </body>
 </html>
index cf0c4c69aa94a0c4cc20915b3ea010c41a391206..05c1056095f356ea837b54f25b3476fadd4b939b 100644 (file)
@@ -5,15 +5,17 @@ import java.util.Locale;
 \r
 import com.vaadin.data.Property.ValueChangeEvent;\r
 import com.vaadin.data.Property.ValueChangeListener;\r
+import com.vaadin.data.util.ObjectProperty;\r
 import com.vaadin.tests.components.TestBase;\r
 import com.vaadin.tests.util.Log;\r
 import com.vaadin.ui.Button;\r
+import com.vaadin.ui.Button.ClickEvent;\r
+import com.vaadin.ui.Button.ClickListener;\r
 import com.vaadin.ui.DateField;\r
 import com.vaadin.ui.Label;\r
 import com.vaadin.ui.PopupDateField;\r
-import com.vaadin.ui.Button.ClickEvent;\r
-import com.vaadin.ui.Button.ClickListener;\r
 \r
+@SuppressWarnings("serial")\r
 public class DateFieldEmptyValid extends TestBase {\r
 \r
     private Log log;\r
@@ -68,6 +70,29 @@ public class DateFieldEmptyValid extends TestBase {
         });\r
         addComponent(b);\r
 \r
+        b = new Button("Set date to 5.6.2000 using a property data source");\r
+        b.addListener(new ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                ObjectProperty dfProp = new ObjectProperty(new Date(\r
+                        2000 - 1900, 6 - 1, 5), Date.class);\r
+                df.setPropertyDataSource(dfProp);\r
+            }\r
+        });\r
+        addComponent(b);\r
+\r
+        b = new Button(\r
+                "Set date to 27.8.2005 by changing a property data source from null");\r
+        b.addListener(new ClickListener() {\r
+\r
+            public void buttonClick(ClickEvent event) {\r
+                ObjectProperty dfProp = new ObjectProperty(null, Date.class);\r
+                df.setPropertyDataSource(dfProp);\r
+                dfProp.setValue(new Date(2005 - 1900, 8 - 1, 27));\r
+            }\r
+        });\r
+        addComponent(b);\r
+\r
         b = new Button("Check value");\r
         b.addListener(new ClickListener() {\r
 \r