Repository: wicket
Updated Branches:
  refs/heads/master 4c648e6e3 -> afc4d539d


WICKET-6117 Make IGenericComponent a mixin/trait so it could be easily reused 
in custom components


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/afc4d539
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/afc4d539
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/afc4d539

Branch: refs/heads/master
Commit: afc4d539dbd901b00427550d9a9d6b73aee2c420
Parents: 4c648e6
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Thu Mar 10 21:42:13 2016 +0100
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Thu Mar 10 21:42:13 2016 +0100

----------------------------------------------------------------------
 .../org/apache/wicket/IGenericComponent.java    | 44 ++++++++++++----
 .../java/org/apache/wicket/MarkupContainer.java |  3 --
 .../wicket/ajax/markup/html/AjaxLink.java       | 31 +-----------
 .../wicket/markup/html/GenericWebPage.java      | 30 +----------
 .../wicket/markup/html/basic/EnumLabel.java     | 31 +-----------
 .../apache/wicket/markup/html/form/Check.java   | 30 +----------
 .../apache/wicket/markup/html/form/Form.java    | 30 +----------
 .../wicket/markup/html/form/FormComponent.java  | 30 +----------
 .../apache/wicket/markup/html/form/Radio.java   | 30 +----------
 .../apache/wicket/markup/html/link/Link.java    | 31 +-----------
 .../wicket/markup/html/list/ListItem.java       | 30 +----------
 .../wicket/markup/html/panel/GenericPanel.java  | 52 +------------------
 .../datetime/markup/html/basic/DateLabel.java   | 25 +--------
 .../ajax/markup/html/AjaxEditableLabel.java     | 30 +----------
 .../markup/html/form/select/SelectOption.java   | 30 +----------
 .../markup/html/repeater/tree/AbstractTree.java | 53 +-------------------
 16 files changed, 49 insertions(+), 461 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/IGenericComponent.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/IGenericComponent.java 
b/wicket-core/src/main/java/org/apache/wicket/IGenericComponent.java
index 3895c02..fb7d0a0 100644
--- a/wicket-core/src/main/java/org/apache/wicket/IGenericComponent.java
+++ b/wicket-core/src/main/java/org/apache/wicket/IGenericComponent.java
@@ -25,14 +25,18 @@ import org.apache.wicket.model.IModel;
  * @param <T>
  *     the type of the model object
  */
-public interface IGenericComponent<T>
+public interface IGenericComponent<T, C extends IGenericComponent<? super T, 
?>>
 {
        /**
         * Typesafe getter for the model
         *
         * @return the model
         */
-       IModel<T> getModel();
+       @SuppressWarnings("unchecked")
+       default IModel<T> getModel()
+       {
+               return (IModel<T>)getDefaultModel();
+       }
 
        /**
         * Typesafe setter for the model
@@ -40,20 +44,40 @@ public interface IGenericComponent<T>
         * @param model
         *            the new model
         */
-       Component setModel(IModel<T> model);
+       default C setModel(IModel<T> model)
+       {
+               setDefaultModel(model);
+               return (C) this;
+       }
 
        /**
-        * Typesafe setter for the model object
+        * Typesafe getter for the model's object
         *
-        * @param object
-        *            the new model object
+        * @return the model object
         */
-       Component setModelObject(T object);
+       @SuppressWarnings("unchecked")
+       default T getModelObject()
+       {
+               return (T)getDefaultModelObject();
+       }
 
        /**
-        * Typesafe getter for the model's object
+        * Typesafe setter for the model object
         *
-        * @return the model object
+        * @param object
+        *            the new model object
         */
-       T getModelObject();
+       default C setModelObject(T object)
+       {
+               setDefaultModelObject(object);
+               return (C) this;
+       }
+
+       IModel<?> getDefaultModel();
+
+       Component setDefaultModel(IModel<?> model);
+
+       Component setDefaultModelObject(Object object);
+
+       Object getDefaultModelObject();
 } 

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java 
b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
index 7a5210b..9e983c7 100644
--- a/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/MarkupContainer.java
@@ -857,9 +857,6 @@ public abstract class MarkupContainer extends Component 
implements Iterable<Comp
                return this;
        }
 
-       /**
-        * @see 
org.apache.wicket.Component#setDefaultModel(org.apache.wicket.model.IModel)
-        */
        @Override
        public MarkupContainer setDefaultModel(final IModel<?> model)
        {

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java 
b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java
index 528663c..c7e62e2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java
@@ -34,7 +34,7 @@ import org.apache.wicket.model.IModel;
  *            type of model object
  * 
  */
-public abstract class AjaxLink<T> extends AbstractLink implements IAjaxLink, 
IGenericComponent<T>
+public abstract class AjaxLink<T> extends AbstractLink implements IAjaxLink, 
IGenericComponent<T, AjaxLink<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -132,33 +132,4 @@ public abstract class AjaxLink<T> extends AbstractLink 
implements IAjaxLink, IGe
         */
        @Override
        public abstract void onClick(final AjaxRequestTarget target);
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final AjaxLink<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public final AjaxLink<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
-
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/markup/html/GenericWebPage.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/GenericWebPage.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/GenericWebPage.java
index 7159c9e..5711ed4 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/GenericWebPage.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/GenericWebPage.java
@@ -27,7 +27,7 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
  * @param <T>
  *            the type of the page's model object
  */
-public class GenericWebPage<T> extends WebPage implements IGenericComponent<T>
+public class GenericWebPage<T> extends WebPage implements IGenericComponent<T, 
GenericWebPage<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -69,32 +69,4 @@ public class GenericWebPage<T> extends WebPage implements 
IGenericComponent<T>
        {
                super(parameters);
        }
-
-       @SuppressWarnings("unchecked")
-       @Override
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public final GenericWebPage<T> setModelObject(final T modelObject)
-       {
-               setDefaultModelObject(modelObject);
-               return this;
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final GenericWebPage<T> setModel(final IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/markup/html/basic/EnumLabel.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/basic/EnumLabel.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/basic/EnumLabel.java
index 0cd5c39..a81a87b 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/basic/EnumLabel.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/basic/EnumLabel.java
@@ -35,7 +35,7 @@ import org.apache.wicket.util.lang.Classes;
  * @param <T>
  *            enum type
  */
-public class EnumLabel<T extends Enum<T>> extends WebComponent implements 
IGenericComponent<T>
+public class EnumLabel<T extends Enum<T>> extends WebComponent implements 
IGenericComponent<T, EnumLabel<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -120,33 +120,4 @@ public class EnumLabel<T extends Enum<T>> extends 
WebComponent implements IGener
                // always transform the tag to <span></span> so even labels 
defined as <span/> render
                tag.setType(TagType.OPEN);
        }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final EnumLabel<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public final EnumLabel<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
-
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java
index 3db9a02..dab8129 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Check.java
@@ -52,7 +52,7 @@ import org.apache.wicket.util.string.Strings;
  * @param <T>
  *            The model object type
  */
-public class Check<T> extends LabeledWebMarkupContainer implements 
IGenericComponent<T>
+public class Check<T> extends LabeledWebMarkupContainer implements 
IGenericComponent<T, Check<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -236,34 +236,6 @@ public class Check<T> extends LabeledWebMarkupContainer 
implements IGenericCompo
        }
 
        @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final Check<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public final Check<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
-
-       @Override
        protected boolean getStatelessHint()
        {
                // because this component uses uuid field it cannot be stateless

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
index 0c15684..fd9279d 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
@@ -147,7 +147,7 @@ import org.slf4j.LoggerFactory;
 public class Form<T> extends WebMarkupContainer
        implements
                IFormSubmitListener,
-               IGenericComponent<T>
+               IGenericComponent<T, Form<T>>
 {
        private static final String HIDDEN_DIV_START = "<div 
style=\"width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden\">";
 
@@ -2068,34 +2068,6 @@ public class Form<T> extends WebMarkupContainer
                return "";
        }
 
-       @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final Form<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public final Form<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
-
        /**
         * @param component
         * @return The parent form for component

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
index 012bff7..b3d9277 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
@@ -101,7 +101,7 @@ import org.slf4j.LoggerFactory;
  * 
  */
 public abstract class FormComponent<T> extends LabeledWebMarkupContainer 
implements
-       IFormVisitorParticipant, IFormModelUpdateListener, IGenericComponent<T>
+       IFormVisitorParticipant, IFormModelUpdateListener, IGenericComponent<T, 
FormComponent<T>>
 {
        private static final Logger logger = 
LoggerFactory.getLogger(FormComponent.class);
 
@@ -1553,34 +1553,6 @@ public abstract class FormComponent<T> extends 
LabeledWebMarkupContainer impleme
                return new ValidatableAdapter();
        }
 
-       @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final FormComponent<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @SuppressWarnings("unchecked")
-       @Override
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public final FormComponent<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
-
        /**
         * Updates auto label css classes such as error/required during ajax 
updates when the labels may
         * not be directly repainted in the response.

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java
index 2e224f0..20965b2 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Radio.java
@@ -48,7 +48,7 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
  * @param <T>
  *            The model object type
  */
-public class Radio<T> extends LabeledWebMarkupContainer implements 
IGenericComponent<T>
+public class Radio<T> extends LabeledWebMarkupContainer implements 
IGenericComponent<T, Radio<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -220,34 +220,6 @@ public class Radio<T> extends LabeledWebMarkupContainer 
implements IGenericCompo
                return this;
        }
 
-       @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final Radio<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public final Radio<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
-
        /** {@inheritDoc} */
        @Override
        protected boolean getStatelessHint()

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
index ffa4e4c..b4ba44e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/link/Link.java
@@ -73,7 +73,7 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
  * @param <T>
  *            type of model object
  */
-public abstract class Link<T> extends AbstractLink implements ILinkListener, 
IGenericComponent<T>
+public abstract class Link<T> extends AbstractLink implements ILinkListener, 
IGenericComponent<T, Link<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -417,33 +417,4 @@ public abstract class Link<T> extends AbstractLink 
implements ILinkListener, IGe
                        disableLink(tag);
                }
        }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final Link<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public final Link<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
-
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java
index 88f6694..35654c5 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/list/ListItem.java
@@ -30,7 +30,7 @@ import org.apache.wicket.model.IModel;
  * @param <T>
  *            Model object type
  */
-public class ListItem<T> extends LoopItem implements IGenericComponent<T>,  
IQueueRegion
+public class ListItem<T> extends LoopItem implements IGenericComponent<T, 
ListItem<T>>,  IQueueRegion
 {
        private static final long serialVersionUID = 1L;
 
@@ -73,34 +73,6 @@ public class ListItem<T> extends LoopItem implements 
IGenericComponent<T>,  IQue
        {
                super(id, index);
        }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final ListItem<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @Override
-       @SuppressWarnings("unchecked")
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public final ListItem<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
        
        @Override
        public DequeueContext newDequeueContext()

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/GenericPanel.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/GenericPanel.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/GenericPanel.java
index 1f8d6e1..9d7c401 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/GenericPanel.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/GenericPanel.java
@@ -25,7 +25,7 @@ import org.apache.wicket.model.IModel;
  * @param <T>
  *            the type of the panel's model object
  */
-public class GenericPanel<T> extends Panel implements IGenericComponent<T>
+public class GenericPanel<T> extends Panel implements IGenericComponent<T, 
GenericPanel<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -48,54 +48,4 @@ public class GenericPanel<T> extends Panel implements 
IGenericComponent<T>
        {
                super(id, model);
        }
-
-       /**
-        * Typesafe getter for the model's object
-        * 
-        * @return the model object
-        */
-       @SuppressWarnings("unchecked")
-       @Override
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       /**
-        * Typesafe setter for the model object
-        * 
-        * @param modelObject
-        *            the new model object
-        */
-       @Override
-       public final GenericPanel<T> setModelObject(final T modelObject)
-       {
-               setDefaultModelObject(modelObject);
-               return this;
-       }
-
-       /**
-        * Typesafe getter for the page's model
-        * 
-        * @return the model
-        */
-       @SuppressWarnings("unchecked")
-       @Override
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       /**
-        * Typesafe setter for the model
-        * 
-        * @param model
-        *            the new model
-        */
-       @Override
-       public final GenericPanel<T> setModel(final IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
----------------------------------------------------------------------
diff --git 
a/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
 
b/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
index e4e66d6..9d70d0e 100644
--- 
a/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
+++ 
b/wicket-datetime/src/main/java/org/apache/wicket/datetime/markup/html/basic/DateLabel.java
@@ -51,7 +51,7 @@ import org.joda.time.format.DateTimeFormat;
  * 
  * @author eelcohillenius
  */
-public class DateLabel extends Label implements IGenericComponent<Date>
+public class DateLabel extends Label implements IGenericComponent<Date, 
DateLabel>
 {
        private static final long serialVersionUID = 1L;
 
@@ -306,27 +306,4 @@ public class DateLabel extends Label implements 
IGenericComponent<Date>
                }
                replaceComponentTagBody(markupStream, openTag, s);
        }
-
-       @Override
-       public IModel<Date> getModel() {
-               return (IModel<Date>) super.getDefaultModel();
-       }
-
-       @Override
-       public DateLabel setModel(IModel<Date> model) {
-               super.setDefaultModel(model);
-               return this;
-       }
-
-       @Override
-       public DateLabel setModelObject(Date object) {
-               super.setDefaultModelObject(object);
-               return this;
-       }
-
-       @Override
-       public Date getModelObject() {
-               return (Date) super.getDefaultModelObject();
-       }
-
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
index c7ebdfe..52e3666 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
@@ -75,7 +75,7 @@ import org.apache.wicket.validation.IValidator;
  * @param <T>
  */
 // TODO wonder if it makes sense to refactor this into a formcomponentpanel
-public class AjaxEditableLabel<T> extends Panel implements IGenericComponent<T>
+public class AjaxEditableLabel<T> extends Panel implements 
IGenericComponent<T, AjaxEditableLabel<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -264,34 +264,6 @@ public class AjaxEditableLabel<T> extends Panel implements 
IGenericComponent<T>
                return this;
        }
 
-       @SuppressWarnings("unchecked")
-       @Override
-       public IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @SuppressWarnings("unchecked")
-       @Override
-       public T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public AjaxEditableLabel<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @Override
-       public AjaxEditableLabel<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
-
        /**
         * Sets the required flag
         * 

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java
index 5478525..e4b64af 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOption.java
@@ -31,7 +31,7 @@ import org.apache.wicket.model.IModel;
  * 
  * @author Igor Vaynberg
  */
-public class SelectOption<T> extends WebMarkupContainer implements 
IGenericComponent<T>
+public class SelectOption<T> extends WebMarkupContainer implements 
IGenericComponent<T, SelectOption<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -59,34 +59,6 @@ public class SelectOption<T> extends WebMarkupContainer 
implements IGenericCompo
                super(id, model);
        }
 
-       @Override
-       @SuppressWarnings("unchecked")
-       public final IModel<T> getModel()
-       {
-               return (IModel<T>)getDefaultModel();
-       }
-
-       @Override
-       public final SelectOption<T> setModel(IModel<T> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       @SuppressWarnings("unchecked")
-       @Override
-       public final T getModelObject()
-       {
-               return (T)getDefaultModelObject();
-       }
-
-       @Override
-       public SelectOption<T> setModelObject(T object)
-       {
-               setDefaultModelObject(object);
-               return this;
-       }
-
        /**
         * Form submission value used for this select option. This string will 
appear as the value of
         * the <code>value</code> html attribute for the <code>option</code> 
tag.

http://git-wip-us.apache.org/repos/asf/wicket/blob/afc4d539/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java
index 2bcf921..3b29de9 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java
@@ -43,7 +43,7 @@ import org.apache.wicket.model.IModel;
  * @param <T>
  *            the node type
  */
-public abstract class AbstractTree<T> extends Panel implements 
IGenericComponent<Set<T>>
+public abstract class AbstractTree<T> extends Panel implements 
IGenericComponent<Set<T>, AbstractTree<T>>
 {
        private static final long serialVersionUID = 1L;
 
@@ -140,55 +140,6 @@ public abstract class AbstractTree<T> extends Panel 
implements IGenericComponent
        }
 
        /**
-        * Get the model of this tree.
-        * 
-        * @return model
-        */
-       @Override
-       @SuppressWarnings("unchecked")
-       public IModel<Set<T>> getModel()
-       {
-               return (IModel<Set<T>>)getDefaultModel();
-       }
-
-       /**
-        * Get the model object of this tree.
-        * 
-        * @return the model object
-        */
-       @Override
-       public Set<T> getModelObject()
-       {
-               return getModel().getObject();
-       }
-
-       /**
-        * Set the model.
-        * 
-        * @param model
-        *            the model
-        */
-       @Override
-       public AbstractTree<T> setModel(IModel<Set<T>> model)
-       {
-               setDefaultModel(model);
-               return this;
-       }
-
-       /**
-        * Set the model object.
-        * 
-        * @param state
-        *            the model object
-        */
-       @Override
-       public AbstractTree<T> setModelObject(Set<T> state)
-       {
-               setDefaultModelObject(state);
-               return this;
-       }
-
-       /**
         * Expand the given node, tries to update the affected branch if the 
change happens on an
         * {@link AjaxRequestTarget}.
         * 
@@ -251,7 +202,7 @@ public abstract class AbstractTree<T> extends Panel 
implements IGenericComponent
        }
 
        /**
-        * Overriden to detach the {@link ITreeProvider}.
+        * Overridden to detach the {@link ITreeProvider}.
         */
        @Override
        protected void onDetach()

Reply via email to