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


Reply via email to