You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2007/03/21 18:43:11 UTC

svn commit: r520958 - in /tapestry/tapestry4/trunk: ./ tapestry-annotations/ tapestry-contrib/ tapestry-examples/TimeTracker/ tapestry-examples/Workbench/ tapestry-framework/src/java/org/apache/tapestry/ tapestry-framework/src/java/org/apache/tapestry/...

Author: jkuhnert
Date: Wed Mar 21 10:43:10 2007
New Revision: 520958

URL: http://svn.apache.org/viewvc?view=rev&rev=520958
Log:
Fixes TAPESTRY-1378. 

The dropdown Date/Time pickers had specific java.util.Date bindings that made it impossible to use any other date objects (like Joda ). Refactored these components and the associated DateTranslator to make it possible to substitute the less well liked Date object with something else..

Modified:
    tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml
    tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml
    tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml
    tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownDatePicker.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownTimePicker.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java
    tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java
    tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestDropdownTimePicker.java
    tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml
    tapestry/tapestry4/trunk/tapestry.iws

Modified: tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-annotations/tapestry-annotations.iml Wed Mar 21 10:43:10 2007
@@ -12,7 +12,6 @@
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="tapestry" />
-    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntry type="module-library" exported="">
       <library name="Maven Dependency: backport-util-concurrent:backport-util-concurrent:jar:2.2:compile">
         <CLASSES>
@@ -259,6 +258,7 @@
         </SOURCES>
       </library>
     </orderEntry>
+    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntryProperties />
   </component>
 </module>

Modified: tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-contrib/tapestry-contrib.iml Wed Mar 21 10:43:10 2007
@@ -12,7 +12,6 @@
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="tapestry" />
-    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntry type="module-library" exported="">
       <library name="Maven Dependency: backport-util-concurrent:backport-util-concurrent:jar:2.2:compile">
         <CLASSES>
@@ -268,6 +267,7 @@
         </SOURCES>
       </library>
     </orderEntry>
+    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntryProperties />
   </component>
 </module>

Modified: tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/TimeTracker/TimeTracker.iml Wed Mar 21 10:43:10 2007
@@ -14,9 +14,6 @@
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="tapestry" />
-    <orderEntry type="module" module-name="tapestry-annotations" />
-    <orderEntry type="module" module-name="tapestry-contrib" />
-    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntry type="module-library">
       <library>
         <CLASSES>
@@ -340,6 +337,9 @@
         </SOURCES>
       </library>
     </orderEntry>
+    <orderEntry type="module" module-name="tapestry-annotations" />
+    <orderEntry type="module" module-name="tapestry-contrib" />
+    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntryProperties />
   </component>
   <component name="WebModuleBuildComponent">
@@ -470,6 +470,10 @@
       <attribute name="method" value="1" />
       <attribute name="URI" value="/WEB-INF/lib/jboss-j2ee-4.0.2.jar" />
     </containerElement>
+    <containerElement type="library" name="Maven Dependency: jboss:jboss-j2ee:jar:4.0.2:provided" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/jboss-j2ee-4.0.2.jar" />
+    </containerElement>
     <containerElement type="library" name="Maven Dependency: jcharts:jcharts:jar:0.6.0:compile" level="module">
       <attribute name="method" value="0" />
       <attribute name="URI" value="/WEB-INF/lib/jcharts-0.6.0.jar" />
@@ -486,6 +490,10 @@
       <attribute name="method" value="1" />
       <attribute name="URI" value="/WEB-INF/lib/junit-3.8.1.jar" />
     </containerElement>
+    <containerElement type="library" name="Maven Dependency: junit:junit:jar:3.8.1:provided" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/junit-3.8.1.jar" />
+    </containerElement>
     <containerElement type="library" name="Maven Dependency: junit:junit:jar:3.8.1:test" level="module">
       <attribute name="method" value="0" />
       <attribute name="URI" value="/WEB-INF/lib/junit-3.8.1.jar" />
@@ -494,8 +502,16 @@
       <attribute name="method" value="1" />
       <attribute name="URI" value="/WEB-INF/lib/log4j-1.2.8.jar" />
     </containerElement>
+    <containerElement type="library" name="Maven Dependency: log4j:log4j:jar:1.2.8:test" level="module">
+      <attribute name="method" value="1" />
+      <attribute name="URI" value="/WEB-INF/lib/log4j-1.2.8.jar" />
+    </containerElement>
     <containerElement type="library" name="Maven Dependency: log4j:log4j:jar:1.2.9:compile" level="module">
       <attribute name="method" value="0" />
+      <attribute name="URI" value="/WEB-INF/lib/log4j-1.2.9.jar" />
+    </containerElement>
+    <containerElement type="library" name="Maven Dependency: log4j:log4j:jar:1.2.9:test" level="module">
+      <attribute name="method" value="1" />
       <attribute name="URI" value="/WEB-INF/lib/log4j-1.2.9.jar" />
     </containerElement>
     <containerElement type="library" name="Maven Dependency: log4j:log4j:jar:1.2.9:test" level="module">

Modified: tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-examples/Workbench/Workbench.iml Wed Mar 21 10:43:10 2007
@@ -16,9 +16,6 @@
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="tapestry" />
-    <orderEntry type="module" module-name="tapestry-annotations" />
-    <orderEntry type="module" module-name="tapestry-contrib" />
-    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntry type="module-library">
       <library>
         <CLASSES>
@@ -252,6 +249,9 @@
         </SOURCES>
       </library>
     </orderEntry>
+    <orderEntry type="module" module-name="tapestry-annotations" />
+    <orderEntry type="module" module-name="tapestry-contrib" />
+    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntryProperties />
   </component>
   <component name="WebModuleBuildComponent">

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java Wed Mar 21 10:43:10 2007
@@ -14,14 +14,6 @@
 
 package org.apache.tapestry;
 
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.Messages;
 import org.apache.hivemind.impl.BaseLocatable;
@@ -35,6 +27,8 @@
 import org.apache.tapestry.services.ComponentRenderWorker;
 import org.apache.tapestry.spec.IComponentSpecification;
 import org.apache.tapestry.spec.IContainedComponent;
+
+import java.util.*;
 
 /**
  * Abstract base class implementing the {@link IComponent}interface.

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownDatePicker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownDatePicker.java?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownDatePicker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownDatePicker.java Wed Mar 21 10:43:10 2007
@@ -13,11 +13,6 @@
 // limitations under the License.
 package org.apache.tapestry.dojo.form;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.tapestry.IMarkupWriter;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.IScript;
@@ -29,6 +24,9 @@
 import org.apache.tapestry.json.JSONObject;
 import org.apache.tapestry.valid.ValidatorException;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * Implementation of the dojo DropdownDatePicker widget as a tapestry
  * component. Wraps a form input field with a date picker icon next to it
@@ -39,12 +37,10 @@
 public abstract class DropdownDatePicker extends AbstractFormWidget implements TranslatedField
 {
     
-    private static final SimpleDateFormat RFC3339_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
-    
     /** parameter. */
-    public abstract Date getValue();
+    public abstract Object getValue();
     
-    public abstract void setValue(Date value);
+    public abstract void setValue(Object value);
     
     public abstract boolean isDisabled();
     
@@ -83,11 +79,11 @@
         json.put("inputId", getClientId());
         json.put("inputName", getName());
         json.put("iconAlt", getIconAlt());
-        json.put("displayFormat", translator.getPattern());
-        json.put("saveFormat", translator.getPattern());
+        json.put("displayFormat", translator.getPattern(getPage().getLocale()));
+        json.put("saveFormat", translator.getPattern(getPage().getLocale()));
         
         if (getValue() != null) {
-            json.put("value", RFC3339_FORMAT.format(getValue()));
+            json.put("value", translator.formatRfc3339(getValue()));
         }
         
         json.put("disabled", isDisabled());
@@ -109,11 +105,11 @@
         
         try
         {
-            Date date = (Date) getTranslatedFieldSupport().parse(this, value);
+            Object translated = getTranslatedFieldSupport().parse(this, value);
             
-            getValidatableFieldSupport().validate(this, writer, cycle, date);
+            getValidatableFieldSupport().validate(this, writer, cycle, translated);
             
-            setValue(date);
+            setValue(translated);
         }
         catch (ValidatorException e)
         {

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownTimePicker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownTimePicker.java?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownTimePicker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownTimePicker.java Wed Mar 21 10:43:10 2007
@@ -13,11 +13,6 @@
 // limitations under the License.
 package org.apache.tapestry.dojo.form;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.tapestry.IMarkupWriter;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.IScript;
@@ -29,6 +24,9 @@
 import org.apache.tapestry.json.JSONObject;
 import org.apache.tapestry.valid.ValidatorException;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * Implementation of the dojo DropdownTimePicker widget as a tapestry
  * component. Wraps a form input field with a date picker icon next to it
@@ -38,12 +36,11 @@
  */
 public abstract class DropdownTimePicker extends AbstractFormWidget implements TranslatedField
 {
-    private static final SimpleDateFormat RFC3339_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
     
     /** parameter. */
-    public abstract Date getValue();
+    public abstract Object getValue();
     
-    public abstract void setValue(Date value);
+    public abstract void setValue(Object value);
     
     public abstract boolean isDisabled();
     
@@ -82,11 +79,11 @@
         json.put("inputId", getClientId());
         json.put("inputName", getName());
         json.put("iconAlt", getIconAlt());
-        json.put("displayFormat", translator.getPattern());
-        json.put("saveFormat", translator.getPattern());
+        json.put("displayFormat", translator.getPattern(getPage().getLocale()));
+        json.put("saveFormat", translator.getPattern(getPage().getLocale()));
         
         if (getValue() != null) {
-            json.put("value", RFC3339_FORMAT.format(getValue()));
+            json.put("value", translator.formatRfc3339(getValue()));
         }
         
         json.put("disabled", isDisabled());
@@ -108,11 +105,11 @@
         
         try
         {
-            Date date = (Date) getTranslatedFieldSupport().parse(this, value);
+            Object translated = getTranslatedFieldSupport().parse(this, value);
             
-            getValidatableFieldSupport().validate(this, writer, cycle, date);
+            getValidatableFieldSupport().validate(this, writer, cycle, translated);
             
-            setValue(date);
+            setValue(translated);
         }
         catch (ValidatorException e)
         {

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java Wed Mar 21 10:43:10 2007
@@ -14,11 +14,6 @@
 
 package org.apache.tapestry.form.translator;
 
-import java.text.DateFormatSymbols;
-import java.text.Format;
-import java.text.SimpleDateFormat;
-import java.util.Locale;
-
 import org.apache.hivemind.util.PropertyUtils;
 import org.apache.tapestry.IMarkupWriter;
 import org.apache.tapestry.IRequestCycle;
@@ -30,6 +25,11 @@
 import org.apache.tapestry.valid.ValidationConstraint;
 import org.apache.tapestry.valid.ValidationStrings;
 
+import java.text.DateFormatSymbols;
+import java.text.Format;
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+
 /**
  * A {@link java.text.SimpleDateFormat}-based {@link Translator} implementation.
  * 
@@ -39,6 +39,8 @@
 public class DateTranslator extends FormatTranslator
 {
     private boolean _lenient=true;
+
+    protected SimpleDateFormat _rfc339Format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
     
     public DateTranslator()
     {
@@ -65,7 +67,19 @@
     {
         return getDateFormat(locale);
     }
-    
+
+    /**
+     * Get the RFC339 equivalent for the given object.
+     *
+     * @param input The object to be formatted.
+     * 
+     * @return A string value compliant with rfc339 internet time.
+     */
+    public String formatRfc3339(Object input)
+    {
+        return _rfc339Format.format(input);
+    }
+
     public SimpleDateFormat getDateFormat(Locale locale)
     {
         SimpleDateFormat ret = new SimpleDateFormat(getPattern(), new DateFormatSymbols(locale));

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java Wed Mar 21 10:43:10 2007
@@ -14,10 +14,6 @@
 
 package org.apache.tapestry.form.translator;
 
-import java.text.Format;
-import java.text.ParseException;
-import java.util.Locale;
-
 import org.apache.hivemind.HiveMind;
 import org.apache.hivemind.util.PropertyUtils;
 import org.apache.tapestry.form.IFormComponent;
@@ -25,6 +21,10 @@
 import org.apache.tapestry.valid.ValidationConstraint;
 import org.apache.tapestry.valid.ValidatorException;
 
+import java.text.Format;
+import java.text.ParseException;
+import java.util.Locale;
+
 /**
  * Abstract {@link Translator} implementation for {@link java.text.Format}-based translators.
  * 
@@ -101,5 +101,17 @@
     public void setPattern(String pattern)
     {
         _pattern = pattern;
+    }
+
+    /**
+     * Gets the pattern encapsulated by this translator, subclasses may optionally use the
+     * passed in {@link Locale} to return patterns specific to that locale.
+     * 
+     * @param locale The locale to use to format the pattern, if applicable.
+     * @return The pattern used to format/parse objects.
+     */
+    public String getPattern(Locale locale)
+    {
+        return _pattern;
     }
 }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestDropdownTimePicker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestDropdownTimePicker.java?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestDropdownTimePicker.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestDropdownTimePicker.java Wed Mar 21 10:43:10 2007
@@ -13,28 +13,20 @@
 // limitations under the License.
 package org.apache.tapestry.dojo.form;
 
-import static org.easymock.EasyMock.checkOrder;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.isA;
-
-import java.util.Date;
-import java.util.Map;
-
-import org.apache.tapestry.IForm;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IPage;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.IScript;
-import org.apache.tapestry.PageRenderSupport;
+import org.apache.tapestry.*;
 import org.apache.tapestry.form.BaseFormComponentTestCase;
 import org.apache.tapestry.form.MockDelegate;
 import org.apache.tapestry.form.ValidatableFieldSupport;
 import org.apache.tapestry.form.translator.DateTranslator;
 import org.apache.tapestry.json.JSONObject;
 import org.apache.tapestry.services.ResponseBuilder;
+import static org.easymock.EasyMock.*;
 import org.testng.annotations.Test;
 
+import java.util.Date;
+import java.util.Locale;
+import java.util.Map;
+
 
 /**
  * Tests functionality of {@link DropdownTimePicker} component.
@@ -56,6 +48,7 @@
         IForm form = newMock(IForm.class);
         checkOrder(form, false);
         IPage page = newPage();
+        Locale locale = Locale.getDefault();
         
         MockDelegate delegate = new MockDelegate();
         
@@ -98,7 +91,9 @@
         expect(resp.isDynamic()).andReturn(false).anyTimes();
         
         vfs.renderContributions(component, writer, cycle);
-        
+
+        expect(page.getLocale()).andReturn(locale).anyTimes();
+
         PageRenderSupport prs = newPageRenderSupport();
         trainGetPageRenderSupport(cycle, prs);
         

Modified: tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-portlet/tapestry-portlet.iml Wed Mar 21 10:43:10 2007
@@ -13,7 +13,6 @@
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="tapestry" />
-    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntry type="module-library">
       <library name="Maven Dependency: backport-util-concurrent:backport-util-concurrent:jar:2.2:compile">
         <CLASSES>
@@ -278,6 +277,7 @@
         <SOURCES />
       </library>
     </orderEntry>
+    <orderEntry type="module" module-name="tapestry-framework" />
     <orderEntryProperties />
   </component>
 </module>

Modified: tapestry/tapestry4/trunk/tapestry.iws
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry.iws?view=diff&rev=520958&r1=520957&r2=520958
==============================================================================
--- tapestry/tapestry4/trunk/tapestry.iws (original)
+++ tapestry/tapestry4/trunk/tapestry.iws Wed Mar 21 10:43:10 2007
@@ -18,9 +18,17 @@
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry.iws" afterPath="$PROJECT_DIR$/tapestry.iws" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/spec/PropertySpecification.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/spec/PropertySpecification.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/resolver/PageSpecificationResolverImpl.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/resolver/PageSpecificationResolverImpl.java" />
-      <change type="DELETED" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/engine/IComponentClassEnhancer.java" afterPath="" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-annotations/tapestry-annotations.iml" afterPath="$PROJECT_DIR$/tapestry-annotations/tapestry-annotations.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-examples/TimeTracker/TimeTracker.iml" afterPath="$PROJECT_DIR$/tapestry-examples/TimeTracker/TimeTracker.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-examples/Workbench/Workbench.iml" afterPath="$PROJECT_DIR$/tapestry-examples/Workbench/Workbench.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownDatePicker.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownDatePicker.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestDropdownTimePicker.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestDropdownTimePicker.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-contrib/tapestry-contrib.iml" afterPath="$PROJECT_DIR$/tapestry-contrib/tapestry-contrib.iml" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownTimePicker.java" afterPath="$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownTimePicker.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/tapestry-portlet/tapestry-portlet.iml" afterPath="$PROJECT_DIR$/tapestry-portlet/tapestry-portlet.iml" />
     </list>
   </component>
   <component name="ChangesViewManager" flattened_view="true" />
@@ -216,7 +224,7 @@
       <showLibraryContents />
       <hideEmptyPackages />
       <abbreviatePackageNames />
-      <showStructure Favorites="false" PackagesPane="false" Scope="false" ProjectPane="false" />
+      <showStructure Favorites="false" ProjectPane="false" Scope="false" PackagesPane="false" />
       <autoscrollToSource />
       <autoscrollFromSource />
       <sortByType />
@@ -232,6 +240,7 @@
     <property name="MemberChooser.sorted" value="false" />
     <property name="MemberChooser.showClasses" value="true" />
     <property name="GoToClass.includeLibraries" value="false" />
+    <property name="GoToClass.includeJavaFiles" value="false" />
     <property name="Web Module Deployment Descriptor Default Version" value="2.3" />
     <property name="MemberChooser.copyJavadoc" value="false" />
   </component>
@@ -239,105 +248,15 @@
     <option name="SHOW_DIALOG" value="true" />
   </component>
   <component name="RecentsManager" />
-  <component name="RestoreUpdateTree">
-    <UpdateInfo date="3/18/07 7:32 PM" ActionInfo="_Update">
-      <UpdatedFiles>
-        <FILE-GROUP>
-          <option name="myUpdateName" value="Updated from server" />
-          <option name="myStatusName" value="Changed on server" />
-          <option name="mySupportsDeletion" value="false" />
-          <option name="myCanBeAbsent" value="false" />
-          <option name="myId" value="CHANGED_ON_SERVER" />
-          <FILE-GROUP>
-            <option name="myUpdateName" value="Updated" />
-            <option name="myStatusName" value="Changed" />
-            <option name="mySupportsDeletion" value="false" />
-            <option name="myCanBeAbsent" value="false" />
-            <option name="myId" value="UPDATED" />
-          </FILE-GROUP>
-          <FILE-GROUP>
-            <option name="myUpdateName" value="Created" />
-            <option name="myStatusName" value="Created" />
-            <option name="mySupportsDeletion" value="false" />
-            <option name="myCanBeAbsent" value="false" />
-            <option name="myId" value="CREATED" />
-          </FILE-GROUP>
-          <FILE-GROUP>
-            <option name="myUpdateName" value="Deleted" />
-            <option name="myStatusName" value="Deleted" />
-            <option name="mySupportsDeletion" value="false" />
-            <option name="myCanBeAbsent" value="true" />
-            <option name="myId" value="REMOVED_FROM_REPOSITORY" />
-          </FILE-GROUP>
-          <FILE-GROUP>
-            <option name="myUpdateName" value="Restored" />
-            <option name="myStatusName" value="Will be restored" />
-            <option name="mySupportsDeletion" value="false" />
-            <option name="myCanBeAbsent" value="false" />
-            <option name="myId" value="RESTORED" />
-            <PATH>$PROJECT_DIR$/tapestry-examples/Workbench/src/config/jetty6.xml</PATH>
-          </FILE-GROUP>
-        </FILE-GROUP>
-        <FILE-GROUP>
-          <option name="myUpdateName" value="Modified" />
-          <option name="myStatusName" value="Modified" />
-          <option name="mySupportsDeletion" value="false" />
-          <option name="myCanBeAbsent" value="false" />
-          <option name="myId" value="MODIFIED" />
-        </FILE-GROUP>
-        <FILE-GROUP>
-          <option name="myUpdateName" value="Skipped" />
-          <option name="myStatusName" value="Skipped" />
-          <option name="mySupportsDeletion" value="false" />
-          <option name="myCanBeAbsent" value="false" />
-          <option name="myId" value="SKIPPED" />
-        </FILE-GROUP>
-        <FILE-GROUP>
-          <option name="myUpdateName" value="Merged with conflicts" />
-          <option name="myStatusName" value="Will be merged with conflicts" />
-          <option name="mySupportsDeletion" value="false" />
-          <option name="myCanBeAbsent" value="false" />
-          <option name="myId" value="MERGED_WITH_CONFLICTS" />
-        </FILE-GROUP>
-        <FILE-GROUP>
-          <option name="myUpdateName" value="Merged" />
-          <option name="myStatusName" value="Will be merged" />
-          <option name="mySupportsDeletion" value="false" />
-          <option name="myCanBeAbsent" value="false" />
-          <option name="myId" value="MERGED" />
-        </FILE-GROUP>
-        <FILE-GROUP>
-          <option name="myUpdateName" value="Not in repository" />
-          <option name="myStatusName" value="Not in repository" />
-          <option name="mySupportsDeletion" value="true" />
-          <option name="myCanBeAbsent" value="false" />
-          <option name="myId" value="UNKNOWN" />
-        </FILE-GROUP>
-        <FILE-GROUP>
-          <option name="myUpdateName" value="Locally added" />
-          <option name="myStatusName" value="Locally added" />
-          <option name="mySupportsDeletion" value="false" />
-          <option name="myCanBeAbsent" value="false" />
-          <option name="myId" value="LOCALLY_ADDED" />
-        </FILE-GROUP>
-        <FILE-GROUP>
-          <option name="myUpdateName" value="Locally removed" />
-          <option name="myStatusName" value="Locally removed" />
-          <option name="mySupportsDeletion" value="false" />
-          <option name="myCanBeAbsent" value="false" />
-          <option name="myId" value="LOCALLY_REMOVED" />
-        </FILE-GROUP>
-      </UpdatedFiles>
-    </UpdateInfo>
-  </component>
-  <component name="RunManager" selected="TestNG.TestRequestLocaleManager">
-    <tempConfiguration default="false" name="TestRequestLocaleManager" type="TestNG" factoryName="TestNG" enabled="false" merge="false">
+  <component name="RestoreUpdateTree" />
+  <component name="RunManager" selected="TestNG.TestDropdownTimePicker">
+    <tempConfiguration default="false" name="TestDropdownTimePicker" type="TestNG" factoryName="TestNG" enabled="false" merge="false">
       <module name="tapestry-framework" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
       <option name="ALTERNATIVE_JRE_PATH" />
       <option name="SUITE_NAME" />
-      <option name="PACKAGE_NAME" value="org.apache.tapestry.services.impl" />
-      <option name="MAIN_CLASS_NAME" value="org.apache.tapestry.services.impl.TestRequestLocaleManager" />
+      <option name="PACKAGE_NAME" value="org.apache.tapestry.dojo.form" />
+      <option name="MAIN_CLASS_NAME" value="org.apache.tapestry.dojo.form.TestDropdownTimePicker" />
       <option name="METHOD_NAME" />
       <option name="GROUP_NAME" />
       <option name="TEST_OBJECT" value="CLASS" />
@@ -357,17 +276,22 @@
         <option name="Make" value="true" />
       </method>
     </tempConfiguration>
-    <configuration default="true" type="Applet" factoryName="Applet">
-      <module name="" />
+    <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
       <option name="MAIN_CLASS_NAME" />
-      <option name="HTML_FILE_NAME" />
-      <option name="HTML_USED" value="false" />
-      <option name="WIDTH" value="400" />
-      <option name="HEIGHT" value="300" />
-      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
       <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
       <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <module name="" />
+    </configuration>
+    <configuration default="true" type="Remote" factoryName="Remote">
+      <option name="USE_SOCKET_TRANSPORT" value="true" />
+      <option name="SERVER_MODE" value="false" />
+      <option name="SHMEM_ADDRESS" value="javadebug" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="5005" />
     </configuration>
     <configuration default="true" type="TestNG" factoryName="TestNG" enabled="false" merge="false">
       <module name="" />
@@ -409,22 +333,17 @@
         <value defaultName="wholeProject" />
       </option>
     </configuration>
-    <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
+    <configuration default="true" type="Applet" factoryName="Applet">
+      <module name="" />
       <option name="MAIN_CLASS_NAME" />
+      <option name="HTML_FILE_NAME" />
+      <option name="HTML_USED" value="false" />
+      <option name="WIDTH" value="400" />
+      <option name="HEIGHT" value="300" />
+      <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
       <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
       <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
-      <module name="" />
-    </configuration>
-    <configuration default="true" type="Remote" factoryName="Remote">
-      <option name="USE_SOCKET_TRANSPORT" value="true" />
-      <option name="SERVER_MODE" value="false" />
-      <option name="SHMEM_ADDRESS" value="javadebug" />
-      <option name="HOST" value="localhost" />
-      <option name="PORT" value="5005" />
     </configuration>
     <configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
       <Host>localhost</Host>
@@ -497,7 +416,7 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="67" y="150" width="2112" height="1362" extended-state="0" />
+    <frame x="116" y="135" width="2112" height="1362" extended-state="0" />
     <editor active="false" />
     <layout>
       <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
@@ -516,7 +435,7 @@
       <window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
       <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
       <window_info id="File View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
-      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.21616359" order="0" />
+      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.21957156" order="0" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="2" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="6" />
       <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25892118" order="2" />
@@ -541,7 +460,7 @@
     <option name="PERFORM_COMMIT_IN_BACKGROUND" value="false" />
     <option name="PUT_FOCUS_INTO_COMMENT" value="false" />
     <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
-    <option name="LAST_COMMIT_MESSAGE" value="Minor coide cleanups. Removed unused / deprecated for 4.1 interface." />
+    <option name="LAST_COMMIT_MESSAGE" value="Fixes TAPESTRY-1378. &#10;&#10;The dropdown Date/Time pickers had specific java.util.Date bindings that made it impossible to use any other date objects (like Joda ). Refactored these components and the associated DateTranslator to make it possible to substitute the less well liked Date object with something else.." />
     <option name="SAVE_LAST_COMMIT_MESSAGE" value="true" />
     <option name="CHECKIN_DIALOG_SPLITTER_PROPORTION" value="0.8" />
     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
@@ -563,6 +482,7 @@
     <MESSAGE value="Fixes TAPESTRY-937. Simple stupid indexOf check using &gt; 1 instead of &gt; -1. I'm sure I added this bug at some point." />
     <MESSAGE value="Fixes TAPESTRY-996.&#10;&#10;RequestLocaleManager was being extremely picky about incoming locale requests matching filtered locales if the filtered list didn't contain exact matches when the original filter list has country/language specific listings only." />
     <MESSAGE value="Minor coide cleanups. Removed unused / deprecated for 4.1 interface." />
+    <MESSAGE value="Fixes TAPESTRY-1378. &#10;&#10;The dropdown Date/Time pickers had specific java.util.Date bindings that made it impossible to use any other date objects (like Joda ). Refactored these components and the associated DateTranslator to make it possible to substitute the less well liked Date object with something else.." />
   </component>
   <component name="antWorkspaceConfiguration">
     <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
@@ -571,121 +491,115 @@
   <component name="com.intellij.ide.util.scopeChooser.ScopeChooserConfigurable" proportions="0.16666667" version="1">
     <option name="myLastEditedConfigurable" value="Shared Scopes" />
   </component>
-  <component name="com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectRootMasterDetailsConfigurable" proportions="0.22673559,0.5" version="1">
+  <component name="com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectRootMasterDetailsConfigurable" proportions="0.22673559" version="1">
     <option name="myPlainMode" value="false" />
-    <option name="myLastEditedConfigurable" value="tapestry-contrib" />
+    <option name="myLastEditedConfigurable" value="tapestry-portlet" />
   </component>
   <component name="com.intellij.profile.ui.ErrorOptionsConfigurable" proportions="0.16666667,0.5642857" version="1">
     <option name="myLastEditedConfigurable" value="Project Default" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/src/context/Home.html">
-      <provider editor-type-id="HtmlPreview">
-        <state />
-      </provider>
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/TranslatedField.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="43" column="11" selection-start="1531" selection-end="1531" vertical-scroll-proportion="0.3728223">
+        <state line="25" column="15" selection-start="806" selection-end="806" vertical-scroll-proportion="0.1660988">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-examples/Workbench/src/context/Dates.html">
-      <provider editor-type-id="HtmlPreview">
-        <state />
-      </provider>
+    <entry file="jar:///usr/local/jdk1.6.0/src.zip!/java/text/Format.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="18" column="8" selection-start="487" selection-end="487" vertical-scroll-proportion="0.23519164">
+        <state line="160" column="33" selection-start="6506" selection-end="6506" vertical-scroll-proportion="0.33304942">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/PropertySelection.java">
+    <entry file="jar:///usr/local/jdk1.6.0/src.zip!/java/text/SimpleDateFormat.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="47" column="4" selection-start="2214" selection-end="2214" vertical-scroll-proportion="0.4088586">
+        <state line="850" column="42" selection-start="30898" selection-end="30898" vertical-scroll-proportion="0.46763203">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/RequestLocaleManagerImpl.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/translator/Translator.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="115" column="0" selection-start="3646" selection-end="3646" vertical-scroll-proportion="0.34497446">
+        <state line="39" column="0" selection-start="1487" selection-end="1487" vertical-scroll-proportion="0.26831347">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/services/impl/TestRequestLocaleManager.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/pom.xml">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="223" column="0" selection-start="6092" selection-end="6092" vertical-scroll-proportion="0.7572402">
+        <state line="139" column="0" selection-start="5013" selection-end="5013" vertical-scroll-proportion="0.4088586">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/spec/ApplicationSpecification.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/translator/DateTranslator.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="36" column="21" selection-start="1161" selection-end="1161" vertical-scroll-proportion="0.30664396">
+        <state line="43" column="4" selection-start="1591" selection-end="1591" vertical-scroll-proportion="0.21720614">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/ComponentMessagesSource.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/form/translator/TestDateTranslator.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="32" column="0" selection-start="987" selection-end="987" vertical-scroll-proportion="0.2427598">
+        <state line="108" column="0" selection-start="3147" selection-end="3147" vertical-scroll-proportion="0.2810903">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/ApplicationSpecificationInitializer.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/form/translator/FormatTranslator.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="111" column="5" selection-start="3829" selection-end="3829" vertical-scroll-proportion="0.41226575">
+        <state line="104" column="0" selection-start="3153" selection-end="3153" vertical-scroll-proportion="0.7572402">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/resolver/ISpecificationResolverDelegate.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownDatePicker.script">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="32" column="1" selection-start="1161" selection-end="1161" vertical-scroll-proportion="0.22998296">
+        <state line="17" column="0" selection-start="625" selection-end="625" vertical-scroll-proportion="0.21720614">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/resolver/AbstractSpecificationResolver.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownTimePicker.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="41" column="27" selection-start="1428" selection-end="1428" vertical-scroll-proportion="0.2938671">
+        <state line="137" column="0" selection-start="4714" selection-end="4714" vertical-scroll-proportion="0.923339">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/spec/PropertySpecification.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/dojo/form/DropdownDatePicker.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="67" column="21" selection-start="1825" selection-end="1825" vertical-scroll-proportion="0.39608178">
+        <state line="83" column="8" selection-start="3113" selection-end="3113" vertical-scroll-proportion="0.3100511">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentPropertySourceImpl.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/AbstractComponent.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="40" column="13" selection-start="1422" selection-end="1422" vertical-scroll-proportion="0.17887564">
+        <state line="520" column="0" selection-start="13715" selection-end="13715" vertical-scroll-proportion="0.051959112">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/services/impl/ComponentMessagesSourceImpl.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/test/org/apache/tapestry/dojo/form/TestDropdownTimePicker.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="266" column="0" selection-start="8947" selection-end="8947" vertical-scroll-proportion="0.42163545">
+        <state line="93" column="0" selection-start="3221" selection-end="3221" vertical-scroll-proportion="0.5528109">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/resolver/ComponentSpecificationResolverImpl.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-annotations/src/java/org/apache/tapestry/annotations/EventListenerAnnotationWorker.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="242" column="0" selection-start="8743" selection-end="8743" vertical-scroll-proportion="0.19505963">
+        <state line="59" column="8" selection-start="2091" selection-end="2091" vertical-scroll-proportion="0.5238501">
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/tapestry-framework/src/java/org/apache/tapestry/resolver/PageSpecificationResolverImpl.java">
+    <entry file="file://$PROJECT_DIR$/tapestry-examples/TimeTracker/src/java/org/apache/tapestry/timetracker/servlet/ConfigurationServlet.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state line="174" column="40" selection-start="5871" selection-end="5871" vertical-scroll-proportion="0.64224875">
+        <state line="27" column="4" selection-start="1010" selection-end="1010" vertical-scroll-proportion="0.14054514">
           <folding />
         </state>
       </provider>