ISIS-1454: fixes serialization issue The anonymous class implementation of Provider<Component> (to support lazy provision of the selectorDropDown) was not serializable, leading to the usual Wicket complaining.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/f58e72ec Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/f58e72ec Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/f58e72ec Branch: refs/heads/master Commit: f58e72ec2870cf19dca43b7c9443b8e31445877f Parents: 44d4b2e Author: Dan Haywood <d...@haywood-associates.co.uk> Authored: Thu Jun 23 14:39:47 2016 +0100 Committer: Dan Haywood <d...@haywood-associates.co.uk> Committed: Thu Jun 23 14:39:47 2016 +0100 ---------------------------------------------------------------------- .../collection/EntityCollectionPanel.java | 32 +++++++++++--------- 1 file changed, 18 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/f58e72ec/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java ---------------------------------------------------------------------- diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java index 55f0d84..ff9fe6d 100644 --- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java +++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collection/EntityCollectionPanel.java @@ -19,6 +19,17 @@ package org.apache.isis.viewer.wicket.ui.components.entity.collection; +import java.io.Serializable; +import java.util.List; + +import javax.inject.Provider; + +import org.apache.wicket.Component; +import org.apache.wicket.behavior.AttributeAppender; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.model.Model; + import org.apache.isis.applib.annotation.Where; import org.apache.isis.core.metamodel.adapter.ObjectAdapter; import org.apache.isis.core.metamodel.consent.Consent; @@ -39,14 +50,6 @@ import org.apache.isis.viewer.wicket.ui.panels.HasDynamicallyVisibleContent; import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract; import org.apache.isis.viewer.wicket.ui.util.Components; import org.apache.isis.viewer.wicket.ui.util.CssClassAppender; -import org.apache.wicket.Component; -import org.apache.wicket.behavior.AttributeAppender; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.model.Model; - -import javax.inject.Provider; -import java.util.List; /** * {@link PanelAbstract Panel} representing the properties of an entity, as per @@ -77,12 +80,7 @@ public class EntityCollectionPanel extends PanelAbstract<EntityModel> implements } Provider<Component> getSelectorDropdownPanel() { - return new Provider<Component>() { - @Override - public Component get() { - return selectorDropdownPanel; - } - }; + return new SelectorDropDownPanelProvider(); } /** @@ -179,4 +177,10 @@ public class EntityCollectionPanel extends PanelAbstract<EntityModel> implements return visible; } + private class SelectorDropDownPanelProvider implements Provider<Component>, Serializable { + @Override + public Component get() { + return selectorDropdownPanel; + } + } }