You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/09/20 11:30:01 UTC
svn commit: r816995 - in /wicket/trunk:
wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/
wicket-examples/src/main/java/org/apache/wicket/examples/dates/
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:
<form wicket:id="form"><input type="text"
wicket:id="dateTextField" /> <input type="submit" value="submit" /></form>
</p>
+
+<br/>
+<p>
+Example using DateTimeField:
+<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")));
}
/**