You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/11/02 19:35:53 UTC

[09/12] isis git commit: ISIS-1226: detach EntityModels in BreadcrumbModel

ISIS-1226: detach EntityModels in BreadcrumbModel


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a7519835
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a7519835
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a7519835

Branch: refs/heads/master
Commit: a7519835dcede00bc7c4ddd84882c9900a8e3a37
Parents: 2498f82
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Nov 2 17:42:22 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Nov 2 17:43:40 2015 +0000

----------------------------------------------------------------------
 .../wicket/AuthenticatedWebSessionForIsis.java            |  8 +++++++-
 .../viewer/integration/wicket/WebRequestCycleForIsis.java |  4 +++-
 .../components/widgets/breadcrumbs/BreadcrumbModel.java   | 10 +++++++---
 .../components/widgets/breadcrumbs/BreadcrumbPanel.java   | 10 ++++++++--
 4 files changed, 25 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a7519835/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
index 05db776..80e22c1 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
@@ -113,7 +113,13 @@ public class AuthenticatedWebSessionForIsis extends AuthenticatedWebSession impl
         final List<String> roles = authenticationSession.getRoles();
         return new Roles(roles.toArray(new String[roles.size()]));
     }
-    
+
+    @Override
+    public void detach() {
+        breadcrumbModel.detach();
+        super.detach();
+    }
+
     // /////////////////////////////////////////////////
     // Breadcrumbs and Bookmarks support
     // /////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/a7519835/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
index 098efde..c9297c1 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
@@ -98,7 +98,9 @@ public class WebRequestCycleForIsis extends AbstractRequestCycleListener {
         if(LOG.isDebugEnabled()) {
             LOG.debug("onRequestHandlerExecuted: handler: " + handler);
         }
-        
+
+        final AuthenticatedWebSessionForIsis authenticatedWebSessionForIsis = AuthenticatedWebSessionForIsis.get();
+
         final IsisSession session = getIsisContext().getSessionInstance();
         if (session != null) {
             try {

http://git-wip-us.apache.org/repos/asf/isis/blob/a7519835/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
index 02b1ce3..6f58943 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
@@ -118,9 +118,13 @@ public class BreadcrumbModel implements Serializable {
         if(oidStr == null) {
             return null;
         }
-        return entityModelByOidStr.get(oidStr);
+        final EntityModel entityModel = entityModelByOidStr.get(oidStr);
+        return entityModel;
     }
 
-
-
+    public void detach() {
+        for (EntityModel entityModel : list) {
+            entityModel.detach();
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/a7519835/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index 6d19acc..7ba1cd7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -17,10 +17,13 @@
 package org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs;
 
 import java.util.Collection;
+import java.util.List;
+
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.wicketstuff.select2.Response;
 import org.wicketstuff.select2.Select2Choice;
 import org.wicketstuff.select2.Settings;
@@ -63,7 +66,9 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
             @Override
             protected Object getId(EntityModel choice) {
                 try {
-                    return PageParameterNames.OBJECT_OID.getStringFrom(choice.getPageParameters());
+                    final PageParameters pageParameters = choice.getPageParameters();
+                    final String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
+                    return oidStr;
                 } catch (Exception ex) {
                     breadcrumbModel.remove(choice);
                     return null;
@@ -72,7 +77,8 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
 
             @Override
             public void query(String term, int page, Response<EntityModel> response) {
-                response.addAll(breadcrumbModel.getList());
+                final List<EntityModel> list = breadcrumbModel.getList();
+                response.addAll(list);
             }
 
             @Override


Re: [09/12] isis git commit: ISIS-1226: detach EntityModels in BreadcrumbModel

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
thanks for the catch... was going to put the detach logic here, then
discovered I could override detach() in the class itself.

will remove.

Cheers
Dan



On 2 November 2015 at 18:47, Martin Grigorov <mg...@apache.org> wrote:

> Hi Dan,
>
> On Mon, Nov 2, 2015 at 7:35 PM, <da...@apache.org> wrote:
>
> > -
> > +
> > +        final AuthenticatedWebSessionForIsis
> > authenticatedWebSessionForIsis = AuthenticatedWebSessionForIsis.get();
> > +
> >
>
> What is the purpose of this ?
> It seems this local variable is not used later.
>
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>

Re: [09/12] isis git commit: ISIS-1226: detach EntityModels in BreadcrumbModel

Posted by Martin Grigorov <mg...@apache.org>.
Hi Dan,

On Mon, Nov 2, 2015 at 7:35 PM, <da...@apache.org> wrote:

> -
> +
> +        final AuthenticatedWebSessionForIsis
> authenticatedWebSessionForIsis = AuthenticatedWebSessionForIsis.get();
> +
>

What is the purpose of this ?
It seems this local variable is not used later.


Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov