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:&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")));
 	}
 
 	/**