Author: svenmeier
Date: Tue Dec 20 08:38:26 2011
New Revision: 1221142
URL: http://svn.apache.org/viewvc?rev=1221142&view=rev
Log:
WICKET-4258 feedback messages are cleared before wicket-devutils's PageView
accesses the model object
Modified:
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
Modified:
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java?rev=1221142&r1=1221141&r2=1221142&view=diff
==============================================================================
---
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
(original)
+++
wicket/branches/wicket-1.5.x/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
Tue Dec 20 08:38:26 2011
@@ -31,8 +31,10 @@ import org.apache.wicket.markup.html.Web
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
+import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.apache.wicket.protocol.http.WebSession;
/**
@@ -63,10 +65,36 @@ public class FeedbackPanel extends Panel
}
@Override
+ protected IModel<FeedbackMessage> getListItemModel(
+ final IModel<? extends List<FeedbackMessage>>
listViewModel, final int index)
+ {
+ return new AbstractReadOnlyModel<FeedbackMessage>()
+ {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * WICKET-4258 Feedback messages might be
cleared already.
+ *
+ * @see WebSession#cleanupFeedbackMessages()
+ */
+ @Override
+ public FeedbackMessage getObject()
+ {
+ if (index >=
listViewModel.getObject().size())
+ {
+ return null;
+ }
+ else
+ {
+ return
listViewModel.getObject().get(index);
+ }
+ }
+ };
+ }
+
+ @Override
protected void populateItem(final ListItem<FeedbackMessage>
listItem)
{
- final FeedbackMessage message =
listItem.getModelObject();
- message.markRendered();
final IModel<String> replacementModel = new
Model<String>()
{
private static final long serialVersionUID = 1L;
@@ -80,10 +108,12 @@ public class FeedbackPanel extends Panel
@Override
public String getObject()
{
- return getCSSClass(message);
+ return
getCSSClass(listItem.getModelObject());
}
};
+ final FeedbackMessage message =
listItem.getModelObject();
+ message.markRendered();
final Component label =
newMessageDisplayComponent("message", message);
final AttributeModifier levelModifier = new
AttributeModifier("class", replacementModel);
label.add(levelModifier);