You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/10/30 18:56:27 UTC

[isis] branch v2 updated: ISIS-2158: fixes breadcrumbs (where-am-I) not shown

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/v2 by this push:
     new cd6f2b0  ISIS-2158: fixes breadcrumbs (where-am-I) not shown
cd6f2b0 is described below

commit cd6f2b0ee0df8c0cae4f6f34e1622041f0838b31
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Oct 30 19:56:10 2019 +0100

    ISIS-2158: fixes breadcrumbs (where-am-I) not shown
---
 .../models/whereami/WhereAmIModelDefault.java      | 33 ++++------------------
 .../viewer/wicket/ui/pages/entity/EntityPage.java  |  7 ++---
 2 files changed, 7 insertions(+), 33 deletions(-)

diff --git a/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java b/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
index 67d58e5..f9ab068 100644
--- a/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
+++ b/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
@@ -22,7 +22,6 @@ package org.apache.isis.viewer.wicket.model.models.whereami;
 import java.util.LinkedList;
 import java.util.stream.Stream;
 
-import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.metamodel.util.pchain.ParentChain;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
 import org.apache.isis.webapp.context.IsisWebAppCommonContext;
@@ -43,13 +42,13 @@ class WhereAmIModelDefault implements WhereAmIModel {
     private boolean isWhereAmIEnabled;
     private int maxChainLength;
     
-    private static int configHash = 0;
-
     public WhereAmIModelDefault(EntityModel startOfChain) {
         this.startOfChain = startOfChain;
         this.commonContext = startOfChain.getCommonContext();
 
-        overrideFromConfigIfNew(commonContext.getConfiguration());
+        val settings = commonContext.getConfiguration().getViewer().getWicket().getWhereAmI();
+        this.isWhereAmIEnabled = settings.isEnabled();
+        this.maxChainLength = settings.getMaxParentChainLength();
 
         val adapter = startOfChain.getObject();
         final Object startNode = adapter.getPojo();
@@ -66,9 +65,9 @@ class WhereAmIModelDefault implements WhereAmIModel {
 
     @Override
     public boolean isShowWhereAmI() {
-        if(!isWhereAmIEnabled)
+        if(!isWhereAmIEnabled) {
             return false; // this will prevent rendering
-
+        }
         return !reversedChainOfParents.isEmpty();
     }
 
@@ -88,26 +87,4 @@ class WhereAmIModelDefault implements WhereAmIModel {
         return EntityModel.ofAdapter(commonContext, objectAdapter);
     }
 
-    private void overrideFromConfigIfNew(IsisConfiguration configuration) {
-
-        //[ahuber] without evidence that this significantly improves performance,
-        // (skipping 2 hash-table lookups) we use the smart update idiom here ...
-        //
-        // Note: Updates are expected to occur only once per application life-cycle,
-        // however this class might be loaded by a class-loader, that endures multiple
-        // application life-cycles. Chances of hash-collisions are simply neglected.
-
-        // that's the hash of the object (we don't care about the actual config values)
-        // assuming that, we get a new (immutable) config instance each app's life-cycle:
-        final int newConfigHash = System.identityHashCode(configuration);
-        if(newConfigHash == configHash) {
-            return;
-        }
-
-        configHash = newConfigHash;
-
-        isWhereAmIEnabled = configuration.getViewer().getWicket().getWhereAmI().isEnabled();
-        maxChainLength = configuration.getViewer().getWicket().getWhereAmI().getMaxParentChainLength();
-    }
-
 }
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index a68f1e9..7d0e719 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -32,7 +32,6 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.CssResourceReference;
 import org.apache.wicket.util.string.Strings;
 
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.metamodel.facets.members.cssclass.CssClassFacet;
@@ -228,8 +227,7 @@ public class EntityPage extends PageAbstract {
             WebMarkupContainer entityPageContainer,
             WhereAmIModel whereAmIModel) {
 
-        final WebMarkupContainer whereAmIContainer =
-                new WebMarkupContainer("whereAmI-container");
+        val whereAmIContainer = new WebMarkupContainer("whereAmI-container");
         entityPageContainer.addOrReplace(whereAmIContainer);
 
         if(!whereAmIModel.isShowWhereAmI()) {
@@ -240,8 +238,7 @@ public class EntityPage extends PageAbstract {
         final RepeatingView listItems = new RepeatingView("whereAmI-items");
 
         whereAmIModel.streamParentChainReversed().forEach(entityModel->
-        listItems.add(new EntityIconAndTitlePanel(listItems.newChildId(), entityModel))
-                );
+            listItems.add(new EntityIconAndTitlePanel(listItems.newChildId(), entityModel)));
 
         listItems.add(new Label(listItems.newChildId(), whereAmIModel.getStartOfChain().getTitle()));