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()
{