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 2019/10/01 07:18:21 UTC

[isis] branch ISIS-2086 updated (4259cbd -> 6e246a8)

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

danhaywood pushed a change to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git.


    from 4259cbd  ISIS-2086: converts 'isis.viewer.wicket.bookmarkedPages.showChooser' to type-safe config
     new 39f211e  ISIS-2086: adds metadata for 'isis.viewer.wicket.credit.{1|2|3}.{url|name|image}
     new 2ba2183  ISIS-2086: refactors 'isis.viewer.wicket.datePicker.minDate' and 'isis.viewer.wicket.datePicker.maxDate' to type-safe config
     new 5516b55  ISIS-2086: refactors 'isis.viewer.wicket.breadcrumbs.showChooser' to type-safe config
     new 6e246a8  ISIS-2086: converts 'isis.viewer.wicket.themes.*' (3 of em) to type-safe config

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/isis/config/IsisConfiguration.java  | 46 +++++++++++++++++++--
 .../additional-spring-configuration-metadata.json  | 48 ++++++++++++++++++++++
 .../wicket/ui/components/footer/FooterPanel.java   | 11 +++--
 .../datepicker/TextFieldWithDateTimePicker.java    | 23 ++++-------
 .../widgets/breadcrumbs/BreadcrumbPanel.java       |  7 +---
 .../themepicker/IsisWicketThemeSupport.java        | 19 ++-------
 .../themepicker/IsisWicketThemeSupportDefault.java | 26 ++++--------
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  |  3 +-
 8 files changed, 119 insertions(+), 64 deletions(-)


[isis] 04/04: ISIS-2086: converts 'isis.viewer.wicket.themes.*' (3 of em) to type-safe config

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 6e246a81200115846e481979b43ba303c3dbf335
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 1 08:18:03 2019 +0100

    ISIS-2086: converts 'isis.viewer.wicket.themes.*' (3 of em) to type-safe config
---
 .../org/apache/isis/config/IsisConfiguration.java  | 23 ++++++++++++++++---
 .../additional-spring-configuration-metadata.json  |  9 ++++++++
 .../themepicker/IsisWicketThemeSupport.java        | 19 ++++------------
 .../themepicker/IsisWicketThemeSupportDefault.java | 26 ++++++++--------------
 4 files changed, 42 insertions(+), 35 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
index be292b1..5772864 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
@@ -20,9 +20,7 @@ package org.apache.isis.config;
 
 import lombok.Data;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.StringTokenizer;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -655,6 +653,25 @@ public class IsisConfiguration {
                 private String encryptionKey;
             }
 
+            private final Themes themes = new Themes();
+            @Data
+            public static class Themes {
+                /**
+                 * A comma separated list of enabled theme names, as defined by https://bootswatch.com.
+                 */
+                private List<String> enabled = new ArrayList<>();
+
+                /**
+                 * The initial theme to use.
+                 *
+                 * <p>
+                 *     Expected to be in the list of {@link #getEnabled()} themes.
+                 * </p>
+                 */
+                private String initial = "Flatly";
+
+                private String provider = "org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault";
+            }
             private final WhereAmI whereAmI = new WhereAmI();
             @Data
             public static class WhereAmI {
diff --git a/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index 8c63e9b..51d9684 100644
--- a/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -47,6 +47,15 @@
     }
   ],
   "hints": [
+    {
+      "name": "isis.viewer.wicket.themes.provider",
+      "providers": [{
+        "name": "class-reference",
+        "parameters": {
+          "target": "org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupport"
+        }
+      }]
+    }
   ]
 }
 
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupport.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupport.java
index 6ce7cd8..bb471a2 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupport.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupport.java
@@ -37,16 +37,6 @@ public interface IsisWicketThemeSupport {
     ThemeProvider getThemeProvider();
     List<String> getEnabledThemeNames();
 
-    // -- CONSTANTS
-
-    /**
-     * A configuration setting which value could be a comma separated list of enabled theme names
-     */
-    static final String ENABLED_THEMES_KEY  = "isis.viewer.wicket.themes.enabled";
-    static final String DEFAULT_THEME_KEY  = "isis.viewer.wicket.themes.initial";
-    static final String THEME_SUPPORT_PROVIDER_KEY  = "isis.viewer.wicket.themes.provider";
-    static final Class<? extends IsisWicketThemeSupport> THEME_SUPPORT_DEFAULT_CLASS = 
-            IsisWicketThemeSupportDefault.class;
 
     // -- LOOKUP
 
@@ -59,10 +49,9 @@ public interface IsisWicketThemeSupport {
     /*private*/ static IsisWicketThemeSupport createInstance() {
 
 
-        val configuration = IsisContext.getConfigurationLegacy();
+        val configuration = IsisContext.getConfiguration();
 
-        val themeSupportClassName = configuration.getString(
-                THEME_SUPPORT_PROVIDER_KEY, THEME_SUPPORT_DEFAULT_CLASS.getName());
+        val themeSupportClassName = configuration.getViewer().getWicket().getThemes().getProvider();
 
         try {
 
@@ -74,10 +63,10 @@ public interface IsisWicketThemeSupport {
             val log = org.apache.logging.log4j.LogManager.getLogger(IsisWicketThemeSupport.class);
             log.warn("Could not instantiate configured theme support class '{}', defaulting to '{}'",
                     themeSupportClassName,
-                    THEME_SUPPORT_DEFAULT_CLASS.getName());
+                    IsisWicketThemeSupportDefault.class.getName());
         }
 
-        return (IsisWicketThemeSupport) InstanceUtil.createInstance(THEME_SUPPORT_DEFAULT_CLASS);
+        return (IsisWicketThemeSupport) InstanceUtil.createInstance(IsisWicketThemeSupportDefault.class);
     }
 
 
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupportDefault.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupportDefault.java
index e58e7e8..a3eab17 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupportDefault.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupportDefault.java
@@ -30,6 +30,7 @@ import com.google.common.collect.Iterables;
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Lists;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.runtime.system.context.IsisContext;
 
@@ -46,10 +47,7 @@ import lombok.extern.log4j.Log4j2;
 @Log4j2
 public class IsisWicketThemeSupportDefault implements IsisWicketThemeSupport {
 
-    private static final BootswatchTheme BOOTSWATCH_THEME_DEFAULT = BootswatchTheme.Flatly;
-
-    private final _Lazy<ThemeProvider> themeProvider = _Lazy.of(this::createThemeProvider); 
-
+    private final _Lazy<ThemeProvider> themeProvider = _Lazy.of(this::createThemeProvider);
 
     @Override
     public ThemeProvider getThemeProvider() {
@@ -83,13 +81,12 @@ public class IsisWicketThemeSupportDefault implements IsisWicketThemeSupport {
 
     private ThemeProvider createThemeProvider() {
 
-        final String themeName = getConfiguration().getString(
-                DEFAULT_THEME_KEY, BOOTSWATCH_THEME_DEFAULT.name());
+        final String themeName = getConfiguration().getViewer().getWicket().getThemes().getInitial();
         BootswatchTheme bootswatchTheme;
         try {
             bootswatchTheme = BootswatchTheme.valueOf(themeName);
         } catch(Exception ex) {
-            bootswatchTheme = BOOTSWATCH_THEME_DEFAULT;
+            bootswatchTheme = BootswatchTheme.Flatly;
             log.warn("Did not recognise configured bootswatch theme '{}', defaulting to '{}'", 
                     themeName, 
                     bootswatchTheme);
@@ -126,7 +123,7 @@ public class IsisWicketThemeSupportDefault implements IsisWicketThemeSupport {
 
     /**
      * Filters which themes to show in the drop up by using the provided values
-     * in {@value #ENABLED_THEMES_KEY}
+     * in {@link IsisConfiguration.Viewer.Wicket.Themes#getEnabled()}
      *
      * @param allThemes All available themes
      * @return A list of all enabled themes
@@ -134,17 +131,12 @@ public class IsisWicketThemeSupportDefault implements IsisWicketThemeSupport {
     private List<String> filterThemes(List<String> allThemes) {
         List<String> enabledThemes;
 
-        final String[] enabledThemesArray = getConfiguration().getList(ENABLED_THEMES_KEY);
+        final String[] enabledThemesArray = getConfiguration().getViewer().getWicket().getThemes().getEnabled().toArray(new String[]{});
         if (enabledThemesArray.length > 0) {
             final Set<String> enabledThemesSet = _NullSafe.stream(enabledThemesArray)
                     .collect(Collectors.toSet());
 
-            Iterable<String> enabled = Iterables.filter(allThemes, new Predicate<String>() {
-                @Override
-                public boolean apply(String themeName) {
-                    return enabledThemesSet.contains(themeName);
-                }
-            });
+            Iterable<String> enabled = allThemes.stream().filter(enabledThemesSet::contains).collect(Collectors.toList());
 
             enabledThemes = _Lists.newArrayList(enabled);
         } else {
@@ -154,8 +146,8 @@ public class IsisWicketThemeSupportDefault implements IsisWicketThemeSupport {
         return enabledThemes;
     }
 
-    private IsisConfigurationLegacy getConfiguration() {
-        return IsisContext.getConfigurationLegacy();
+    private IsisConfiguration getConfiguration() {
+        return IsisContext.getConfiguration();
     }
 
 }


[isis] 02/04: ISIS-2086: refactors 'isis.viewer.wicket.datePicker.minDate' and 'isis.viewer.wicket.datePicker.maxDate' to type-safe config

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 2ba21839ee8cde376938203ee21dd0d913e132f0
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 1 07:57:45 2019 +0100

    ISIS-2086: refactors 'isis.viewer.wicket.datePicker.minDate' and 'isis.viewer.wicket.datePicker.maxDate' to type-safe config
---
 .../org/apache/isis/config/IsisConfiguration.java  | 15 ++++++++++++++
 .../datepicker/TextFieldWithDateTimePicker.java    | 23 ++++++++--------------
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
index 590adfd..379a733 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
@@ -610,6 +610,21 @@ public class IsisConfiguration {
                 private int maxSize = 15;
             }
 
+            private final DatePicker datePicker = new DatePicker();
+            @Data
+            public static class DatePicker {
+
+                /**
+                 * As per http://eonasdan.github.io/bootstrap-datetimepicker/Options/#maxdate, in ISO format (per https://github.com/moment/moment/issues/1407).
+                 */
+                private String minDate = "1900-01-01T00:00:00.000Z";
+
+                /**
+                 * As per http://eonasdan.github.io/bootstrap-datetimepicker/Options/#maxdate, in ISO format (per https://github.com/moment/moment/issues/1407).
+                 */
+                private String maxDate = "2100-01-01T00:00:00.000Z";
+            }
+
             private final DevelopmentUtilities developmentUtilities = new DevelopmentUtilities();
             @Data
             public static class DevelopmentUtilities {
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
index 763527c..2c8c674 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
@@ -20,6 +20,7 @@ package org.apache.isis.viewer.wicket.ui.components.scalars.datepicker;
 
 import java.util.Locale;
 
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.head.CssHeaderItem;
 import org.apache.wicket.markup.head.IHeaderResponse;
@@ -51,18 +52,6 @@ public class TextFieldWithDateTimePicker<T> extends TextField<T> implements ICon
 
     private static final long serialVersionUID = 1L;
 
-    /**
-     * As per http://eonasdan.github.io/bootstrap-datetimepicker/Options/#mindate, in ISO format (per https://github.com/moment/moment/issues/1407).
-     */
-    private static final String KEY_DATE_PICKER_MIN_DATE = "isis.viewer.wicket.datePicker.minDate";
-    private static final String KEY_DATE_PICKER_MIN_DATE_DEFAULT = "1900-01-01T00:00:00.000Z";
-
-    /**
-     * As per http://eonasdan.github.io/bootstrap-datetimepicker/Options/#maxdate, in ISO format (per https://github.com/moment/moment/issues/1407).
-     */
-    private static final String KEY_DATE_PICKER_MAX_DATE = "isis.viewer.wicket.datePicker.maxDate";
-    private static final String KEY_DATE_PICKER_MAX_DATE_DEFAULT = "2100-01-01T00:00:00.000Z";
-
     protected final DateConverter<T> converter;
 
     private final DateTimeConfig config;
@@ -94,8 +83,8 @@ public class TextFieldWithDateTimePicker<T> extends TextField<T> implements ICon
         // seems not to do anything...
         //config.allowKeyboardNavigation(true);
 
-        final String datePickerMinDate = getConfiguration().getString(KEY_DATE_PICKER_MIN_DATE, KEY_DATE_PICKER_MIN_DATE_DEFAULT);
-        final String datePickerMaxDate = getConfiguration().getString(KEY_DATE_PICKER_MAX_DATE, KEY_DATE_PICKER_MAX_DATE_DEFAULT);
+        final String datePickerMinDate = getConfiguration().getViewer().getWicket().getDatePicker().getMinDate();
+        final String datePickerMaxDate = getConfiguration().getViewer().getWicket().getDatePicker().getMaxDate();
 
         config.minDate(datePickerMinDate);
         config.maxDate(datePickerMaxDate);
@@ -162,10 +151,14 @@ public class TextFieldWithDateTimePicker<T> extends TextField<T> implements ICon
         return $(this).chain("datetimepicker", config).get();
     }
 
-    IsisConfigurationLegacy getConfiguration() {
+    IsisConfigurationLegacy getConfigurationLegacy() {
         return IsisContext.getConfigurationLegacy();
     }
 
+    IsisConfiguration getConfiguration() {
+        return IsisContext.getConfiguration();
+    }
+
     IsisSessionFactory getIsisSessionFactory() {
         return IsisContext.getSessionFactory();
     }


[isis] 01/04: ISIS-2086: adds metadata for 'isis.viewer.wicket.credit.{1|2|3}.{url|name|image}

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 39f211ecaa97bfce9dc306c0bbe08676ac414037
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 1 07:53:55 2019 +0100

    ISIS-2086: adds metadata for 'isis.viewer.wicket.credit.{1|2|3}.{url|name|image}
---
 .../additional-spring-configuration-metadata.json  | 39 ++++++++++++++++++++++
 .../wicket/ui/components/footer/FooterPanel.java   |  8 ++---
 2 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index 91eb779..8c63e9b 100644
--- a/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/core/config/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -5,6 +5,45 @@
       "type": "java.lang.String",
       "description": "URL used by DataNucleus Object store to connect.",
       "defaultValue": ""
+    },
+    {
+      "name": "isis.viewer.wicket.credit.1.url",
+      "type": "java.net.URL"
+    },
+    {
+      "name": "isis.viewer.wicket.credit.1.name",
+      "type": "java.lang.String"
+    },
+    {
+      "name": "isis.viewer.wicket.credit.1.image",
+      "type": "java.lang.String",
+      "description": "Path of image, relative to webapp root."
+    },
+    {
+      "name": "isis.viewer.wicket.credit.2.url",
+      "type": "java.net.URL"
+    },
+    {
+      "name": "isis.viewer.wicket.credit.2.name",
+      "type": "java.lang.String"
+    },
+    {
+      "name": "isis.viewer.wicket.credit.2.image",
+      "type": "java.lang.String",
+      "description": "Path of image, relative to webapp root."
+    },
+    {
+      "name": "isis.viewer.wicket.credit.3.url",
+      "type": "java.net.URL"
+    },
+    {
+      "name": "isis.viewer.wicket.credit.3.name",
+      "type": "java.lang.String"
+    },
+    {
+      "name": "isis.viewer.wicket.credit.3.image",
+      "type": "java.lang.String",
+      "description": "Path of image, relative to webapp root."
     }
   ],
   "hints": [
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java
index cf58210..c094467 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java
@@ -117,11 +117,11 @@ public class FooterPanel extends PanelAbstract<Model<String>> {
             return "credit" + num + component;
         }
 
-        public static Credit create(final IsisConfigurationLegacy configuration, final int num) {
+        public static Credit create(final IsisConfigurationLegacy configurationLegacy, final int num) {
             String base = "isis.viewer.wicket.credit." + num + ".";
-            String url = configuration.getString(base + "url");
-            String name = configuration.getString(base + "name");
-            String image = configuration.getString(base + "image");
+            String url = configurationLegacy.getString(base + "url");
+            String name = configurationLegacy.getString(base + "name");
+            String image = configurationLegacy.getString(base + "image");
             return new Credit(num, url, name, image);
         }
     }


[isis] 03/04: ISIS-2086: refactors 'isis.viewer.wicket.breadcrumbs.showChooser' to type-safe config

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2086
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 5516b5543d0f370f5fb3d206c6d38b6aa318bb39
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 1 08:00:21 2019 +0100

    ISIS-2086: refactors 'isis.viewer.wicket.breadcrumbs.showChooser' to type-safe config
---
 .../src/main/java/org/apache/isis/config/IsisConfiguration.java   | 8 ++++++++
 .../isis/viewer/wicket/ui/components/footer/FooterPanel.java      | 3 +--
 .../wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java | 7 +------
 .../java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java | 3 +--
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
index 379a733..be292b1 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
@@ -610,6 +610,14 @@ public class IsisConfiguration {
                 private int maxSize = 15;
             }
 
+            private final Breadcrumbs breadcrumbs = new Breadcrumbs();
+            @Data
+            public static class Breadcrumbs {
+                /**
+                 * Determines whether the breadcrumbs should be available in the footer.
+                 */
+                private boolean showChooser = true;
+            }
             private final DatePicker datePicker = new DatePicker();
             @Data
             public static class DatePicker {
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java
index c094467..e609559 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/footer/FooterPanel.java
@@ -183,8 +183,7 @@ public class FooterPanel extends PanelAbstract<Model<String>> {
 
     private void addBreadcrumbs() {
 
-        boolean showBreadcrumbs = getConfigurationLegacy().getBoolean(
-                BreadcrumbPanel.SHOW_BREADCRUMBS_KEY, BreadcrumbPanel.SHOW_BREADCRUMBS_DEFAULT);
+        boolean showBreadcrumbs = getConfiguration().getViewer().getWicket().getBreadcrumbs().isShowChooser();
         final Component breadcrumbPanel =
                 showBreadcrumbs
                 ? new BreadcrumbPanel(ID_BREADCRUMBS)
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 89628a0..c2236b1 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
@@ -49,11 +49,6 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
     private static final long serialVersionUID = 1L;
 
     private static final String ID_BREADCRUMBS = "breadcrumbs";
-    /**
-     * A configuration setting which value determines whether the breadcrumbs should be available in the footer
-     */
-    public static final String SHOW_BREADCRUMBS_KEY = "isis.viewer.wicket.breadcrumbs.showChooser";
-    public static final boolean SHOW_BREADCRUMBS_DEFAULT = true;
 
     public BreadcrumbPanel(String id) {
         super(id);
@@ -151,7 +146,7 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
     protected void onConfigure() {
         super.onConfigure();
 
-        boolean shouldShow = getConfigurationLegacy().getBoolean(SHOW_BREADCRUMBS_KEY, SHOW_BREADCRUMBS_DEFAULT);
+        boolean shouldShow = getConfiguration().getViewer().getWicket().getBreadcrumbs().isShowChooser();
         setVisible(shouldShow);
     }
 
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index e6e07ff..ebc4a71 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -432,8 +432,7 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
     }
 
     protected boolean isShowBreadcrumbs() {
-        return getConfigurationLegacy() .getBoolean(
-                BreadcrumbPanel.SHOW_BREADCRUMBS_KEY, BreadcrumbPanel.SHOW_BREADCRUMBS_DEFAULT);
+        return getConfiguration().getViewer().getWicket().getBreadcrumbs().isShowChooser();
     }
 
     protected void bookmarkPageIfShown(final BookmarkableModel<?> model) {