Author: mgrigorov
Date: Sat Dec 11 19:03:01 2010
New Revision: 1044694

URL: http://svn.apache.org/viewvc?rev=1044694&view=rev
Log:
WICKET-3233 In extensions, Select extends FormComponent but FormComponent has 
no type parameter

Add generics to Select component.

Modified:
    
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SelectPage.java
    
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/Select.java
    
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java

Modified: 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SelectPage.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SelectPage.java?rev=1044694&r1=1044693&r2=1044694&view=diff
==============================================================================
--- 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SelectPage.java
 (original)
+++ 
wicket/trunk/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SelectPage.java
 Sat Dec 11 19:03:01 2010
@@ -65,8 +65,10 @@ public class SelectPage extends WicketEx
                add(feedbackPanel);
 
                // Add a form with an onSubmit implementation that sets a 
message
-               Form<?> form = new Form("form")
+               Form<?> form = new Form<Void>("form")
                {
+                       private static final long serialVersionUID = 1L;
+
                        @Override
                        protected void onSubmit()
                        {
@@ -75,17 +77,19 @@ public class SelectPage extends WicketEx
                };
                add(form);
 
-               Select site = new Select("site");
+               Select<String> site = new Select<String>("site");
                form.add(site);
                site.add(new SelectOption<String>("site1", new 
Model<String>("tss")));
                site.add(new SelectOption<String>("site2", new 
Model<String>("jl")));
                site.add(new SelectOption<String>("site3", new 
Model<String>("sd")));
                site.add(new SelectOption<String>("site4", new 
Model<String>("bn")));
 
-               Select choices = new Select("choices");
+               Select<List<String>> choices = new 
Select<List<String>>("choices");
                form.add(choices);
                IOptionRenderer<String> renderer = new IOptionRenderer<String>()
                {
+                       private static final long serialVersionUID = 1L;
+
                        public String getDisplayValue(String object)
                        {
                                return object;
@@ -106,6 +110,8 @@ public class SelectPage extends WicketEx
        /** Simple data class that acts as a model for the input fields. */
        private static class Input implements IClusterable
        {
+               private static final long serialVersionUID = 1L;
+
                /** the selected sites. */
                public String site = "sd";
 
@@ -131,7 +137,7 @@ public class SelectPage extends WicketEx
 
                private String listAsString(List<String> list)
                {
-                StringBuilder b = new StringBuilder();
+                       StringBuilder b = new StringBuilder();
                        for (Iterator<String> i = list.iterator(); i.hasNext();)
                        {
                                b.append(i.next());

Modified: 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/Select.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/Select.java?rev=1044694&r1=1044693&r2=1044694&view=diff
==============================================================================
--- 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/Select.java
 (original)
+++ 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/Select.java
 Sat Dec 11 19:03:01 2010
@@ -66,8 +66,9 @@ import org.apache.wicket.util.string.Str
  * @see SelectOptions
  * 
  * @author Igor Vaynberg
+ * @param <T>
  */
-public class Select extends FormComponent
+public class Select<T> extends FormComponent<T>
 {
        private static final long serialVersionUID = 1L;
 
@@ -83,9 +84,11 @@ public class Select extends FormComponen
        }
 
        /**
+        * @param id
+        * @param model
         * @see WebMarkupContainer#WebMarkupContainer(String, IModel)
         */
-       public Select(String id, IModel model)
+       public Select(String id, IModel<T> model)
        {
                super(id, model);
        }
@@ -93,7 +96,7 @@ public class Select extends FormComponen
        @Override
        protected void convertInput()
        {
-               boolean supportsMultiple = getDefaultModelObject() instanceof 
Collection;
+               boolean supportsMultiple = getModelObject() instanceof 
Collection;
 
                /*
                 * the input contains an array of full path of the selected 
option components unless nothing
@@ -115,7 +118,7 @@ public class Select extends FormComponen
                                        "] is not of type java.util.Collection, 
but more then one SelectOption component has been selected. Either remove the 
multiple attribute from the select tag or make the model of the Select 
component a collection");
                }
 
-               List converted = new ArrayList(paths.length);
+               List<Object> converted = new ArrayList<Object>(paths.length);
 
                /*
                 * if the input is null we do not need to do anything since the 
model collection has already
@@ -132,7 +135,7 @@ public class Select extends FormComponen
                                path = path.substring(getPath().length() + 1);
 
                                // retrieve the selected option component
-                               SelectOption option = (SelectOption) get(path);
+                               SelectOption<?> option = 
(SelectOption<?>)get(path);
 
                                if (option == null)
                                {
@@ -155,11 +158,11 @@ public class Select extends FormComponen
                }
                else if (!supportsMultiple)
                {
-                       setConvertedInput(converted.get(0));
+                       setConvertedInput((T)converted.get(0));
                }
                else
                {
-                       setConvertedInput(converted);
+                       setConvertedInput((T)converted);
                }
        }
 
@@ -179,7 +182,7 @@ public class Select extends FormComponen
                 */
                if (supportsMultiple)
                {
-                       Collection modelCollection = (Collection)object;
+                       Collection<?> modelCollection = (Collection<?>)object;
                        modelChanging();
                        modelCollection.clear();
                        if (converted != null)
@@ -202,7 +205,7 @@ public class Select extends FormComponen
         * @param option
         * @return true if the option is selected, false otherwise
         */
-       boolean isSelected(SelectOption option)
+       boolean isSelected(SelectOption<?> option)
        {
                // if the raw input is specified use that, otherwise use model
                if (hasRawInput())
@@ -230,11 +233,11 @@ public class Select extends FormComponen
                {
                        if (value instanceof Collection)
                        {
-                               return 
((Collection)selected).containsAll((Collection)value);
+                               return 
((Collection<?>)selected).containsAll((Collection<?>)value);
                        }
                        else
                        {
-                               return ((Collection)selected).contains(value);
+                               return 
((Collection<?>)selected).contains(value);
                        }
                }
                else

Modified: 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java?rev=1044694&r1=1044693&r2=1044694&view=diff
==============================================================================
--- 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java
 (original)
+++ 
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java
 Sat Dec 11 19:03:01 2010
@@ -66,7 +66,7 @@ public class SelectOption<T> extends Web
                // must be attached to <option .../> tag
                checkComponentTag(tag, "option");
 
-               Select select = findParent(Select.class);
+               Select<?> select = findParent(Select.class);
                if (select == null)
                {
                        throw new WicketRuntimeException(


Reply via email to