Author: knopp
Date: Mon Jul 20 20:35:18 2009
New Revision: 795998
URL: http://svn.apache.org/viewvc?rev=795998&view=rev
Log:
Issue: WICKET-2382
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=795998&r1=795997&r2=795998&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Mon Jul
20 20:35:18 2009
@@ -1605,7 +1605,6 @@
*
* @return meta data entry
*/
- @SuppressWarnings("unchecked")
private MetaDataEntry<?>[] getMetaData()
{
MetaDataEntry<?>[] metaData = null;
@@ -2231,15 +2230,26 @@
public final void prepareForRender(boolean setRenderingFlag)
{
beforeRender();
- List<Component> feedbacks =
getRequestCycle().getMetaData(FEEDBACK_LIST);
- if (feedbacks != null)
+
+ if (setRenderingFlag)
{
- for (Component feedback : feedbacks)
+ // only process feedback panel when we are about to be
rendered.
+ // setRenderingFlag is false in case prepareForRender
is called only to build component
+ // hierarchy (i.e. in
BookmarkableListenerInterfaceRequestTarget).
+ // prepareForRender(true) is always called before the
actual rendering is done so
+ // that's where feedback panels gather the messages
+
+ List<Component> feedbacks =
getRequestCycle().getMetaData(FEEDBACK_LIST);
+ if (feedbacks != null)
{
- feedback.internalBeforeRender();
+ for (Component feedback : feedbacks)
+ {
+ feedback.internalBeforeRender();
+ }
}
+ getRequestCycle().setMetaData(FEEDBACK_LIST, null);
}
- getRequestCycle().setMetaData(FEEDBACK_LIST, null);
+
markRendering(setRenderingFlag);
// check authorization
@@ -2938,7 +2948,6 @@
* The model
* @return This
*/
- @SuppressWarnings("unchecked")
public Component setDefaultModel(final IModel<?> model)
{
IModel<?> prevModel = getModelImpl();
@@ -3516,7 +3525,6 @@
/**
* Detaches the model for this component if it is detachable.
*/
- @SuppressWarnings("unchecked")
protected void detachModel()
{
IModel<?> model = getModelImpl();
@@ -3643,7 +3651,6 @@
* The model
* @return The innermost (most nested) model
*/
- @SuppressWarnings("unchecked")
protected final IModel<?> getInnermostModel(final IModel<?> model)
{
IModel<?> nested = model;
@@ -4165,7 +4172,6 @@
* The model to wrap if need be
* @return The wrapped model
*/
- @SuppressWarnings("unchecked")
protected final <V> IModel<V> wrap(final IModel<V> model)
{
if (model instanceof IComponentAssignedModel)
@@ -4225,10 +4231,9 @@
*/
void internalMarkRendering(boolean setRenderingFlag)
{
- setFlag(FLAG_PREPARED_FOR_RENDER, false);
-
if (setRenderingFlag)
{
+ setFlag(FLAG_PREPARED_FOR_RENDER, false);
setFlag(FLAG_RENDERING, true);
}
}