Repository: wicket Updated Branches: refs/heads/lambdas dd3209350 -> 6d7494022
WICKET-6029 Make Border's methods consistent with commit f14e03f Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/d22b004a Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/d22b004a Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/d22b004a Branch: refs/heads/lambdas Commit: d22b004afa01c31a117a65d9e7669d6c9cd64836 Parents: 6d88caf Author: Andrea Del Bene <[email protected]> Authored: Mon Nov 9 22:41:38 2015 +0100 Committer: Andrea Del Bene <[email protected]> Committed: Mon Nov 9 22:59:43 2015 +0100 ---------------------------------------------------------------------- .../wicket/markup/html/border/Border.java | 43 +++++++++++++++++--- 1 file changed, 37 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/d22b004a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java index 5125bd5..322b507 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/border/Border.java @@ -221,7 +221,19 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes @Override public Border addOrReplace(final Component... children) { - getBodyContainer().addOrReplace(children); + for (Component component : children) + { + if (component == body) + { + // in this case we do not want to redirect to body + // container but to border's old remove. + super.addOrReplace(component); + } + else + { + getBodyContainer().addOrReplace(component); + } + } return this; } @@ -230,10 +242,9 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes { if (component == body) { - // when the user calls foo.add(getBodyContainer()) this method will be called with it to - // clear body container's old parent, in which case we do not want to redirect to body + // in this case we do not want to redirect to body // container but to border's old remove. - super.remove(body); + removeFromBorder(component); } else { @@ -242,10 +253,21 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes return this; } + + @Override public Border remove(final String id) { - getBodyContainer().remove(id); + if (body.getId().equals(id)) + { + // in this case we do not want to redirect to body + // container but to border's old remove. + super.remove(id); + } + else + { + getBodyContainer().remove(id); + } return this; } @@ -259,7 +281,16 @@ public abstract class Border extends WebMarkupContainer implements IComponentRes @Override public Border replace(final Component replacement) { - getBodyContainer().replace(replacement); + if (body.getId().equals(replacement.getId())) + { + // in this case we do not want to redirect to body + // container but to border's old remove. + replaceInBorder(replacement); + } + else + { + getBodyContainer().replace(replacement); + } return this; }
