WICKET-6104 Rework AjaxFallback** components to use java.util.Optional for their #onEvent methods
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/ec1db0f3 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/ec1db0f3 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/ec1db0f3 Branch: refs/heads/lambdas Commit: ec1db0f3392b89af28c18889b11b76b43a4c768e Parents: ae36388 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Fri Feb 26 14:16:22 2016 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Fri Feb 26 14:16:22 2016 +0100 ---------------------------------------------------------------------- .../ajax/markup/html/AjaxFallbackLink.java | 11 +- .../markup/html/form/AjaxFallbackButton.java | 8 +- .../wicket/util/tester/BaseWicketTester.java | 2 +- .../org/apache/wicket/MockPanelWithLink.java | 6 +- .../wicket/ajax/AjaxHeaderContributionPage.java | 16 +-- .../ajax/AjaxHeaderContributionPage2.java | 22 ++-- .../apache/wicket/ajax/DomReadyOrderPage.java | 6 +- .../java/org/apache/wicket/ajax/HomePage.java | 9 +- .../ajax/form/AjaxFormSubmitTestPage.java | 4 +- .../ajax/markup/html/AjaxFallbackLinkTest.java | 6 +- .../DoubleNestedTransparentContainerPage.java | 9 +- ...inerWithSiblingTransparentContainerPage.java | 9 +- .../SingleNestedTransparentContainerPage.java | 10 +- ...ntainerWithAutoTransparentContainerPage.java | 7 +- ...ainerWithManualTransparentContainerPage.java | 8 +- .../html/form/FormWithMultipleButtonsTest.java | 5 +- .../util/tester/apps_5/AjaxLinkClickTest.java | 11 +- .../wicket/util/tester/apps_6/LinkPage.java | 6 +- .../diskstore/browser/BrowserPanel.java | 15 +-- .../devutils/inspector/EnhancedPageView.java | 12 +-- .../examples/ajax/builtin/EffectsPage.java | 11 +- .../wicket/examples/ajax/builtin/LinksPage.java | 8 +- .../examples/ajax/builtin/RatingsPage.java | 6 +- .../wicket/examples/ajax/builtin/TodoList.java | 41 ++++---- .../wicket/examples/source/SourcesPage.java | 8 +- .../content/CheckedSelectableFolderContent.java | 8 +- .../tree/content/EditableFolderContent.java | 8 +- .../content/MultiSelectableFolderContent.java | 12 ++- .../tree/content/SelectableFolderContent.java | 15 +-- .../markup/html/IndicatingAjaxFallbackLink.java | 5 +- .../data/sort/AjaxFallbackOrderByBorder.java | 4 +- .../data/sort/AjaxFallbackOrderByLink.java | 64 +---------- .../repeater/data/sort/AjaxOrderByLink.java | 105 +++++++++++++++++++ .../ajax/markup/html/tabs/AjaxTabbedPanel.java | 16 ++- .../markup/html/repeater/tree/AbstractTree.java | 5 +- .../markup/html/repeater/tree/NestedTree.java | 12 +-- .../markup/html/repeater/tree/Node.java | 4 +- .../markup/html/repeater/tree/TableTree.java | 9 +- .../html/repeater/tree/content/Folder.java | 7 +- .../repeater/tree/content/StyledLinkLabel.java | 14 +-- .../html/repeater/util/TreeModelProvider.java | 3 +- .../wicket/extensions/rating/RatingPanel.java | 20 ++-- 42 files changed, 314 insertions(+), 253 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java index 18488da..d4f95a3 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLink.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.ajax.markup.html; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxEventBehavior; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; @@ -39,7 +41,7 @@ import org.apache.wicket.model.IModel; * @param <T> * type of model object */ -public abstract class AjaxFallbackLink<T> extends Link<T> implements IAjaxLink +public abstract class AjaxFallbackLink<T> extends Link<T> { /** */ private static final long serialVersionUID = 1L; @@ -87,7 +89,7 @@ public abstract class AjaxFallbackLink<T> extends Link<T> implements IAjaxLink @Override protected void onEvent(AjaxRequestTarget target) { - onClick(target); + onClick(Optional.of(target)); } @Override @@ -114,7 +116,7 @@ public abstract class AjaxFallbackLink<T> extends Link<T> implements IAjaxLink @Override public final void onClick() { - onClick(null); + onClick(Optional.empty()); } /** @@ -124,8 +126,7 @@ public abstract class AjaxFallbackLink<T> extends Link<T> implements IAjaxLink * @param target * ajax target if this linked was invoked using ajax, null otherwise */ - @Override - public abstract void onClick(final AjaxRequestTarget target); + public abstract void onClick(final Optional<AjaxRequestTarget> target); /** * Removes any inline 'onclick' attributes set by Link#onComponentTag(ComponentTag). http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java index 0d164fd..9f25d9b 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.ajax.markup.html.form; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior; @@ -71,7 +73,7 @@ public abstract class AjaxFallbackButton extends Button @Override protected void onSubmit(AjaxRequestTarget target) { - AjaxFallbackButton.this.onSubmit(target, AjaxFallbackButton.this.getForm()); + AjaxFallbackButton.this.onSubmit(Optional.ofNullable(target), AjaxFallbackButton.this.getForm()); } @Override @@ -138,7 +140,7 @@ public abstract class AjaxFallbackButton extends Button { if (getRequestCycle().find(AjaxRequestTarget.class) == null) { - onSubmit(null, getForm()); + onSubmit(Optional.empty(), getForm()); } } @@ -173,7 +175,7 @@ public abstract class AjaxFallbackButton extends Button * ajax target if this linked was invoked using ajax, null otherwise * @param form */ - protected void onSubmit(final AjaxRequestTarget target, final Form<?> form) + protected void onSubmit(final Optional<AjaxRequestTarget> target, final Form<?> form) { } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java index 0242eb9..a5fb789 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java @@ -1924,7 +1924,7 @@ public class BaseWicketTester (AjaxFormSubmitBehavior)WicketTesterHelper.findAjaxEventBehavior(link, "click")); } // if the link is an IAjaxLink, use it (do check if AJAX is expected) - else if (linkComponent instanceof IAjaxLink && isAjax) + else if (isAjax && (linkComponent instanceof IAjaxLink || linkComponent instanceof AjaxFallbackLink)) { List<AjaxEventBehavior> behaviors = WicketTesterHelper.findAjaxEventBehaviors( linkComponent, "click"); http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/MockPanelWithLink.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/MockPanelWithLink.java b/wicket-core/src/test/java/org/apache/wicket/MockPanelWithLink.java index ce20aca..083e888 100644 --- a/wicket-core/src/test/java/org/apache/wicket/MockPanelWithLink.java +++ b/wicket-core/src/test/java/org/apache/wicket/MockPanelWithLink.java @@ -16,6 +16,8 @@ */ package org.apache.wicket; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; import org.apache.wicket.markup.IMarkupCacheKeyProvider; @@ -46,9 +48,9 @@ public abstract class MockPanelWithLink extends Panel add(new AjaxFallbackLink<Void>("link") { @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - MockPanelWithLink.this.onLinkClick(target); + MockPanelWithLink.this.onLinkClick(targetOptional.orElse(null)); } }); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage.java b/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage.java index a7ccde9..feff1db 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.ajax; +import java.util.Optional; + import org.apache.wicket.Component; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; import org.apache.wicket.markup.html.WebPage; @@ -43,13 +45,15 @@ public class AjaxHeaderContributionPage extends WebPage private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - target.prependJavaScript("prepend();"); - target.add(test1); - target.add(test2); - target.add(test3); - target.appendJavaScript("append();"); + targetOptional.ifPresent(target -> { + target.prependJavaScript("prepend();"); + target.add(test1); + target.add(test2); + target.add(test3); + target.appendJavaScript("append();"); + }); } }); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage2.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage2.java b/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage2.java index 44c6d4f..398f036 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage2.java +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/AjaxHeaderContributionPage2.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.ajax; +import java.util.Optional; + import org.apache.wicket.Component; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; import org.apache.wicket.markup.html.WebPage; @@ -50,16 +52,18 @@ public class AjaxHeaderContributionPage2 extends WebPage private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - target.prependJavaScript("prepend();"); - target.add(test1); - target.add(test2); - target.add(test3); - target.add(btest1); - target.add(btest2); - target.add(btest3); - target.appendJavaScript("append();"); + targetOptional.ifPresent(target -> { + target.prependJavaScript("prepend();"); + target.add(test1); + target.add(test2); + target.add(test3); + target.add(btest1); + target.add(btest2); + target.add(btest3); + target.appendJavaScript("append();"); + }); } }); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage.java b/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage.java index 17670d3..27a6447 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/DomReadyOrderPage.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.ajax; +import java.util.Optional; + import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; import org.apache.wicket.markup.head.OnDomReadyHeaderItem; import org.apache.wicket.markup.html.WebPage; @@ -60,9 +62,9 @@ public class DomReadyOrderPage extends WebPage } @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - target.add(this); + targetOptional.ifPresent(target -> target.add(this)); } } } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java b/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java index cf4d32f..190b0af 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/HomePage.java @@ -18,6 +18,7 @@ package org.apache.wicket.ajax; import java.util.LinkedList; import java.util.List; +import java.util.Optional; import org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton; import org.apache.wicket.markup.html.WebMarkupContainer; @@ -63,7 +64,7 @@ public class HomePage extends WebPage }; add(form); - form.add(new TextField<String>("textfield", new Model<String>())); + form.add(new TextField<>("textfield", new Model<>())); form.add(new Button("submit")); final WebMarkupContainer listViewContainer = new WebMarkupContainer("listViewContainer"); @@ -77,7 +78,7 @@ public class HomePage extends WebPage @Override public List<Object> getObject() { - List<Object> objects = new LinkedList<Object>(); + List<Object> objects = new LinkedList<>(); for (int i = 0; i < rows; i++) { objects.add(new Object()); @@ -97,11 +98,11 @@ public class HomePage extends WebPage form.add(new AjaxFallbackButton("addButton", form) { @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) + protected void onSubmit(Optional<AjaxRequestTarget> targetOptional, Form<?> form) { rows++; listView.removeAll(); - target.add(listViewContainer); + targetOptional.ifPresent(target -> target.add(listViewContainer)); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitTestPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitTestPage.java b/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitTestPage.java index acd7c36..b372395 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitTestPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/form/AjaxFormSubmitTestPage.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.ajax.form; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton; import org.apache.wicket.markup.html.WebPage; @@ -76,7 +78,7 @@ public class AjaxFormSubmitTestPage extends WebPage private static final long serialVersionUID = 1L; @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) + protected void onSubmit(Optional<AjaxRequestTarget> target, Form<?> form) { formSubmitted = formSubmitted | BUTTON; } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLinkTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLinkTest.java b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLinkTest.java index ac047dc..0441436 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLinkTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/markup/html/AjaxFallbackLinkTest.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.ajax.markup.html; +import java.util.Optional; + import org.apache.wicket.MarkupContainer; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.IMarkupResourceStreamProvider; @@ -46,10 +48,10 @@ public class AjaxFallbackLinkTest extends WicketTestCase { private OnlyAnchorAreaAndLinkPage() { - add(new AjaxFallbackLink("l") { + add(new AjaxFallbackLink<Void>("l") { @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> optional) { } }); http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerPage.java index 651d85a..0008abd 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerPage.java @@ -16,10 +16,10 @@ */ package org.apache.wicket.markup.html; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; -import org.apache.wicket.markup.html.TransparentWebMarkupContainer; -import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; /** @@ -54,10 +54,9 @@ public class DoubleNestedTransparentContainerPage extends WebPage private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - if (target != null) - target.add(label); + targetOptional.ifPresent(target -> target.add(label)); } }); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerWithSiblingTransparentContainerPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerWithSiblingTransparentContainerPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerWithSiblingTransparentContainerPage.java index b5334a9..84d2bcd 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerWithSiblingTransparentContainerPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/DoubleNestedTransparentContainerWithSiblingTransparentContainerPage.java @@ -16,10 +16,10 @@ */ package org.apache.wicket.markup.html; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; -import org.apache.wicket.markup.html.TransparentWebMarkupContainer; -import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; /** @@ -60,10 +60,9 @@ public class DoubleNestedTransparentContainerWithSiblingTransparentContainerPage private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - if (target != null) - target.add(label); + targetOptional.ifPresent(target -> target.add(label)); } }); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/markup/html/SingleNestedTransparentContainerPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/SingleNestedTransparentContainerPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/SingleNestedTransparentContainerPage.java index 877e9b6..3a514a5 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/SingleNestedTransparentContainerPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/SingleNestedTransparentContainerPage.java @@ -16,11 +16,10 @@ */ package org.apache.wicket.markup.html; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; -import org.apache.wicket.markup.html.TransparentWebMarkupContainer; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; /** @@ -56,10 +55,9 @@ public class SingleNestedTransparentContainerPage extends WebPage private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - if (target != null) - target.add(label); + targetOptional.ifPresent(target -> target.add(label)); } }); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithAutoTransparentContainerPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithAutoTransparentContainerPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithAutoTransparentContainerPage.java index 287adb4..eaad76b 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithAutoTransparentContainerPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithAutoTransparentContainerPage.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.markup.html; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; import org.apache.wicket.ajax.markup.html.AjaxLink; @@ -68,10 +70,9 @@ public class TransparentContainerWithAutoTransparentContainerPage extends WebPag private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - if (target != null) - target.add(label); + targetOptional.ifPresent(target -> target.add(label)); } }); http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithManualTransparentContainerPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithManualTransparentContainerPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithManualTransparentContainerPage.java index f2c2303..29ed322 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithManualTransparentContainerPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/TransparentContainerWithManualTransparentContainerPage.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.markup.html; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; import org.apache.wicket.ajax.markup.html.AjaxLink; @@ -74,11 +76,9 @@ public class TransparentContainerWithManualTransparentContainerPage extends WebP { private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - if (target != null) - target.add(label); + targetOptional.ifPresent(target -> target.add(label)); } }); http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java index 3f94112..081efe2 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.form; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; @@ -53,7 +54,7 @@ public class FormWithMultipleButtonsTest extends WicketTestCase } /** - * @see href https://issues.apache.org/jira/browse/WICKET-1894 + * @see <a href="https://issues.apache.org/jira/browse/WICKET-1894">WICKET-1894</a> */ @Test public void ajaxFallbackButtonInvokedFirst() @@ -119,7 +120,7 @@ public class FormWithMultipleButtonsTest extends WicketTestCase private static final long serialVersionUID = 1L; @Override - protected void onSubmit(AjaxRequestTarget target, Form<?> form) + protected void onSubmit(Optional<AjaxRequestTarget> target, Form<?> form) { submitSequence.add(this); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_5/AjaxLinkClickTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_5/AjaxLinkClickTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_5/AjaxLinkClickTest.java index 9e79501..8077100 100644 --- a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_5/AjaxLinkClickTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_5/AjaxLinkClickTest.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.util.tester.apps_5; +import java.util.Optional; + import org.apache.wicket.Page; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; @@ -89,11 +91,10 @@ public class AjaxLinkClickTest extends WicketTestCase { private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { linkClicked = true; - ajaxRequestTarget = target; + targetOptional.ifPresent(target -> ajaxRequestTarget = target); } }); @@ -119,10 +120,10 @@ public class AjaxLinkClickTest extends WicketTestCase private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { linkClicked = true; - ajaxRequestTarget = target; + targetOptional.ifPresent(target -> ajaxRequestTarget = target); } }); http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_6/LinkPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_6/LinkPage.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_6/LinkPage.java index 9e6dc21..6106327 100644 --- a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_6/LinkPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_6/LinkPage.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.util.tester.apps_6; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; import org.apache.wicket.ajax.markup.html.AjaxLink; @@ -91,7 +93,7 @@ public class LinkPage extends WebPage private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { getRequestCycle().setResponsePage(ResultPage.class); } @@ -102,7 +104,7 @@ public class LinkPage extends WebPage private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { getRequestCycle().setResponsePage(new ResultPage("A special label")); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserPanel.java ---------------------------------------------------------------------- diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserPanel.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserPanel.java index 25358cc..51cd5f7 100644 --- a/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserPanel.java +++ b/wicket-devutils/src/main/java/org/apache/wicket/devutils/diskstore/browser/BrowserPanel.java @@ -18,6 +18,7 @@ package org.apache.wicket.devutils.diskstore.browser; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior; @@ -55,12 +56,9 @@ public class BrowserPanel extends Panel AjaxFallbackLink<Void> refreshLink = new AjaxFallbackLink<Void>("refresh") { @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - if (target != null) - { - target.add(table); - } + targetOptional.ifPresent(target -> target.add(table)); } }; add(refreshLink); @@ -68,13 +66,10 @@ public class BrowserPanel extends Panel AjaxFallbackLink<Void> currentSessionLink = new AjaxFallbackLink<Void>("currentSessionLink") { @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { sessionsSelector.setModelObject(getCurrentSession().getObject()); - if (target != null) - { - target.add(sessionsSelector, table); - } + targetOptional.ifPresent(target -> target.add(sessionsSelector, table)); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java ---------------------------------------------------------------------- diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java index 0687f75..49fd4c1 100644 --- a/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java +++ b/wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/EnhancedPageView.java @@ -24,6 +24,7 @@ import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; import java.util.List; +import java.util.Optional; import java.util.Set; import org.apache.wicket.Component; @@ -307,12 +308,10 @@ public final class EnhancedPageView extends GenericPanel<Page> { private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { expandState.expandAll(); - if (target != null) - target.add(componentTree); + targetOptional.ifPresent(target -> target.add(componentTree)); } }); add(new AjaxFallbackLink<Void>("collapseAll") @@ -320,11 +319,10 @@ public final class EnhancedPageView extends GenericPanel<Page> private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { expandState.collapseAll(); - if (target != null) - target.add(componentTree); + targetOptional.ifPresent(target -> target.add(componentTree)); } }); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/EffectsPage.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/EffectsPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/EffectsPage.java index e3763c7..e286584 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/EffectsPage.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/EffectsPage.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.examples.ajax.builtin; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxChannel; import org.apache.wicket.ajax.AjaxChannel.Type; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -105,15 +107,14 @@ public class EffectsPage extends BasePage add(new AjaxFallbackLink<Void>("c2-link") { @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { counter2++; - if (target != null) - { + targetOptional.ifPresent(target -> { target.add(c2); target.appendJavaScript(String.format("jQuery('#%s').effect('highlight');", - c2.getMarkupId())); - } + c2.getMarkupId())); + }); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java index d5d99cb..2dc80bf 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/LinksPage.java @@ -17,6 +17,7 @@ package org.apache.wicket.examples.ajax.builtin; import java.util.List; +import java.util.Optional; import org.apache.wicket.Component; import org.apache.wicket.WicketRuntimeException; @@ -97,17 +98,14 @@ public class LinksPage extends BasePage add(new AjaxFallbackLink<Void>("c2-link") { @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { counter2++; // notice that for a fallback link we need to makesure the // target is not null. if the target is null ajax failed and the // fallback was used, so there is no need to do any ajax-related // processing. - if (target != null) - { - target.add(c2); - } + targetOptional.ifPresent(target -> target.add(c2)); } }); http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java index 6ad0b40..44ad5e6 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/RatingsPage.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.examples.ajax.builtin; +import java.util.Optional; + import org.apache.wicket.util.io.IClusterable; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.rating.RatingPanel; @@ -181,7 +183,7 @@ public class RatingsPage extends BasePage } @Override - public void onRated(int rating, AjaxRequestTarget target) + public void onRated(int rating, Optional<AjaxRequestTarget> target) { RatingsPage.rating1.addRating(rating); } @@ -212,7 +214,7 @@ public class RatingsPage extends BasePage } @Override - public void onRated(int rating, AjaxRequestTarget target) + public void onRated(int rating, Optional<AjaxRequestTarget> target) { // make sure the user can't vote again hasVoted = Boolean.TRUE; http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/TodoList.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/TodoList.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/TodoList.java index 9c37a48..66cc50a 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/TodoList.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/TodoList.java @@ -18,6 +18,7 @@ package org.apache.wicket.examples.ajax.builtin; import java.util.ArrayList; import java.util.List; +import java.util.Optional; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; @@ -165,7 +166,7 @@ public class TodoList extends BasePage private boolean linkVisible = true; /** Link for displaying the AddTodo form. */ - private final class AddTodoLink extends AjaxFallbackLink + private final class AddTodoLink extends AjaxFallbackLink<Void> { /** Constructor. */ private AddTodoLink(String id) @@ -176,13 +177,13 @@ public class TodoList extends BasePage /** * onclick handler. * - * @param target + * @param targetOptional * the request target. */ @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - onShowForm(target); + onShowForm(targetOptional); } /** @@ -201,7 +202,7 @@ public class TodoList extends BasePage * Link for removing all completed todos from the list, this link follows the same * visibility rules as the add link. */ - private final class RemoveCompletedTodosLink extends AjaxFallbackLink + private final class RemoveCompletedTodosLink extends AjaxFallbackLink<Void> { /** * Constructor. @@ -214,13 +215,10 @@ public class TodoList extends BasePage super(id); } - /** - * @see AjaxFallbackLink#onClick(org.apache.wicket.ajax.AjaxRequestTarget) - */ @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - onRemoveCompletedTodos(target); + onRemoveCompletedTodos(targetOptional); } /** @@ -318,19 +316,19 @@ public class TodoList extends BasePage /** * Called then the add link was clicked, shows the form, and hides the link. * - * @param target + * @param targetOptional * the request target. */ - void onShowForm(AjaxRequestTarget target) + void onShowForm(Optional<AjaxRequestTarget> targetOptional) { // toggle the visibility linkVisible = false; // redraw the add container. - target.add(this); + targetOptional.ifPresent(target -> target.add(this)); } - void onRemoveCompletedTodos(AjaxRequestTarget target) + void onRemoveCompletedTodos(Optional<AjaxRequestTarget> targetOptional) { List<TodoItem> ready = new ArrayList<>(); for (TodoItem todo : items) @@ -342,11 +340,13 @@ public class TodoList extends BasePage } items.removeAll(ready); - // repaint our panel - target.add(this); + targetOptional.ifPresent(target -> { + // repaint our panel + target.add(this); - // repaint the listview as there was a new item added. - target.add(showItems); + // repaint the listview as there was a new item added. + target.add(showItems); + }); } /** @@ -413,11 +413,8 @@ public class TodoList extends BasePage add(new AjaxFallbackLink<Void>("ajaxback") { - /** - * @see org.apache.wicket.ajax.markup.html.AjaxFallbackLink#onClick(org.apache.wicket.ajax.AjaxRequestTarget) - */ @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { setResponsePage(getPage()); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-examples/src/main/java/org/apache/wicket/examples/source/SourcesPage.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/source/SourcesPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/source/SourcesPage.java index dd30e07..8632e9d 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/source/SourcesPage.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/source/SourcesPage.java @@ -29,6 +29,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; import java.util.List; +import java.util.Optional; import java.util.jar.JarEntry; import java.util.jar.JarFile; @@ -293,15 +294,14 @@ public class SourcesPage extends WebPage item.getModel()) { @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { setName(getDefaultModelObjectAsString()); - if (target != null) - { + targetOptional.ifPresent(target -> { target.add(codePanel); target.add(filename); - } + }); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java index 0fab470..8310fe8 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/CheckedSelectableFolderContent.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.examples.tree.content; +import java.util.Optional; + import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.examples.tree.Foo; @@ -75,9 +77,9 @@ public class CheckedSelectableFolderContent extends SelectableFolderContent } @Override - protected void onClick(AjaxRequestTarget target) + protected void onClick(Optional<AjaxRequestTarget> targetOptional) { - CheckedSelectableFolderContent.this.select(getModelObject(), tree, target); + CheckedSelectableFolderContent.this.select(getModelObject(), tree, targetOptional); } @Override @@ -87,4 +89,4 @@ public class CheckedSelectableFolderContent extends SelectableFolderContent } }; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java index e202bae..280857b 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/EditableFolderContent.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.examples.tree.content; +import java.util.Optional; + import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -72,7 +74,7 @@ public class EditableFolderContent extends Content @Override protected Component newLabelComponent(String id, final IModel<Foo> model) { - return new AjaxEditableLabel<String>(id, new PropertyModel<String>(model, "bar")) + return new AjaxEditableLabel<String>(id, new PropertyModel<>(model, "bar")) { @Override protected void onSubmit(AjaxRequestTarget target) @@ -82,10 +84,10 @@ public class EditableFolderContent extends Content /** * update whole node in case we're located inside TableTree */ - tree.updateNode(model.getObject(), target); + tree.updateNode(model.getObject(), Optional.of(target)); } }; } }; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java index 0c36fa5..2e70744 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/MultiSelectableFolderContent.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.examples.tree.content; +import java.util.Optional; + import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.examples.tree.Foo; @@ -51,7 +53,7 @@ public class MultiSelectableFolderContent extends Content return selected.contains(foo); } - protected void toggle(Foo foo, AbstractTree<Foo> tree, final AjaxRequestTarget target) + protected void toggle(Foo foo, AbstractTree<Foo> tree, final Optional<AjaxRequestTarget> targetOptional) { if (isSelected(foo)) { @@ -62,7 +64,7 @@ public class MultiSelectableFolderContent extends Content selected.add(foo); } - tree.updateNode(foo, target); + tree.updateNode(foo, targetOptional); } @Override @@ -82,9 +84,9 @@ public class MultiSelectableFolderContent extends Content } @Override - protected void onClick(AjaxRequestTarget target) + protected void onClick(Optional<AjaxRequestTarget> targetOptional) { - MultiSelectableFolderContent.this.toggle(getModelObject(), tree, target); + MultiSelectableFolderContent.this.toggle(getModelObject(), tree, targetOptional); } @Override @@ -94,4 +96,4 @@ public class MultiSelectableFolderContent extends Content } }; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/SelectableFolderContent.java ---------------------------------------------------------------------- diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/SelectableFolderContent.java b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/SelectableFolderContent.java index b2605d5..caafcae 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/SelectableFolderContent.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/tree/content/SelectableFolderContent.java @@ -16,8 +16,11 @@ */ package org.apache.wicket.examples.tree.content; +import java.util.Optional; + import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; import org.apache.wicket.examples.tree.Foo; import org.apache.wicket.extensions.markup.html.repeater.tree.AbstractTree; import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider; @@ -64,11 +67,11 @@ public class SelectableFolderContent extends Content } } - protected void select(Foo foo, AbstractTree<Foo> tree, final AjaxRequestTarget target) + protected void select(Foo foo, AbstractTree<Foo> tree, final Optional<AjaxRequestTarget> targetOptional) { if (selected != null) { - tree.updateNode(selected.getObject(), target); + tree.updateNode(selected.getObject(), targetOptional); selected.detach(); selected = null; @@ -76,7 +79,7 @@ public class SelectableFolderContent extends Content selected = provider.model(foo); - tree.updateNode(foo, target); + tree.updateNode(foo, targetOptional); } @Override @@ -96,9 +99,9 @@ public class SelectableFolderContent extends Content } @Override - protected void onClick(AjaxRequestTarget target) + protected void onClick(Optional<AjaxRequestTarget> targetOptional) { - SelectableFolderContent.this.select(getModelObject(), tree, target); + SelectableFolderContent.this.select(getModelObject(), tree, targetOptional); } @Override @@ -108,4 +111,4 @@ public class SelectableFolderContent extends Content } }; } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxFallbackLink.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxFallbackLink.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxFallbackLink.java index 47df05f..133e273 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxFallbackLink.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/IndicatingAjaxFallbackLink.java @@ -35,11 +35,8 @@ public abstract class IndicatingAjaxFallbackLink<T> extends AjaxFallbackLink<T> implements IAjaxIndicatorAware { - - /** - * - */ private static final long serialVersionUID = 1L; + private final AjaxIndicatorAppender indicatorAppender = new AjaxIndicatorAppender(); /** http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java index d35433b..e91c949 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java @@ -55,7 +55,7 @@ public abstract class AjaxFallbackOrderByBorder<S> extends OrderByBorder<S> @Override protected OrderByLink<S> newOrderByLink(String id, S property, ISortStateLocator<S> stateLocator) { - return new AjaxFallbackOrderByLink<S>("orderByLink", property, stateLocator) + return new AjaxOrderByLink<S>("orderByLink", property, stateLocator) { private static final long serialVersionUID = 1L; @@ -93,6 +93,4 @@ public abstract class AjaxFallbackOrderByBorder<S> extends OrderByBorder<S> } protected abstract void onAjaxClick(AjaxRequestTarget target); - - } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java index e937e72..503d226 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java @@ -16,10 +16,6 @@ */ package org.apache.wicket.extensions.ajax.markup.html.repeater.data.sort; -import org.apache.wicket.ajax.AjaxEventBehavior; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; -import org.apache.wicket.ajax.markup.html.IAjaxLink; import org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator; import org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink; @@ -34,13 +30,11 @@ import org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink; * @since 1.2.1 * * @author Igor Vaynberg (ivaynberg) - * + * @deprecated Use {@link AjaxOrderByLink} instead */ -public abstract class AjaxFallbackOrderByLink<S> extends OrderByLink<S> implements IAjaxLink +@Deprecated +public abstract class AjaxFallbackOrderByLink<S> extends AjaxOrderByLink<S> { - /** - * - */ private static final long serialVersionUID = 1L; /** @@ -55,56 +49,4 @@ public abstract class AjaxFallbackOrderByLink<S> extends OrderByLink<S> implemen { super(id, sortProperty, stateLocator); } - - @Override - public void onInitialize() - { - super.onInitialize(); - - add(newAjaxEventBehavior("click")); - } - - /** - * @param event - * the name of the default event on which this link will listen to - * @return the ajax behavior which will be executed when the user clicks the link - */ - protected AjaxEventBehavior newAjaxEventBehavior(final String event) - { - return new AjaxEventBehavior(event) - { - private static final long serialVersionUID = 1L; - - @Override - protected void onEvent(final AjaxRequestTarget target) - { - onClick(); - AjaxFallbackOrderByLink.this.onClick(target); - } - - @Override - protected void updateAjaxAttributes(AjaxRequestAttributes attributes) - { - super.updateAjaxAttributes(attributes); - attributes.setPreventDefault(true); - - AjaxFallbackOrderByLink.this.updateAjaxAttributes(attributes); - } - }; - } - - protected void updateAjaxAttributes(AjaxRequestAttributes attributes) - { - } - - /** - * Callback method when an ajax click occurs. All the behavior of changing the sort, etc is - * already performed before this is called so this method should primarily be used to configure - * the target. - * - * @param target - */ - @Override - public abstract void onClick(AjaxRequestTarget target); - } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxOrderByLink.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxOrderByLink.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxOrderByLink.java new file mode 100644 index 0000000..ecca89c --- /dev/null +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxOrderByLink.java @@ -0,0 +1,105 @@ +/* + * 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.extensions.ajax.markup.html.repeater.data.sort; + +import org.apache.wicket.ajax.AjaxEventBehavior; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; +import org.apache.wicket.ajax.markup.html.IAjaxLink; +import org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator; +import org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink; + + +/** + * Ajaxified {@link OrderByLink} + * + * @param <S> + * the type of the sort property + * @see OrderByLink + */ +public abstract class AjaxOrderByLink<S> extends OrderByLink<S> implements IAjaxLink +{ + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * Constructor + * + * @param id + * @param sortProperty + * @param stateLocator + */ + public AjaxOrderByLink(final String id, final S sortProperty, + final ISortStateLocator<S> stateLocator) + { + super(id, sortProperty, stateLocator); + } + + @Override + public void onInitialize() + { + super.onInitialize(); + + add(newAjaxEventBehavior("click")); + } + + /** + * @param event + * the name of the default event on which this link will listen to + * @return the ajax behavior which will be executed when the user clicks the link + */ + protected AjaxEventBehavior newAjaxEventBehavior(final String event) + { + return new AjaxEventBehavior(event) + { + private static final long serialVersionUID = 1L; + + @Override + protected void onEvent(final AjaxRequestTarget target) + { + onClick(); + AjaxOrderByLink.this.onClick(target); + } + + @Override + protected void updateAjaxAttributes(AjaxRequestAttributes attributes) + { + super.updateAjaxAttributes(attributes); + attributes.setPreventDefault(true); + + AjaxOrderByLink.this.updateAjaxAttributes(attributes); + } + }; + } + + protected void updateAjaxAttributes(AjaxRequestAttributes attributes) + { + } + + /** + * Callback method when an ajax click occurs. All the behavior of changing the sort, etc is + * already performed before this is called so this method should primarily be used to configure + * the target. + * + * @param target + */ + @Override + public abstract void onClick(AjaxRequestTarget target); + +} http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/tabs/AjaxTabbedPanel.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/tabs/AjaxTabbedPanel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/tabs/AjaxTabbedPanel.java index e3e0e6f..db08078 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/tabs/AjaxTabbedPanel.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/tabs/AjaxTabbedPanel.java @@ -17,6 +17,7 @@ package org.apache.wicket.extensions.ajax.markup.html.tabs; import java.util.List; +import java.util.Optional; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.AjaxFallbackLink; @@ -72,20 +73,15 @@ public class AjaxTabbedPanel<T extends ITab> extends TabbedPanel<T> { return new AjaxFallbackLink<Void>(linkId) { - private static final long serialVersionUID = 1L; @Override - public void onClick(final AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { setSelectedTab(index); - if (target != null) - { - target.add(AjaxTabbedPanel.this); - } - onAjaxUpdate(target); + targetOptional.ifPresent(target -> target.add(AjaxTabbedPanel.this)); + onAjaxUpdate(targetOptional); } - }; } @@ -97,11 +93,11 @@ public class AjaxTabbedPanel<T extends ITab> extends TabbedPanel<T> * <strong>Note</strong> Since an {@link AjaxFallbackLink} is used to back the ajax update the * <code>target</code> argument can be null when the client browser does not support ajax and * the fallback mode is used. See {@link AjaxFallbackLink} for details. - * + * * @param target * ajax target used to update this component */ - protected void onAjaxUpdate(final AjaxRequestTarget target) + protected void onAjaxUpdate(final Optional<AjaxRequestTarget> target) { } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java index 439c0c7..2bcf921 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/AbstractTree.java @@ -16,6 +16,7 @@ */ package org.apache.wicket.extensions.markup.html.repeater.tree; +import java.util.Optional; import java.util.Set; import org.apache.wicket.Component; @@ -314,12 +315,12 @@ public abstract class AbstractTree<T> extends Panel implements IGenericComponent * @param target * request target or {@code null} */ - public abstract void updateNode(T node, final IPartialPageRequestHandler target); + public abstract void updateNode(T node, final Optional<? extends IPartialPageRequestHandler> target); /** * The state of a node. */ - public static enum State { + public enum State { /** * The node is collapsed, i.e. its children are not iterated. */ http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java index 41dfa79..f41be80 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/NestedTree.java @@ -16,10 +16,10 @@ */ package org.apache.wicket.extensions.markup.html.repeater.tree; +import java.util.Optional; import java.util.Set; import org.apache.wicket.Component; -import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; import org.apache.wicket.extensions.markup.html.repeater.tree.nested.BranchItem; import org.apache.wicket.extensions.markup.html.repeater.tree.nested.Subtree; @@ -37,7 +37,6 @@ import org.apache.wicket.util.visit.IVisitor; */ public abstract class NestedTree<T> extends AbstractTree<T> { - private static final long serialVersionUID = 1L; /** @@ -89,7 +88,7 @@ public abstract class NestedTree<T> extends AbstractTree<T> /** * Overridden to let the node output its markup id. * - * @see #updateNode(Object, IPartialPageRequestHandler) + * @see #updateNode(Object, Optional<IPartialPageRequestHandler>) * @see Component#setOutputMarkupId(boolean) */ @Override @@ -132,10 +131,9 @@ public abstract class NestedTree<T> extends AbstractTree<T> * Overridden to update the corresponding {@link Node} only. */ @Override - public void updateNode(T node, final IPartialPageRequestHandler target) + public void updateNode(T node, final Optional<? extends IPartialPageRequestHandler> targetOptional) { - if (target != null) - { + targetOptional.ifPresent(target -> { final IModel<T> model = getProvider().model(node); visitChildren(Node.class, new IVisitor<Node<T>, Void>() { @@ -152,7 +150,7 @@ public abstract class NestedTree<T> extends AbstractTree<T> } }); model.detach(); - } + }); } private class RootsModel extends AbstractReadOnlyModel<T> http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java index 26c0685..e48a34c 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/Node.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.extensions.markup.html.repeater.tree; +import java.util.Optional; + import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -115,7 +117,7 @@ public abstract class Node<T> extends Panel private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { toggle(); } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java index 01d00c1..df61813 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/TableTree.java @@ -17,9 +17,9 @@ package org.apache.wicket.extensions.markup.html.repeater.tree; import java.util.List; +import java.util.Optional; import java.util.Set; -import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.core.request.handler.IPartialPageRequestHandler; import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; @@ -184,10 +184,9 @@ public abstract class TableTree<T, S> extends AbstractTree<T> * For an update of a node the complete row item is added to the ART. */ @Override - public void updateNode(T t, final IPartialPageRequestHandler target) + public void updateNode(T t, final Optional<? extends IPartialPageRequestHandler> targetOptional) { - if (target != null) - { + targetOptional.ifPresent(target -> { final IModel<T> model = getProvider().model(t); visitChildren(Item.class, new IVisitor<Item<T>, Void>() { @@ -207,7 +206,7 @@ public abstract class TableTree<T, S> extends AbstractTree<T> } }); model.detach(); - } + }); } /** http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/Folder.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/Folder.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/Folder.java index ee8159f..8130d72 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/Folder.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/Folder.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.extensions.markup.html.repeater.tree.content; +import java.util.Optional; + import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.core.util.string.CssUtils; import org.apache.wicket.extensions.markup.html.repeater.tree.AbstractTree; @@ -28,13 +30,12 @@ import org.apache.wicket.model.IModel; * * The link is used to expand/collapse the tree depending on the {@link State} of the current node. * Nodes without children are not clickable. Subclasses may change this behavior by overriding - * {@link #isClickable()} and {@link #onClick(AjaxRequestTarget)}. + * {@link #isClickable()} and {@link #onClick(Optional<AjaxRequestTarget>)}. * * @author svenmeier */ public class Folder<T> extends StyledLinkLabel<T> { - private static final long serialVersionUID = 1L; public static final String OTHER_CSS_CLASS_KEY = CssUtils.key(Folder.class, "other"); @@ -71,7 +72,7 @@ public class Folder<T> extends StyledLinkLabel<T> * Toggle the node's {@link State} on click. */ @Override - protected void onClick(AjaxRequestTarget target) + protected void onClick(Optional<AjaxRequestTarget> targetOptional) { T t = getModelObject(); if (tree.getState(t) == State.EXPANDED) http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/StyledLinkLabel.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/StyledLinkLabel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/StyledLinkLabel.java index a26c6d3..3d2bd25 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/StyledLinkLabel.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/tree/content/StyledLinkLabel.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.extensions.markup.html.repeater.tree.content; +import java.util.Optional; + import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -66,10 +68,10 @@ public abstract class StyledLinkLabel<T> extends Panel * Hook method to create a new link component. * * This default implementation returns an {@link AjaxFallbackLink} which invokes - * {@link #onClick(AjaxRequestTarget)} only if {@link #isClickable()} returns <code>true</code>. + * {@link #onClick(Optional<AjaxRequestTarget>)} only if {@link #isClickable()} returns <code>true</code>. * * @see #isClickable() - * @see #onClick(AjaxRequestTarget) + * @see #onClick(Optional<AjaxRequestTarget>) */ protected MarkupContainer newLinkComponent(String id, IModel<T> model) { @@ -84,9 +86,9 @@ public abstract class StyledLinkLabel<T> extends Panel } @Override - public void onClick(AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { - StyledLinkLabel.this.onClick(target); + StyledLinkLabel.this.onClick(targetOptional); } }; } @@ -140,7 +142,7 @@ public abstract class StyledLinkLabel<T> extends Panel * @see #newLinkComponent(String, IModel) * @see #isClickable() */ - protected void onClick(AjaxRequestTarget target) + protected void onClick(Optional<AjaxRequestTarget> target) { } @@ -163,4 +165,4 @@ public abstract class StyledLinkLabel<T> extends Panel } } } -} \ No newline at end of file +} http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/TreeModelProvider.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/TreeModelProvider.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/TreeModelProvider.java index 15a9251..c95ff29 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/TreeModelProvider.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/util/TreeModelProvider.java @@ -20,6 +20,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Optional; import javax.swing.event.TreeModelEvent; import javax.swing.event.TreeModelListener; @@ -189,7 +190,7 @@ public abstract class TreeModelProvider<T> implements ITreeProvider<T> { for (T object : nodeUpdates) { - tree.updateNode(object, target); + tree.updateNode(object, Optional.of(target)); } } http://git-wip-us.apache.org/repos/asf/wicket/blob/ec1db0f3/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java ---------------------------------------------------------------------- diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java index 4b4753b..528305b 100644 --- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java +++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/rating/RatingPanel.java @@ -16,6 +16,8 @@ */ package org.apache.wicket.extensions.rating; +import java.util.Optional; + import org.apache.wicket.AttributeModifier; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -38,7 +40,7 @@ import org.apache.wicket.request.resource.ResourceReference; /** * Rating component that generates a number of stars where a user can click on to rate something. - * Subclasses should implement {@link #onRated(int, org.apache.wicket.ajax.AjaxRequestTarget)} to provide the calculation + * Subclasses should implement {@link #onRated(int, Optional)} to provide the calculation * of the rating, and {@link #onIsStarActive(int)} to indicate whether to render an active star or * an inactive star. * <p> @@ -119,7 +121,7 @@ public abstract class RatingPanel extends Panel private static final long serialVersionUID = 1L; @Override - public void onClick(final AjaxRequestTarget target) + public void onClick(Optional<AjaxRequestTarget> targetOptional) { LoopItem item = (LoopItem)getParent(); @@ -127,13 +129,11 @@ public abstract class RatingPanel extends Panel // of our rating component, so other components can also get // updated in case of an AJAX event. - onRated(item.getIndex() + 1, target); + onRated(item.getIndex() + 1, targetOptional); // if we process an AJAX event, update this panel - if (target != null) - { - target.add(RatingPanel.this.get("rater")); - } + targetOptional.ifPresent(target -> target.add(RatingPanel.this.get("rater"))); + } @Override @@ -427,11 +427,9 @@ public abstract class RatingPanel extends Panel * Notification of a click on a rating star. Add your own components to the request target when * you want to have them updated in the Ajax request. <strong>NB</strong> the target may be null * when the click isn't handled using AJAX, but using a fallback scenario. - * - * @param rating + * @param rating * the number of the star that is clicked, ranging from 1 to nrOfStars * @param target - * the request target, null if the request is a regular, non-AJAX request. */ - protected abstract void onRated(int rating, AjaxRequestTarget target); + protected abstract void onRated(int rating, Optional<AjaxRequestTarget> target); }
