You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2018/01/04 15:08:47 UTC
[1/2] wicket git commit: WICKET-6514 restored original behavior of
FeedbackPanel to collect session messages
Repository: wicket
Updated Branches:
refs/heads/master 19c8998e9 -> c69592d14
WICKET-6514 restored original behavior of FeedbackPanel to collect
session messages
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/00109395
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/00109395
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/00109395
Branch: refs/heads/master
Commit: 00109395588662ca380bdf82e8fc6cc75069565a
Parents: 19c8998
Author: Andrea Del Bene <ad...@apache.org>
Authored: Thu Jan 4 16:00:48 2018 +0100
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Thu Jan 4 16:00:48 2018 +0100
----------------------------------------------------------------------
.../wicket/feedback/FeedbackMessagesModel.java | 21 ++++++++++-
.../markup/html/panel/FeedbackPanelTest.java | 38 ++++++++++++++++++--
2 files changed, 56 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/00109395/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java b/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java
index d6d915a..ab8f5cd 100644
--- a/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java
@@ -23,6 +23,7 @@ import java.util.List;
import org.apache.wicket.Component;
import org.apache.wicket.Page;
+import org.apache.wicket.Session;
import org.apache.wicket.model.IModel;
import org.apache.wicket.util.lang.Args;
@@ -47,6 +48,9 @@ public class FeedbackMessagesModel implements IModel<List<FeedbackMessage>>
private final Component pageResolvingComponent;
+ /** Controls whether or not feedback from the {@link Session} will be collected **/
+ private boolean includeSession = true;
+
/**
* Constructor. Creates a model for all feedback messages on the page.
*
@@ -126,7 +130,7 @@ public class FeedbackMessagesModel implements IModel<List<FeedbackMessage>>
protected List<FeedbackMessage> collectMessages(Component pageResolvingComponent,
IFeedbackMessageFilter filter)
{
- return new FeedbackCollector(pageResolvingComponent.getPage()).collect(filter);
+ return new FeedbackCollector(pageResolvingComponent.getPage(), includeSession).collect(filter);
}
/**
@@ -180,4 +184,19 @@ public class FeedbackMessagesModel implements IModel<List<FeedbackMessage>>
{
messages = null;
}
+
+ /**
+ * Controls whether or not feedback from the {@link Session} will be collected.
+ *
+ * See {@link FeedbackCollector#setIncludeSession} and {@link Session#getFeedbackMessages}
+ *
+ * @param value
+ * @return
+ * @return {@code this} for chaining
+ */
+ public FeedbackMessagesModel setIncludeSession(boolean includeSession)
+ {
+ this.includeSession = includeSession;
+ return this;
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/00109395/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/FeedbackPanelTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/FeedbackPanelTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/FeedbackPanelTest.java
index 0906a79..e38815d 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/FeedbackPanelTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/FeedbackPanelTest.java
@@ -16,8 +16,11 @@
*/
package org.apache.wicket.markup.html.panel;
+import java.util.List;
+
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.feedback.FeedbackMessage;
import org.apache.wicket.markup.IMarkupResourceStreamProvider;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
@@ -34,13 +37,29 @@ import org.junit.Test;
public class FeedbackPanelTest extends WicketTestCase
{
@Test
- public void testCssClassesOnFeedbackPanel() throws Exception {
+ public void testCssClassesOnFeedbackPanel() throws Exception
+ {
TestPage testPage = new TestPage();
testPage.label.error("Error message");
testPage.label.info("Info message");
testPage.label.warn("Warn message");
executeTest(testPage, "FeedbackPanelTest_cssClasses_expected.html");
}
+
+ @Test
+ public void collectSessionMessages() throws Exception
+ {
+ TestPage testPage = new TestPage();
+
+ tester.startPage(testPage);
+ tester.assertInvisible("feedback");
+
+ String message = "session info";
+
+ tester.getSession().info(message);
+ tester.startPage(testPage);
+ tester.assertVisible("feedback");
+ }
private static class TestPage extends WebPage implements IMarkupResourceStreamProvider
{
@@ -49,7 +68,22 @@ public class FeedbackPanelTest extends WicketTestCase
public TestPage()
{
- feedbackPanel = new FeedbackPanel("feedback");
+ feedbackPanel = new FeedbackPanel("feedback")
+ {
+ /**
+ * Hide panel if there is no message to show
+ */
+ @Override
+ protected void onConfigure()
+ {
+ super.onConfigure();
+ List<FeedbackMessage> messages = getFeedbackMessagesModel().getObject();
+
+ setVisible(messages.size() > 0);
+ }
+ };
+
+
label = new Label("label");
add(feedbackPanel, label);
}
[2/2] wicket git commit: WICKET-6514 refactoring of
FencedFeedbackPanel
Posted by ad...@apache.org.
WICKET-6514 refactoring of FencedFeedbackPanel
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c69592d1
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c69592d1
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c69592d1
Branch: refs/heads/master
Commit: c69592d147ef4ba404dc96068e9624b54c3d45cd
Parents: 0010939
Author: Andrea Del Bene <ad...@apache.org>
Authored: Thu Jan 4 16:01:13 2018 +0100
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Thu Jan 4 16:08:27 2018 +0100
----------------------------------------------------------------------
.../wicket/feedback/FeedbackMessagesModel.java | 5 ++-
.../wicket/feedback/FencedFeedbackPanel.java | 46 ++++++++++----------
2 files changed, 26 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/c69592d1/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java b/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java
index ab8f5cd..b574b36 100644
--- a/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessagesModel.java
@@ -48,7 +48,10 @@ public class FeedbackMessagesModel implements IModel<List<FeedbackMessage>>
private final Component pageResolvingComponent;
- /** Controls whether or not feedback from the {@link Session} will be collected **/
+ /**
+ * Controls whether or not feedback from the {@link Session} will be collected.
+ * By default is true.
+ */
private boolean includeSession = true;
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/c69592d1/wicket-core/src/main/java/org/apache/wicket/feedback/FencedFeedbackPanel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/feedback/FencedFeedbackPanel.java b/wicket-core/src/main/java/org/apache/wicket/feedback/FencedFeedbackPanel.java
index 7360d61..feac059 100644
--- a/wicket-core/src/main/java/org/apache/wicket/feedback/FencedFeedbackPanel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/feedback/FencedFeedbackPanel.java
@@ -77,6 +77,7 @@ import org.apache.wicket.markup.html.panel.FeedbackPanel;
*/
public class FencedFeedbackPanel extends FeedbackPanel
{
+
private static final long serialVersionUID = 1L;
private static final MetaDataKey<Integer> FENCE_KEY = new MetaDataKey<Integer>()
@@ -179,39 +180,17 @@ public class FencedFeedbackPanel extends FeedbackPanel
if (fence == null)
{
// this is the catch-all panel
-
- return new FeedbackCollector(panel.getPage(), true)
- {
- @Override
- protected boolean shouldRecurseInto(Component component)
- {
- return !componentIsMarkedAsFence(component);
- }
- }.collect(filter);
+ return new FencedFeedbackCollector(panel.getPage(), true).collect(filter);
}
else
{
// this is a fenced panel
-
- return new FeedbackCollector(fence)
- {
- @Override
- protected boolean shouldRecurseInto(Component component)
- {
- // only recurse into components that are not fences
- return !componentIsMarkedAsFence(component);
- }
- }.setIncludeSession(false).collect(filter);
+ return new FencedFeedbackCollector(fence, false).collect(filter);
}
}
};
}
- private boolean componentIsMarkedAsFence(Component component)
- {
- return component.getMetaData(FENCE_KEY) != null;
- }
-
@Override
protected void onReAdd()
{
@@ -224,4 +203,23 @@ public class FencedFeedbackPanel extends FeedbackPanel
}
super.onReAdd();
}
+
+ private final class FencedFeedbackCollector extends FeedbackCollector
+ {
+ private FencedFeedbackCollector(Component component, boolean includeSession)
+ {
+ super(component, includeSession);
+ }
+
+ @Override
+ protected boolean shouldRecurseInto(Component component)
+ {
+ return !componentIsMarkedAsFence(component);
+ }
+
+ private boolean componentIsMarkedAsFence(Component component)
+ {
+ return component.getMetaData(FENCE_KEY) != null;
+ }
+ }
}