Author: jdonnerstag
Date: Sun Sep 20 09:29:53 2009
New Revision: 816995

URL: http://svn.apache.org/viewvc?rev=816995&view=rev
Log:
Without a stacktrace I could find the problem. Its all looking good. But some 
minor cleanup.

WICKET-2479: NPE when clearing DateTimeField

Modified:
    
wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
    
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.html
    
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java

Modified: 
wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java?rev=816995&r1=816994&r2=816995&view=diff
==============================================================================
--- 
wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
 (original)
+++ 
wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java
 Sun Sep 20 09:29:53 2009
@@ -35,7 +35,6 @@
 import org.apache.wicket.request.ClientInfo;
 import org.apache.wicket.util.convert.IConverter;
 import org.apache.wicket.util.convert.converters.ZeroPaddingIntegerConverter;
-import org.apache.wicket.util.lang.EnumeratedType;
 import org.apache.wicket.validation.validator.RangeValidator;
 import org.joda.time.DateTimeFieldType;
 import org.joda.time.DateTimeZone;
@@ -53,33 +52,34 @@
  */
 public class DateTimeField extends FormComponentPanel<Date>
 {
+       private static final long serialVersionUID = 1L;
+
        /**
         * Enumerated type for different ways of handling the render part of 
requests.
         */
-       // enums are mucho nicer, but let's keep this project at 1.4 for now
-       private static class AM_PM extends EnumeratedType
-       {
-               private static final long serialVersionUID = 1L;
+       private static enum AM_PM {
+               AM("AM"), PM("PM");
 
-               static final AM_PM AM = new AM_PM("AM");
+               /** */
+               private String value;
 
-               static final AM_PM PM = new AM_PM("PM");
-
-               public static AM_PM[] values()
+               AM_PM(final String name)
                {
-                       return new AM_PM[] { AM, PM };
+                       value = name;
                }
 
-               private AM_PM(final String name)
+               /**
+                * @see java.lang.Enum#toString()
+                */
+               @Override
+               public String toString()
                {
-                       super(name);
+                       return value;
                }
        }
 
        private static final IConverter MINUTES_CONVERTER = new 
ZeroPaddingIntegerConverter(2);
 
-       private static final long serialVersionUID = 1L;
-
        private AM_PM amOrPm = AM_PM.AM;
 
        private DropDownChoice<AM_PM> amOrPmChoice;
@@ -101,7 +101,7 @@
         * 
         * @param id
         */
-       public DateTimeField(String id)
+       public DateTimeField(final String id)
        {
                this(id, null);
        }
@@ -112,9 +112,10 @@
         * @param id
         * @param model
         */
-       public DateTimeField(String id, IModel<Date> model)
+       public DateTimeField(final String id, final IModel<Date> model)
        {
                super(id, model);
+
                setType(Date.class);
                PropertyModel<Date> dateFieldModel = new 
PropertyModel<Date>(this, "date");
                add(dateField = newDateTextField("date", dateFieldModel));
@@ -181,9 +182,13 @@
                return hours;
        }
 
-       protected void configure(Map widgetProperties)
+       /**
+        * TODO comment
+        * 
+        * @param widgetProperties
+        */
+       protected void configure(Map< ? , ? > widgetProperties)
        {
-
        }
 
        /**
@@ -213,7 +218,7 @@
         * @param amOrPm
         *            amOrPm
         */
-       public void setAmOrPm(AM_PM amOrPm)
+       public void setAmOrPm(final AM_PM amOrPm)
        {
                this.amOrPm = amOrPm;
        }
@@ -224,7 +229,7 @@
         * @param date
         *            date
         */
-       public void setDate(Date date)
+       public void setDate(final Date date)
        {
                if (date == null)
                {
@@ -236,17 +241,18 @@
                }
 
                this.date = new MutableDateTime(date);
-               setDefaultModelObject(date);
 
                Integer hours = getHours();
-               Integer minutes = getMinutes();
-               boolean use12HourFormat = use12HourFormat();
                if (hours != null)
                {
+                       boolean use12HourFormat = use12HourFormat();
                        this.date.set(DateTimeFieldType.hourOfDay(), 
hours.intValue() %
                                        (use12HourFormat ? 12 : 24));
+
+                       Integer minutes = getMinutes();
                        this.date.setMinuteOfHour((minutes != null) ? 
minutes.intValue() : 0);
                }
+
                setDefaultModelObject(this.date.toDate());
        }
 
@@ -256,7 +262,7 @@
         * @param hours
         *            hours
         */
-       public void setHours(Integer hours)
+       public void setHours(final Integer hours)
        {
                this.hours = hours;
        }
@@ -267,7 +273,7 @@
         * @param minutes
         *            minutes
         */
-       public void setMinutes(Integer minutes)
+       public void setMinutes(final Integer minutes)
        {
                this.minutes = minutes;
        }
@@ -346,6 +352,13 @@
                }
        }
 
+       /**
+        * 
+        * @param to
+        * @param from
+        * @param instant
+        * @return millis
+        */
        private long getMillis(TimeZone to, TimeZone from, long instant)
        {
                return 
DateTimeZone.forTimeZone(from).getMillisKeepLocal(DateTimeZone.forTimeZone(to),
@@ -353,23 +366,13 @@
        }
 
        /**
-        * @deprecated replaced by {...@link #newDateTextField(String, 
PropertyModel)}
-        */
-       // TODO remove after deprecation release
-       @Deprecated
-       protected final DateTextField newDateTextField(PropertyModel 
dateFieldModel)
-       {
-               throw new UnsupportedOperationException();
-       }
-
-       /**
         * create a new {...@link DateTextField} instance to be added to this 
panel.
         * 
         * @param dateFieldModel
         *            model that should be used by the {...@link DateTextField}
         * @return a new date text field instance
         */
-       protected DateTextField newDateTextField(String id, PropertyModel 
dateFieldModel)
+       protected DateTextField newDateTextField(String id, PropertyModel<Date> 
dateFieldModel)
        {
                return new DateTextField(id, dateFieldModel, new 
StyleDateConverter(false));
        }
@@ -384,12 +387,6 @@
                hoursField.setRequired(isRequired());
                minutesField.setRequired(isRequired());
 
-               // obsolete with WICKET-1919
-               // dateField.setEnabled(isEnabledInHierarchy());
-               // hoursField.setEnabled(isEnabledInHierarchy());
-               // minutesField.setEnabled(isEnabledInHierarchy());
-               // amOrPmChoice.setEnabled(isEnabledInHierarchy());
-
                boolean use12HourFormat = use12HourFormat();
                amOrPmChoice.setVisible(use12HourFormat);
 

Modified: 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.html?rev=816995&r1=816994&r2=816995&view=diff
==============================================================================
--- 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.html
 (original)
+++ 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.html
 Sun Sep 20 09:29:53 2009
@@ -16,11 +16,23 @@
        wicket:id="localeUSLink">set to english</a>]</p>
 </form>
 <p>
+Example using DateTextField:&nbsp;
 <form wicket:id="form"><input type="text"
        wicket:id="dateTextField" /> <input type="submit" value="submit" 
/></form>
 </p>
+
+<br/>
+<p>
+Example using DateTimeField:&nbsp;
+<form wicket:id="form2">
+<span wicket:id="dateTimeField"></span>
+<input type="submit" value="submit" />
+</form>
+</p>
+
 <p>
        <div wicket:id="feedback"></div>
 </p>
+
 </body>
 </html>

Modified: 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java?rev=816995&r1=816994&r2=816995&view=diff
==============================================================================
--- 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java
 (original)
+++ 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/dates/DatesPage.java
 Sun Sep 20 09:29:53 2009
@@ -1,5 +1,6 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
+
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You under the Apache License, Version 2.0
@@ -29,6 +30,7 @@
 import org.apache.wicket.datetime.markup.html.form.DateTextField;
 import org.apache.wicket.examples.WicketExamplePage;
 import org.apache.wicket.extensions.yui.calendar.DatePicker;
+import org.apache.wicket.extensions.yui.calendar.DateTimeField;
 import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.form.Form;
@@ -130,6 +132,7 @@
        }
 
        private final Date date = new Date();
+       private final Date date2 = new Date();
 
        private Locale selectedLocale = LOCALE_EN;
 
@@ -139,7 +142,7 @@
        public DatesPage()
        {
                selectedLocale = Session.get().getLocale();
-               Form<?> localeForm = new Form("localeForm");
+               Form<?> localeForm = new Form<Void>("localeForm");
                localeForm.add(new LocaleDropDownChoice("localeSelect"));
                localeForm.add(new Link("localeUSLink")
                {
@@ -159,7 +162,7 @@
                                return selectedLocale;
                        }
                };
-               Form<?> form = new Form("form")
+               Form<?> form = new Form<Void>("form")
                {
                        @Override
                        protected void onSubmit()
@@ -171,6 +174,17 @@
                form.add(dateTextField);
                dateTextField.add(new DatePicker());
                add(new FeedbackPanel("feedback"));
+
+               Form<?> form2 = new Form<Void>("form2")
+               {
+                       @Override
+                       protected void onSubmit()
+                       {
+                               info("set date2 to " + date2);
+                       }
+               };
+               add(form2);
+               form2.add(new DateTimeField("dateTimeField", new 
PropertyModel<Date>(this, "date2")));
        }
 
        /**


Reply via email to