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;
+        }
+    }
 }

Reply via email to