You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/10/15 16:34:39 UTC

git commit: WICKET-4815 Interface to mark components with type safe models

Updated Branches:
  refs/heads/master b65b46e84 -> b39f8f9b2


WICKET-4815 Interface to mark components with type safe models


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

Branch: refs/heads/master
Commit: b39f8f9b2ce3706c73c9c5e58ae24ed9d3d6a69f
Parents: b65b46e
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Oct 15 16:33:43 2012 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Oct 15 16:33:43 2012 +0200

----------------------------------------------------------------------
 .../java/org/apache/wicket/IGenericComponent.java  |   59 +++++++++++++++
 .../apache/wicket/ajax/markup/html/AjaxLink.java   |   27 ++-----
 .../apache/wicket/markup/html/GenericWebPage.java  |   29 ++------
 .../apache/wicket/markup/html/basic/EnumLabel.java |   27 ++-----
 .../org/apache/wicket/markup/html/form/Check.java  |   27 ++-----
 .../org/apache/wicket/markup/html/form/Form.java   |   27 ++-----
 .../wicket/markup/html/form/FormComponent.java     |   28 ++-----
 .../org/apache/wicket/markup/html/form/Radio.java  |   27 ++-----
 .../org/apache/wicket/markup/html/link/Link.java   |   27 ++-----
 .../apache/wicket/markup/html/list/ListItem.java   |   27 ++-----
 .../wicket/markup/html/panel/GenericPanel.java     |    7 ++-
 11 files changed, 120 insertions(+), 192 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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
new file mode 100644
index 0000000..5972824
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/IGenericComponent.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket;
+
+import org.apache.wicket.model.IModel;
+
+/**
+ * An interface for all {@link Component components} with type-safe accessors and mutators
+ * for the model and its object.
+ *
+ * @param <T>
+ *     the type of the model object
+ */
+public interface IGenericComponent<T>
+{
+	/**
+	 * Typesafe getter for the model
+	 *
+	 * @return the model
+	 */
+	IModel<T> getModel();
+
+	/**
+	 * Typesafe setter for the model
+	 *
+	 * @param model
+	 *            the new model
+	 */
+	void setModel(IModel<T> model);
+
+	/**
+	 * Typesafe setter for the model object
+	 *
+	 * @param object
+	 *            the new model object
+	 */
+	void setModelObject(T object);
+
+	/**
+	 * Typesafe getter for the model's object
+	 *
+	 * @return the model object
+	 */
+	T getModelObject();
+} 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 c284bad..20b819d 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
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.ajax.markup.html;
 
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxChannel;
 import org.apache.wicket.ajax.AjaxEventBehavior;
@@ -35,7 +36,7 @@ import org.apache.wicket.model.IModel;
  *            type of model object
  * 
  */
-public abstract class AjaxLink<T> extends AbstractLink implements IAjaxLink
+public abstract class AjaxLink<T> extends AbstractLink implements IAjaxLink, IGenericComponent<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -137,43 +138,27 @@ public abstract class AjaxLink<T> extends AbstractLink implements IAjaxLink
 	@Override
 	public abstract void onClick(final AjaxRequestTarget target);
 
-	/**
-	 * Gets model
-	 * 
-	 * @return model
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
 	}
 
-	/**
-	 * Sets model
-	 * 
-	 * @param model
-	 */
+	@Override
 	public final void setModel(IModel<T> model)
 	{
 		setDefaultModel(model);
 	}
 
-	/**
-	 * Gets model object
-	 * 
-	 * @return model object
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final T getModelObject()
 	{
 		return (T)getDefaultModelObject();
 	}
 
-	/**
-	 * Sets model object
-	 * 
-	 * @param object
-	 */
+	@Override
 	public final void setModelObject(T object)
 	{
 		setDefaultModelObject(object);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 3ddc1b1..cbd56af 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
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.markup.html;
 
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.Page;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -26,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
+public class GenericWebPage<T> extends WebPage implements IGenericComponent<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -69,45 +70,27 @@ public class GenericWebPage<T> extends WebPage
 		super(parameters);
 	}
 
-	/**
-	 * 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 void setModelObject(final T modelObject)
 	{
 		setDefaultModelObject(modelObject);
 	}
 
-	/**
-	 * Typesafe getter for the page's model
-	 * 
-	 * @return the model
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
 	}
 
-	/**
-	 * Typesafe setter for the model
-	 * 
-	 * @param model
-	 *            the new model
-	 */
+	@Override
 	public final void setModel(final IModel<T> model)
 	{
 		setDefaultModel(model);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 f4f48fa..7a15dc3 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
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.markup.html.basic;
 
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.html.WebComponent;
@@ -34,7 +35,7 @@ import org.apache.wicket.util.lang.Classes;
  * @param <T>
  *            enum type
  */
-public class EnumLabel<T extends Enum<T>> extends WebComponent
+public class EnumLabel<T extends Enum<T>> extends WebComponent implements IGenericComponent<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -120,43 +121,27 @@ public class EnumLabel<T extends Enum<T>> extends WebComponent
 		tag.setType(TagType.OPEN);
 	}
 
-	/**
-	 * Gets model
-	 * 
-	 * @return model
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
 	}
 
-	/**
-	 * Sets model
-	 * 
-	 * @param model
-	 */
+	@Override
 	public final void setModel(IModel<T> model)
 	{
 		setDefaultModel(model);
 	}
 
-	/**
-	 * Gets model object
-	 * 
-	 * @return model object
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final T getModelObject()
 	{
 		return (T)getDefaultModelObject();
 	}
 
-	/**
-	 * Sets model object
-	 * 
-	 * @param object
-	 */
+	@Override
 	public final void setModelObject(T object)
 	{
 		setDefaultModelObject(object);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 85dfb8c..5d09f6f 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
@@ -19,6 +19,7 @@ package org.apache.wicket.markup.html.form;
 import java.util.Collection;
 
 import org.apache.wicket.Component;
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -51,7 +52,7 @@ import org.apache.wicket.util.string.Strings;
  * @param <T>
  *            The model object type
  */
-public class Check<T> extends LabeledWebMarkupContainer
+public class Check<T> extends LabeledWebMarkupContainer implements IGenericComponent<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -247,43 +248,27 @@ public class Check<T> extends LabeledWebMarkupContainer
 		return this;
 	}
 
-	/**
-	 * Gets model
-	 * 
-	 * @return model
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
 	}
 
-	/**
-	 * Sets model
-	 * 
-	 * @param model
-	 */
+	@Override
 	public final void setModel(IModel<T> model)
 	{
 		setDefaultModel(model);
 	}
 
-	/**
-	 * Gets model object
-	 * 
-	 * @return model object
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final T getModelObject()
 	{
 		return (T)getDefaultModelObject();
 	}
 
-	/**
-	 * Sets model object
-	 * 
-	 * @param object
-	 */
+	@Override
 	public final void setModelObject(T object)
 	{
 		setDefaultModelObject(object);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 848b92f..2f31231 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
@@ -27,6 +27,7 @@ import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.wicket.Component;
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.Page;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.behavior.Behavior;
@@ -142,7 +143,7 @@ import org.slf4j.LoggerFactory;
  * @param <T>
  *            The model object type
  */
-public class Form<T> extends WebMarkupContainer implements IFormSubmitListener
+public class Form<T> extends WebMarkupContainer implements IFormSubmitListener, IGenericComponent<T>
 {
 	private static final String HIDDEN_DIV_START = "<div style=\"width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden\">";
 
@@ -1972,43 +1973,27 @@ public class Form<T> extends WebMarkupContainer implements IFormSubmitListener
 		return "";
 	}
 
-	/**
-	 * Gets model
-	 * 
-	 * @return model
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
 	}
 
-	/**
-	 * Sets model
-	 * 
-	 * @param model
-	 */
+	@Override
 	public final void setModel(IModel<T> model)
 	{
 		setDefaultModel(model);
 	}
 
-	/**
-	 * Gets model object
-	 * 
-	 * @return model object
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final T getModelObject()
 	{
 		return (T)getDefaultModelObject();
 	}
 
-	/**
-	 * Sets model object
-	 * 
-	 * @param object
-	 */
+	@Override
 	public final void setModelObject(T object)
 	{
 		setDefaultModelObject(object);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 c94fa8c..7a591ca 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
@@ -33,6 +33,7 @@ import java.util.Set;
 import org.apache.wicket.Application;
 import org.apache.wicket.Component;
 import org.apache.wicket.IConverterLocator;
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.Localizer;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.behavior.Behavior;
@@ -100,7 +101,8 @@ import org.slf4j.LoggerFactory;
 public abstract class FormComponent<T> extends LabeledWebMarkupContainer
 	implements
 		IFormVisitorParticipant,
-		IFormModelUpdateListener
+		IFormModelUpdateListener,
+		IGenericComponent<T>
 {
 	private static final Logger logger = LoggerFactory.getLogger(FormComponent.class);
 
@@ -1502,43 +1504,27 @@ public abstract class FormComponent<T> extends LabeledWebMarkupContainer
 		return new ValidatableAdapter();
 	}
 
-	/**
-	 * Gets model
-	 * 
-	 * @return model
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
 	}
 
-	/**
-	 * Sets model
-	 * 
-	 * @param model
-	 */
+	@Override
 	public final void setModel(IModel<T> model)
 	{
 		setDefaultModel(model);
 	}
 
-	/**
-	 * Gets model object
-	 * 
-	 * @return model object
-	 */
 	@SuppressWarnings("unchecked")
+	@Override
 	public final T getModelObject()
 	{
 		return (T)getDefaultModelObject();
 	}
 
-	/**
-	 * Sets model object
-	 * 
-	 * @param object
-	 */
+	@Override
 	public final void setModelObject(T object)
 	{
 		setDefaultModelObject(object);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 e4d0cab..d1bebbc 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
@@ -17,6 +17,7 @@
 package org.apache.wicket.markup.html.form;
 
 import org.apache.wicket.Component;
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -48,7 +49,7 @@ import org.apache.wicket.util.string.Strings;
  * @param <T>
  *            The model object type
  */
-public class Radio<T> extends LabeledWebMarkupContainer
+public class Radio<T> extends LabeledWebMarkupContainer implements IGenericComponent<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -233,43 +234,27 @@ public class Radio<T> extends LabeledWebMarkupContainer
 		return this;
 	}
 
-	/**
-	 * Gets model
-	 * 
-	 * @return model
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
 	}
 
-	/**
-	 * Sets model
-	 * 
-	 * @param model
-	 */
+	@Override
 	public final void setModel(IModel<T> model)
 	{
 		setDefaultModel(model);
 	}
 
-	/**
-	 * Gets model object
-	 * 
-	 * @return model object
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final T getModelObject()
 	{
 		return (T)getDefaultModelObject();
 	}
 
-	/**
-	 * Sets model object
-	 * 
-	 * @param object
-	 */
+	@Override
 	public final void setModelObject(T object)
 	{
 		setDefaultModelObject(object);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 3383710..0758782 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
@@ -17,6 +17,7 @@
 package org.apache.wicket.markup.html.link;
 
 import org.apache.wicket.Component;
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.Page;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.markup.ComponentTag;
@@ -72,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
+public abstract class Link<T> extends AbstractLink implements ILinkListener, IGenericComponent<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -417,43 +418,27 @@ public abstract class Link<T> extends AbstractLink implements ILinkListener
 		}
 	}
 
-	/**
-	 * Gets model
-	 * 
-	 * @return model
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
 	}
 
-	/**
-	 * Sets model
-	 * 
-	 * @param model
-	 */
+	@Override
 	public final void setModel(IModel<T> model)
 	{
 		setDefaultModel(model);
 	}
 
-	/**
-	 * Gets model object
-	 * 
-	 * @return model object
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final T getModelObject()
 	{
 		return (T)getDefaultModelObject();
 	}
 
-	/**
-	 * Sets model object
-	 * 
-	 * @param object
-	 */
+	@Override
 	public final void setModelObject(T object)
 	{
 		setDefaultModelObject(object);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 7285817..68565a5 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
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.markup.html.list;
 
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.model.IModel;
 
 /**
@@ -27,7 +28,7 @@ import org.apache.wicket.model.IModel;
  * @param <T>
  *            Model object type
  */
-public class ListItem<T> extends LoopItem
+public class ListItem<T> extends LoopItem implements IGenericComponent<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -71,43 +72,27 @@ public class ListItem<T> extends LoopItem
 		super(id, index);
 	}
 
-	/**
-	 * Gets model
-	 * 
-	 * @return model
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
 	}
 
-	/**
-	 * Sets model
-	 * 
-	 * @param model
-	 */
+	@Override
 	public final void setModel(IModel<T> model)
 	{
 		setDefaultModel(model);
 	}
 
-	/**
-	 * Gets model object
-	 * 
-	 * @return model object
-	 */
+	@Override
 	@SuppressWarnings("unchecked")
 	public final T getModelObject()
 	{
 		return (T)getDefaultModelObject();
 	}
 
-	/**
-	 * Sets model object
-	 * 
-	 * @param object
-	 */
+	@Override
 	public final void setModelObject(T object)
 	{
 		setDefaultModelObject(object);

http://git-wip-us.apache.org/repos/asf/wicket/blob/b39f8f9b/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 5a27782..df1e377 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
@@ -16,6 +16,7 @@
  */
 package org.apache.wicket.markup.html.panel;
 
+import org.apache.wicket.IGenericComponent;
 import org.apache.wicket.model.IModel;
 
 /**
@@ -24,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
+public class GenericPanel<T> extends Panel implements IGenericComponent<T>
 {
 	private static final long serialVersionUID = 1L;
 
@@ -54,6 +55,7 @@ public class GenericPanel<T> extends Panel
 	 * @return the model object
 	 */
 	@SuppressWarnings("unchecked")
+	@Override
 	public final T getModelObject()
 	{
 		return (T)getDefaultModelObject();
@@ -65,6 +67,7 @@ public class GenericPanel<T> extends Panel
 	 * @param modelObject
 	 *            the new model object
 	 */
+	@Override
 	public final void setModelObject(final T modelObject)
 	{
 		setDefaultModelObject(modelObject);
@@ -76,6 +79,7 @@ public class GenericPanel<T> extends Panel
 	 * @return the model
 	 */
 	@SuppressWarnings("unchecked")
+	@Override
 	public final IModel<T> getModel()
 	{
 		return (IModel<T>)getDefaultModel();
@@ -87,6 +91,7 @@ public class GenericPanel<T> extends Panel
 	 * @param model
 	 *            the new model
 	 */
+	@Override
 	public final void setModel(final IModel<T> model)
 	{
 		setDefaultModel(model);