You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2010/11/22 19:23:28 UTC

svn commit: r1037818 - in /wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket: datetime/ datetime/markup/html/basic/ datetime/markup/html/form/ extensions/yui/calendar/

Author: mgrigorov
Date: Mon Nov 22 18:23:28 2010
New Revision: 1037818

URL: http://svn.apache.org/viewvc?rev=1037818&view=rev
Log:
WICKET-1568 contribution for wicket 1.5 generics (IConverter)

Add generics to DateTime converters

While here:
- fix some javadoc warnings
- remove the deprecated DatePicker#configureWidgetProperties(Map) (also deprecated in 1.4.x)

Modified:
    wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java
    wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
    wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java
    wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java
    wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java
    wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
    wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java

Modified: wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java?rev=1037818&r1=1037817&r2=1037818&view=diff
==============================================================================
--- wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java (original)
+++ wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java Mon Nov 22 18:23:28 2010
@@ -44,7 +44,7 @@ import org.joda.time.format.DateTimeForm
  * 
  * @author eelcohillenius
  */
-public abstract class DateConverter implements IConverter
+public abstract class DateConverter implements IConverter<Date>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -109,7 +109,7 @@ public abstract class DateConverter impl
 				if (result < 0)
 				{
 					throw new ConversionException(new ParseException("unable to parse date " +
-							value, ~result));
+						value, ~result));
 				}
 			}
 			catch (RuntimeException e)
@@ -138,9 +138,9 @@ public abstract class DateConverter impl
 	 * @see org.apache.wicket.util.convert.IConverter#convertToString(java.lang.Object,
 	 *      java.util.Locale)
 	 */
-	public String convertToString(Object value, Locale locale)
+	public String convertToString(Date value, Locale locale)
 	{
-		DateTime dt = new DateTime(((Date)value).getTime(), getTimeZone());
+		DateTime dt = new DateTime((value).getTime(), getTimeZone());
 		DateTimeFormatter format = getFormat();
 
 		if (applyTimeZoneDifference)

Modified: wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java?rev=1037818&r1=1037817&r2=1037818&view=diff
==============================================================================
--- wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java (original)
+++ wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java Mon Nov 22 18:23:28 2010
@@ -33,8 +33,8 @@ import org.joda.time.format.DateTimeForm
 
 
 /**
- * A label that is mapped to a <code>java.util.Date</code> object and that uses Joda time to
- * format values.
+ * A label that is mapped to a <code>java.util.Date</code> object and that uses Joda time to format
+ * values.
  * <p>
  * You can provide a date pattern in two of the constructors. When not provided,
  * {@link DateTimeFormat#shortDate()} will be used.
@@ -248,11 +248,17 @@ public class DateLabel extends Label
 	/**
 	 * Returns the specialized converter.
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
-	public IConverter getConverter(Class clazz)
+	public <C> IConverter<C> getConverter(Class<C> clazz)
 	{
-		return converter;
+		if (Date.class.isAssignableFrom(clazz))
+		{
+			return (IConverter<C>)converter;
+		}
+		else
+		{
+			return super.getConverter(clazz);
+		}
 	}
 
 	/**

Modified: wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java?rev=1037818&r1=1037817&r2=1037818&view=diff
==============================================================================
--- wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java (original)
+++ wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java Mon Nov 22 18:23:28 2010
@@ -22,8 +22,8 @@ import java.util.Date;
 import org.apache.wicket.datetime.DateConverter;
 import org.apache.wicket.datetime.PatternDateConverter;
 import org.apache.wicket.datetime.StyleDateConverter;
-import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.markup.html.form.AbstractTextComponent.ITextFormatProvider;
+import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.util.convert.IConverter;
 import org.joda.time.DateTime;
@@ -219,9 +219,16 @@ public class DateTextField extends TextF
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
-	public final IConverter getConverter(Class clazz)
+	public final <C> IConverter<C> getConverter(Class<C> clazz)
 	{
-		return converter;
+		if (Date.class.isAssignableFrom(clazz))
+		{
+			return (IConverter<C>)converter;
+		}
+		else
+		{
+			return super.getConverter(clazz);
+		}
 	}
 
 	/**

Modified: wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java?rev=1037818&r1=1037817&r2=1037818&view=diff
==============================================================================
--- wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java (original)
+++ wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java Mon Nov 22 18:23:28 2010
@@ -131,15 +131,18 @@ public abstract class AbstractCalendar e
 
 	/**
 	 * add header contributions for packaged resources.
+	 * 
+	 * @param response
+	 *            the header response to contribute to
 	 */
 	private void contributeDependencies(IHeaderResponse response)
 	{
 		response.renderJavascriptReference(new PackageResourceReference(YuiLib.class,
-				"yahoodomevent/yahoo-dom-event.js"));
+			"yahoodomevent/yahoo-dom-event.js"));
 		response.renderJavascriptReference(new PackageResourceReference(AbstractCalendar.class,
-				"calendar-min.js"));
+			"calendar-min.js"));
 		response.renderCSSReference(new PackageResourceReference(AbstractCalendar.class,
-				"assets/skins/sam/calendar.css"));
+			"assets/skins/sam/calendar.css"));
 	}
 
 	/**
@@ -157,7 +160,7 @@ public abstract class AbstractCalendar e
 	 *            the buffer to append the script to
 	 */
 	protected void appendToInit(String markupId, String javascriptId, String javascriptWidgetId,
-		 StringBuilder b)
+		StringBuilder b)
 	{
 	}
 
@@ -188,7 +191,7 @@ public abstract class AbstractCalendar e
 		String markupId = AbstractCalendar.this.getMarkupId();
 		String javascriptId = getJavascriptId();
 		String javascriptWidgetId = getJavascriptWidgetId();
-	 StringBuilder b = new StringBuilder();
+		StringBuilder b = new StringBuilder();
 		b.append(JavascriptUtils.SCRIPT_OPEN_TAG);
 		// initialize wicket namespace and register the init function
 		// for the YUI widget

Modified: wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java?rev=1037818&r1=1037817&r2=1037818&view=diff
==============================================================================
--- wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java (original)
+++ wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java Mon Nov 22 18:23:28 2010
@@ -130,8 +130,6 @@ public class DateField extends FormCompo
 	 * have to override that anymore).
 	 * </p>
 	 * 
-	 * @return instance of {@link Date}, possibly null
-	 * 
 	 * @see org.apache.wicket.markup.html.form.FormComponent#convertInput()
 	 */
 	@Override
@@ -150,7 +148,7 @@ public class DateField extends FormCompo
 	 * @return a new date text field instance
 	 */
 	protected DateTextField newDateTextField(final String id,
-			final PropertyModel<Date> dateFieldModel)
+		final PropertyModel<Date> dateFieldModel)
 	{
 		return DateTextField.forShortStyle(id, dateFieldModel);
 	}

Modified: wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java?rev=1037818&r1=1037817&r2=1037818&view=diff
==============================================================================
--- wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java (original)
+++ wicket/trunk/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DatePicker.java Mon Nov 22 18:23:28 2010
@@ -31,7 +31,6 @@ import java.util.Map.Entry;
 
 import org.apache.wicket.Application;
 import org.apache.wicket.Component;
-import org.apache.wicket.RuntimeConfigurationType;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -207,7 +206,7 @@ public class DatePicker extends Abstract
 	 * There may be cases when the user wants to use their own version of YUI contribution code, in
 	 * those cases this method should be overridden to return <code>false</code>.
 	 * 
-	 * @return
+	 * @return a flag whether to contribute YUI libraries to the page. {@code true} by default.
 	 */
 	protected boolean includeYUILibraries()
 	{
@@ -418,16 +417,6 @@ public class DatePicker extends Abstract
 	}
 
 	/**
-	 * @deprecated Please use {@link #configure(Map)} instead.
-	 */
-	// TODO remove this very ugly named method
-	@Deprecated
-	protected final void configureWidgetProperties(Map<String, Object> widgetProperties)
-	{
-		throw new UnsupportedOperationException("");
-	}
-
-	/**
 	 * Filter all empty elements (workaround for {@link DateFormatSymbols} returning arrays with
 	 * empty elements).
 	 * 
@@ -479,7 +468,7 @@ public class DatePicker extends Abstract
 
 		if (format == null)
 		{
-			IConverter converter = component.getConverter(DateTime.class);
+			IConverter<?> converter = component.getConverter(DateTime.class);
 			if (!(converter instanceof DateConverter))
 			{
 				converter = component.getConverter(Date.class);
@@ -732,12 +721,13 @@ public class DatePicker extends Abstract
 	}
 
 	/**
-	 * 
+	 * @param show
+	 *            a flag indicating whether to show the picker on click event
+	 * @return {@code this} instance to be able to chain calls
 	 * @see {@link #showOnFieldClick()}
 	 */
 	public DatePicker setShowOnFieldClick(boolean show)
 	{
-
 		showOnFieldClick = show;
 		return this;
 	}

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=1037818&r1=1037817&r2=1037818&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 Mon Nov 22 18:23:28 2010
@@ -78,7 +78,7 @@ public class DateTimeField extends FormC
 		}
 	}
 
-	private static final IConverter MINUTES_CONVERTER = new ZeroPaddingIntegerConverter(2);
+	private static final IConverter<Integer> MINUTES_CONVERTER = new ZeroPaddingIntegerConverter(2);
 
 	private AM_PM amOrPm = AM_PM.AM;
 
@@ -121,25 +121,32 @@ public class DateTimeField extends FormC
 		add(dateField = newDateTextField("date", dateFieldModel));
 		dateField.add(newDatePicker());
 		add(hoursField = new TextField<Integer>("hours", new PropertyModel<Integer>(this, "hours"),
-				Integer.class));
+			Integer.class));
 		hoursField.add(new HoursValidator());
 		hoursField.setLabel(new Model<String>("hours"));
 		add(minutesField = new TextField<Integer>("minutes", new PropertyModel<Integer>(this,
-				"minutes"), Integer.class)
+			"minutes"), Integer.class)
 		{
 			private static final long serialVersionUID = 1L;
 
 			@SuppressWarnings("unchecked")
 			@Override
-			public IConverter getConverter(Class type)
+			public <C> IConverter<C> getConverter(Class<C> type)
 			{
-				return MINUTES_CONVERTER;
+				if (Integer.class.isAssignableFrom(type))
+				{
+					return (IConverter<C>)MINUTES_CONVERTER;
+				}
+				else
+				{
+					return super.getConverter(type);
+				}
 			}
 		});
 		minutesField.add(new RangeValidator<Integer>(0, 59));
 		minutesField.setLabel(new Model<String>("minutes"));
 		add(amOrPmChoice = new DropDownChoice<AM_PM>("amOrPmChoice", new PropertyModel<AM_PM>(this,
-				"amOrPm"), Arrays.asList(AM_PM.values())));
+			"amOrPm"), Arrays.asList(AM_PM.values())));
 	}
 
 	/**
@@ -177,7 +184,7 @@ public class DateTimeField extends FormC
 	 * 
 	 * @param widgetProperties
 	 */
-	protected void configure(Map< ? , ? > widgetProperties)
+	protected void configure(Map<?, ?> widgetProperties)
 	{
 	}
 
@@ -237,7 +244,7 @@ public class DateTimeField extends FormC
 		{
 			boolean use12HourFormat = use12HourFormat();
 			this.date.set(DateTimeFieldType.hourOfDay(), hours.intValue() %
-					(use12HourFormat ? 12 : 24));
+				(use12HourFormat ? 12 : 24));
 
 			Integer minutes = getMinutes();
 			this.date.setMinuteOfHour((minutes != null) ? minutes.intValue() : 0);
@@ -313,7 +320,7 @@ public class DateTimeField extends FormC
 				if (hours != null)
 				{
 					date.set(DateTimeFieldType.hourOfDay(), hours.intValue() %
-							getMaximumHours(use12HourFormat));
+						getMaximumHours(use12HourFormat));
 					date.setMinuteOfHour((minutes != null) ? minutes.intValue() : 0);
 				}
 				if (use12HourFormat)
@@ -352,12 +359,14 @@ public class DateTimeField extends FormC
 	private long getMillis(TimeZone to, TimeZone from, long instant)
 	{
 		return DateTimeZone.forTimeZone(from).getMillisKeepLocal(DateTimeZone.forTimeZone(to),
-				instant);
+			instant);
 	}
 
 	/**
 	 * create a new {@link DateTextField} instance to be added to this panel.
 	 * 
+	 * @param id
+	 *            the component id
 	 * @param dateFieldModel
 	 *            model that should be used by the {@link DateTextField}
 	 * @return a new date text field instance
@@ -434,7 +443,7 @@ public class DateTimeField extends FormC
 	{
 		String pattern = DateTimeFormat.patternForStyle("-S", getLocale());
 		return pattern.indexOf('a') != -1 || pattern.indexOf('h') != -1 ||
-				pattern.indexOf('K') != -1;
+			pattern.indexOf('K') != -1;
 	}
 
 	/**
@@ -489,6 +498,8 @@ public class DateTimeField extends FormC
 	/**
 	 * The DatePicker that gets added to the DateTimeField component. Users may override this method
 	 * with a DatePicker of their choice.
+	 * 
+	 * @return a new {@link DatePicker} instance
 	 */
 	protected DatePicker newDatePicker()
 	{