Author: ehillenius Date: Fri Jun 20 14:29:58 2008 New Revision: 670073 URL: http://svn.apache.org/viewvc?rev=670073&view=rev Log: igor's generics wip
Modified: wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java Modified: wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java URL: http://svn.apache.org/viewvc/wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java?rev=670073&r1=670072&r2=670073&view=diff ============================================================================== --- wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java (original) +++ wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/DateConverter.java Fri Jun 20 14:29:58 2008 @@ -44,11 +44,8 @@ * * @author eelcohillenius */ -public abstract class DateConverter implements IConverter +public abstract class DateConverter implements IConverter<Date> { - /** - * - */ private static final long serialVersionUID = 1L; /** @@ -84,7 +81,7 @@ * @see org.apache.wicket.util.convert.IConverter#convertToObject(java.lang.String, * java.util.Locale) */ - public Object convertToObject(String value, Locale locale) + public Date convertToObject(String value, Locale locale) { if (Strings.isEmpty(value)) { @@ -144,9 +141,9 @@ * @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/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java URL: http://svn.apache.org/viewvc/wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java?rev=670073&r1=670072&r2=670073&view=diff ============================================================================== --- wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java (original) +++ wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java Fri Jun 20 14:29:58 2008 @@ -17,6 +17,7 @@ package org.apache.wicket.datetime.markup.html.basic; import java.text.SimpleDateFormat; +import java.util.Date; import org.apache.wicket.datetime.DateConverter; import org.apache.wicket.datetime.PatternDateConverter; @@ -66,7 +67,7 @@ * * @see org.apache.wicket.markup.html.form.TextField */ - public static DateLabel forDatePattern(String id, IModel model, String datePattern) + public static DateLabel forDatePattern(String id, IModel<Date> model, String datePattern) { return new DateLabel(id, model, new PatternDateConverter(datePattern, true)); } @@ -101,7 +102,7 @@ * * @see org.apache.wicket.markup.html.form.TextField */ - public static DateLabel forDateStyle(String id, IModel model, String dateStyle) + public static DateLabel forDateStyle(String id, IModel<Date> model, String dateStyle) { return new DateLabel(id, model, new StyleDateConverter(dateStyle, true)); } @@ -146,7 +147,7 @@ * * @see org.apache.wicket.markup.html.form.TextField */ - public static DateLabel forShortStyle(String id, IModel model) + public static DateLabel forShortStyle(String id, IModel<Date> model) { return new DateLabel(id, model, new StyleDateConverter(true)); } @@ -178,7 +179,7 @@ * * @see org.apache.wicket.markup.html.form.TextField */ - public static DateLabel withConverter(String id, IModel model, DateConverter converter) + public static DateLabel withConverter(String id, IModel<Date> model, DateConverter converter) { return new DateLabel(id, model, converter); } @@ -217,7 +218,7 @@ * @param converter * The converter to use */ - public DateLabel(String id, IModel model, DateConverter converter) + public DateLabel(String id, IModel<Date> model, DateConverter converter) { super(id, model); if (converter == null) @@ -247,6 +248,7 @@ /** * Returns the specialized converter. */ + @SuppressWarnings("unchecked") @Override public IConverter getConverter(Class clazz) { Modified: wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java URL: http://svn.apache.org/viewvc/wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java?rev=670073&r1=670072&r2=670073&view=diff ============================================================================== --- wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java (original) +++ wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/form/DateTextField.java Fri Jun 20 14:29:58 2008 @@ -50,7 +50,7 @@ * * @author eelcohillenius */ -public class DateTextField extends TextField implements ITextFormatProvider +public class DateTextField extends TextField<Date> implements ITextFormatProvider { private static final long serialVersionUID = 1L; @@ -68,7 +68,7 @@ * * @see org.apache.wicket.markup.html.form.TextField */ - public static DateTextField forDatePattern(String id, IModel model, String datePattern) + public static DateTextField forDatePattern(String id, IModel<Date> model, String datePattern) { return new DateTextField(id, model, new PatternDateConverter(datePattern, true)); } @@ -104,7 +104,7 @@ * * @see org.apache.wicket.markup.html.form.TextField */ - public static DateTextField forDateStyle(String id, IModel model, String dateStyle) + public static DateTextField forDateStyle(String id, IModel<Date> model, String dateStyle) { return new DateTextField(id, model, new StyleDateConverter(dateStyle, true)); } @@ -150,7 +150,7 @@ * * @see org.apache.wicket.markup.html.form.TextField */ - public static DateTextField forShortStyle(String id, IModel model) + public static DateTextField forShortStyle(String id, IModel<Date> model) { return new DateTextField(id, model, new StyleDateConverter(true)); } @@ -182,7 +182,7 @@ * * @see org.apache.wicket.markup.html.form.TextField */ - public static DateTextField withConverter(String id, IModel model, DateConverter converter) + public static DateTextField withConverter(String id, IModel<Date> model, DateConverter converter) { return new DateTextField(id, model, converter); } @@ -202,7 +202,7 @@ * @param converter * The converter to use */ - public DateTextField(String id, IModel model, DateConverter converter) + public DateTextField(String id, IModel<Date> model, DateConverter converter) { super(id, model, Date.class); if (converter == null) @@ -217,6 +217,7 @@ * @return The specialized converter. * @see org.apache.wicket.Component#getConverter(java.lang.Class) */ + @SuppressWarnings("unchecked") @Override public final IConverter getConverter(Class clazz) { Modified: wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java URL: http://svn.apache.org/viewvc/wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java?rev=670073&r1=670072&r2=670073&view=diff ============================================================================== --- wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java (original) +++ wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/AbstractCalendar.java Fri Jun 20 14:29:58 2008 @@ -106,15 +106,13 @@ contributeDependencies(); } - add(new StringHeaderContributor(new LoadableDetachableModel() + add(new StringHeaderContributor(new LoadableDetachableModel<CharSequence>() { - private static final long serialVersionUID = 1L; @Override - protected Object load() + protected CharSequence load() { - // not pretty to look at, but cheaper than using a template String markupId = AbstractCalendar.this.getMarkupId(); String javascriptId = getJavascriptId(); @@ -138,9 +136,9 @@ Properties p = new Properties(); configureWidgetProperties(p); b.append("\", { "); - for (Iterator i = p.entrySet().iterator(); i.hasNext();) + for (Iterator<Entry<Object, Object>> i = p.entrySet().iterator(); i.hasNext();) { - Entry entry = (Entry)i.next(); + Entry<Object, Object> entry = i.next(); b.append(entry.getKey()); Object value = entry.getValue(); if (value instanceof CharSequence) @@ -264,7 +262,7 @@ * @param widgetProperties * the current widget properties */ - protected void configureWidgetProperties(Map widgetProperties) + protected void configureWidgetProperties(Map<Object, Object> widgetProperties) { } } Modified: wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java URL: http://svn.apache.org/viewvc/wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java?rev=670073&r1=670072&r2=670073&view=diff ============================================================================== --- wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java (original) +++ wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateField.java Fri Jun 20 14:29:58 2008 @@ -55,7 +55,7 @@ * * @author eelcohillenius */ -public class DateField extends FormComponentPanel +public class DateField extends FormComponentPanel<Date> { private static final long serialVersionUID = 1L; @@ -79,11 +79,11 @@ * @param id * @param model */ - public DateField(String id, IModel model) + public DateField(String id, IModel<Date> model) { super(id, model); setType(Date.class); - PropertyModel dateFieldModel = new PropertyModel(this, "date"); + PropertyModel<Date> dateFieldModel = new PropertyModel<Date>(this, "date"); add(dateField = newDateTextField("date", dateFieldModel)); dateField.add(new DatePicker()); } Modified: wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java URL: http://svn.apache.org/viewvc/wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java?rev=670073&r1=670072&r2=670073&view=diff ============================================================================== --- wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java (original) +++ wicket/sandbox/ivaynberg/generics/wicket-datetime/src/main/java/org/apache/wicket/extensions/yui/calendar/DateTimeField.java Fri Jun 20 14:29:58 2008 @@ -52,7 +52,7 @@ * @author eelcohillenius * @see DateField for a variant with just the date field and date picker */ -public class DateTimeField extends FormComponentPanel +public class DateTimeField extends FormComponentPanel<Date> { /** * Enumerated type for different ways of handling the render part of requests. @@ -77,13 +77,13 @@ } } - private static final IConverter MINUTES_CONVERTER = new ZeroPaddingIntegerConverter(2); + private static final IConverter<Integer> MINUTES_CONVERTER = new ZeroPaddingIntegerConverter(2); private static final long serialVersionUID = 1L; private AM_PM amOrPm = AM_PM.AM; - private DropDownChoice amOrPmChoice; + private DropDownChoice<AM_PM> amOrPmChoice; private MutableDateTime date; @@ -91,11 +91,11 @@ private Integer hours; - private TextField hoursField; + private TextField<Integer> hoursField; private Integer minutes; - private TextField minutesField; + private TextField<Integer> minutesField; /** * Construct. @@ -113,39 +113,43 @@ * @param id * @param model */ - public DateTimeField(String id, IModel model) + public DateTimeField(String id, IModel<Date> model) { super(id, model); setType(Date.class); - PropertyModel dateFieldModel = new PropertyModel(this, "date"); + PropertyModel<Date> dateFieldModel = new PropertyModel<Date>(this, "date"); add(dateField = newDateTextField("date", dateFieldModel)); dateField.add(new DatePicker() { private static final long serialVersionUID = 1L; - protected void configure(Map widgetProperties) + @Override + protected void configure(Map<String, Object> widgetProperties) { super.configure(widgetProperties); DateTimeField.this.configure(widgetProperties); } }); - add(hoursField = new TextField("hours", new PropertyModel(this, "hours"), Integer.class)); + add(hoursField = new TextField<Integer>("hours", new PropertyModel<Integer>(this, "hours"), + Integer.class)); hoursField.add(new HoursValidator()); - hoursField.setLabel(new Model("hours")); - add(minutesField = new TextField("minutes", new PropertyModel(this, "minutes"), - Integer.class) + hoursField.setLabel(new Model<String>("hours")); + add(minutesField = new TextField<Integer>("minutes", new PropertyModel<Integer>(this, + "minutes"), Integer.class) { private static final long serialVersionUID = 1L; + @SuppressWarnings("unchecked") + @Override public IConverter getConverter(Class type) { return MINUTES_CONVERTER; } }); minutesField.add(NumberValidator.range(0, 59)); - minutesField.setLabel(new Model("minutes")); - add(amOrPmChoice = new DropDownChoice("amOrPmChoice", new PropertyModel(this, "amOrPm"), - Arrays.asList(AM_PM.values()))); + minutesField.setLabel(new Model<String>("minutes")); + add(amOrPmChoice = new DropDownChoice<AM_PM>("amOrPmChoice", new PropertyModel<AM_PM>(this, + "amOrPm"), Arrays.asList(AM_PM.values()))); } /** @@ -186,6 +190,7 @@ /** * @see org.apache.wicket.markup.html.form.FormComponent#getInput() */ + @Override public String getInput() { // since we override convertInput, we can let this method return a value @@ -276,6 +281,7 @@ * * @see org.apache.wicket.markup.html.form.FormComponent#convertInput() */ + @Override protected void convertInput() { Object dateFieldInput = dateField.getConvertedInput(); @@ -284,7 +290,7 @@ MutableDateTime date = new MutableDateTime(dateFieldInput); Integer hours = (Integer)hoursField.getConvertedInput(); Integer minutes = (Integer)minutesField.getConvertedInput(); - AM_PM amOrPm = (AM_PM)amOrPmChoice.getConvertedInput(); + AM_PM amOrPm = amOrPmChoice.getConvertedInput(); try { @@ -326,6 +332,7 @@ * @deprecated replaced by [EMAIL PROTECTED] #newDateTextField(String, PropertyModel)} */ // TODO remove after deprecation release + @Deprecated protected final DateTextField newDateTextField(PropertyModel dateFieldModel) { throw new UnsupportedOperationException(); @@ -346,6 +353,7 @@ /** * @see org.apache.wicket.Component#onBeforeRender() */ + @Override protected void onBeforeRender() { dateField.setRequired(isRequired()); @@ -449,6 +457,7 @@ /** * @see org.apache.wicket.validation.validator.AbstractValidator#onValidate(org.apache.wicket.validation.IValidatable) */ + @Override protected void onValidate(IValidatable validatable) { Number value = (Number)validatable.getValue(); @@ -461,6 +470,7 @@ /** * @see org.apache.wicket.validation.validator.AbstractValidator#variablesMap(org.apache.wicket.validation.IValidatable) */ + @Override protected Map variablesMap(IValidatable validatable) { final Map map = super.variablesMap(validatable); @@ -472,6 +482,7 @@ /** * @see org.apache.wicket.validation.validator.AbstractValidator#resourceKey() */ + @Override protected String resourceKey() { return "NumberValidator.range";