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 2018/12/20 18:48:11 UTC

[isis] branch ISIS-1997 updated (eb0bdea -> f0896aa)

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

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


 discard eb0bdea  ISIS-1997: first cut of sidebar
 discard c0e2c45  ISIS-1997: adds a sidebar, can toggle
     add 5f32ad6  ISIS-2050: fixes suspected race condition in metamodel validation of DomainObjectAnnotationFacetFactory
     add 5b1b381  ISIS-2050: extended ConfigProperty and also ModuleOrBuilderAbstract so can configure latter from former
     new 44757fc  ISIS-2050: updates docs, describe the isis.reflector.introspection.mode config property.
     new fc66b6e  Merge branch 'ISIS-2050'
     new 73dcd18  ISIS-1997: adds a sidebar, can toggle
     new 6fa6b5a  ISIS-1997: first cut of sidebar
     new effc688  ISIS-1997: fine-tuning sidebar prompt
     new f0896aa  ISIS-2053: removes tabindex=-1 for a href's, specify focus styling for all themes.

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (eb0bdea)
            \
             N -- N -- N   refs/heads/ISIS-1997 (f0896aa)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 6 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:
 .../guides/rgcfg/_rgcfg_configuring-core.adoc      | 37 ++++++++++++++
 .../_rgcms_classes_AppManifest2-bootstrapping.adoc |  4 +-
 .../_ugtst_integ-test-support_bootstrapping.adoc   | 18 +++++++
 .../isis/applib/ModuleOrBuilderAbstract.java       |  4 ++
 .../isis/core/commons/config/ConfigProperty.java   |  5 ++
 .../commons/config/ConfigPropertyAbstract.java     |  3 +-
 .../core/commons/config/ConfigPropertyBoolean.java |  9 ++++
 .../core/commons/config/ConfigPropertyEnum.java    |  9 ++++
 .../core/commons/config/ConfigPropertyString.java  |  9 ++++
 .../DomainObjectAnnotationFacetFactory.java        |  4 +-
 .../metamodel/specloader/IntrospectionMode.java}   | 50 +++++++++----------
 .../metamodel/specloader/SpecificationLoader.java  | 56 ++++++++++------------
 .../serviceactions/ServiceActionsPanel.html        |  4 +-
 .../serviceactions/TertiaryActionsPanel.html       |  2 +-
 .../actionpromptsb/ActionPromptSidebar.java        |  2 +-
 .../entity/icontitle/EntityIconAndTitlePanel.html  |  2 +-
 .../entity/icontitle/EntityIconAndTitlePanel.java  | 12 ++---
 .../wicket/ui/components/header/HeaderPanel.html   |  4 +-
 .../components/scalars/ScalarPanelAbstract2.java   |  8 +++-
 .../scalars/ScalarPanelTextFieldAbstract.java      |  7 ++-
 .../scalars/string/MultiLineStringPanel.java       |  9 +++-
 .../linkandlabel/ActionLinkFactoryAbstract.java    | 36 +++++++++-----
 .../isis/viewer/wicket/ui/pages/PageAbstract.html  |  1 -
 .../pages/bootstrap-overrides-bootstrap-theme.css} | 23 +++++----
 .../ui/pages/bootstrap-overrides-cerulean.css}     | 23 +++++----
 .../wicket/ui/pages/bootstrap-overrides-cosmo.css} | 23 +++++----
 .../ui/pages/bootstrap-overrides-cyborg.css}       | 23 +++++----
 .../wicket/ui/pages/bootstrap-overrides-darkly.css | 13 +++++
 .../wicket/ui/pages/bootstrap-overrides-flatly.css | 15 +++++-
 .../ui/pages/bootstrap-overrides-journal.css}      | 23 +++++----
 .../wicket/ui/pages/bootstrap-overrides-lumen.css} | 23 +++++----
 .../wicket/ui/pages/bootstrap-overrides-paper.css} | 23 +++++----
 .../ui/pages/bootstrap-overrides-readable.css}     | 23 +++++----
 .../ui/pages/bootstrap-overrides-sandstone.css     | 17 +++++++
 .../ui/pages/bootstrap-overrides-simplex.css}      | 23 +++++----
 .../wicket/ui/pages/bootstrap-overrides-slate.css} | 23 +++++----
 .../ui/pages/bootstrap-overrides-spacelab.css}     | 23 +++++----
 .../ui/pages/bootstrap-overrides-superhero.css}    | 23 +++++----
 .../ui/pages/bootstrap-overrides-united.css}       | 23 +++++----
 .../wicket/ui/pages/bootstrap-overrides-yeti.css}  | 23 +++++----
 .../viewer/wicket/ui/pages/bootstrap-overrides.css | 13 +++++
 .../wicket/ui/pages/jquery.isis.wicket.viewer.js   |  6 +++
 .../isis/viewer/wicket/ui/pages/simple-sidebar.css | 26 +++++-----
 43 files changed, 435 insertions(+), 272 deletions(-)
 copy core/metamodel/src/{test/java/org/apache/isis/core/metamodel/specloader/ReflectorTestPojo.java => main/java/org/apache/isis/core/metamodel/specloader/IntrospectionMode.java} (52%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-bootstrap-theme.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cerulean.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cosmo.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cyborg.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-journal.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-lumen.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-paper.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-readable.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-simplex.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-slate.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-spacelab.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-superhero.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-united.css} (72%)
 copy core/{metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/date/DateValueFacet.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-yeti.css} (72%)


[isis] 04/06: ISIS-1997: first cut of sidebar

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

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

commit 6fa6b5aa4e0bf72f5ecb6bc55a8d923297f1aec6
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Dec 19 16:14:33 2018 +0000

    ISIS-1997: first cut of sidebar
---
 .../actionpromptsb/ActionPromptSidebar.html        | 20 ++++++------
 .../actionpromptsb/ActionPromptSidebar.java        | 37 ++++++++++++++++++----
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  | 13 +-------
 .../isis/viewer/wicket/ui/pages/simple-sidebar.css | 27 ++++++++++------
 .../simple/dom/impl/SimpleObject.layout.xml        |  4 ++-
 5 files changed, 64 insertions(+), 37 deletions(-)

diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.html
index a3f460a..5fb4b3d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.html
@@ -24,17 +24,19 @@
       lang="en">
 <body>
 <wicket:panel>
+<!--
     <li class="sidebar-brand">
-        <h4 wicket:id="header">Action header</h4>
-
     </li>
-    <div wicket:id="content"></div>
+-->
+    <div class="sidebar-panel">
+        <div class="sidebar-header">
+            <h4 wicket:id="header">Action Name</h4>
+        </div>
+        <div class="sidebar-content">
+            <div wicket:id="content"></div>
+        </div>
+    </div>
+
 </wicket:panel>
-    <script>
-        $("#menu-toggle").click(function(e) {
-            e.preventDefault();
-            $("#wrapper").toggleClass("toggled");
-        });
-    </script>
 </body>
 </html>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
index e310b2f..ab0ba10 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
@@ -28,10 +28,16 @@ public class ActionPromptSidebar extends GenericPanel<Void> implements ActionPro
 
     private static final long serialVersionUID = 1L;
 
+    private CloseHandler closeHandlerIfAny;
+
     public ActionPromptSidebar(final String id) {
         super(id);
 
+        setOutputMarkupId(true);
+        setOutputMarkupPlaceholderTag(true);
+
         add(new Label(getTitleId(), "(no action)"));
+
         add(new WebMarkupContainer(getContentId()));
     }
 
@@ -51,27 +57,46 @@ public class ActionPromptSidebar extends GenericPanel<Void> implements ActionPro
 
 
     @Override
-    public void setTitle(final Component component, final AjaxRequestTarget target) {
-
+    public void setTitle(final Component titleComponent, final AjaxRequestTarget target) {
+        titleComponent.setMarkupId(getTitleId());
+        addOrReplace(titleComponent);
     }
 
     @Override
-    public void setPanel(final Component component, final AjaxRequestTarget target) {
-
+    public void setPanel(final Component contentComponent, final AjaxRequestTarget target) {
+        contentComponent.setMarkupId(getContentId());
+        addOrReplace(contentComponent);
     }
 
     @Override
     public void showPrompt(final AjaxRequestTarget target) {
-        target.appendJavaScript("$('#wrapper').toggleClass('toggled')");
+        setVisible(true);
+        show(target);
+        target.add(this);
     }
 
     @Override
     public void closePrompt(final AjaxRequestTarget target) {
-        target.appendJavaScript("$('#wrapper').toggleClass('toggled')");
+
+        if (target != null) {
+            hide(target);
+        }
+        setVisible(false);
+        if(closeHandlerIfAny != null) {
+            closeHandlerIfAny.close(target);
+        }
     }
 
     @Override
     public void setOnClose(final CloseHandler closeHandler) {
+        this.closeHandlerIfAny = closeHandler;
+    }
 
+    private void show(final AjaxRequestTarget target) {
+        target.appendJavaScript("$('#wrapper').removeClass('toggled')");
     }
+    private void hide(final AjaxRequestTarget target) {
+        target.appendJavaScript("$('#wrapper').addClass('toggled')");
+    }
+
 }
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 acc959f..1b087b0 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
@@ -140,30 +140,18 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
 
     private final List<ComponentType> childComponentIds;
 
-    /**
-     * {@link com.google.inject.Inject Inject}ed when {@link #init() initialized}.
-     */
     @com.google.inject.Inject
     @Named("applicationName")
     private String applicationName;
 
-    /**
-     * {@link com.google.inject.Inject Inject}ed when {@link #init() initialized}.
-     */
     @com.google.inject.Inject(optional = true)
     @Named("applicationCss")
     private String applicationCss;
     
-    /**
-     * {@link com.google.inject.Inject Inject}ed when {@link #init() initialized}.
-     *///
     @com.google.inject.Inject(optional = true)
     @Named("applicationJs")
     private String applicationJs;
 
-    /**
-     * {@link com.google.inject.Inject Inject}ed when {@link #init() initialized}.
-     */
     @com.google.inject.Inject
     private PageClassRegistry pageClassRegistry;
 
@@ -471,6 +459,7 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
     private ActionPromptSidebar actionPromptSidebar;
 
     public ActionPrompt getActionPrompt() {
+//        return actionPromptModalWindow;
         return actionPromptSidebar;
     }
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
index 449ebaf..e67c026 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
@@ -19,18 +19,18 @@
 }
 
 #wrapper.toggled {
-    padding-left: 250px;
+    padding-left: 350px;
 }
 
 #sidebar-wrapper {
     z-index: 1000;
     position: fixed;
-    left: 250px;
+    left: 350px;
     width: 0;
     height: 100%;
-    margin-left: -250px;
+    margin-left: -350px;
     overflow-y: auto;
-    background: #000;
+    border: 1px dotted;
     -webkit-transition: all 0.5s ease;
     -moz-transition: all 0.5s ease;
     -o-transition: all 0.5s ease;
@@ -38,7 +38,7 @@
 }
 
 #wrapper.toggled #sidebar-wrapper {
-    width: 250px;
+    width: 350px;
 }
 
 #page-content-wrapper {
@@ -49,7 +49,7 @@
 
 #wrapper.toggled #page-content-wrapper {
     position: absolute;
-    margin-right: -250px;
+    margin-right: -350px;
 }
 
 /* Sidebar Styles */
@@ -57,7 +57,7 @@
 .sidebar-nav {
     position: absolute;
     top: 0;
-    width: 250px;
+    width: 350px;
     margin: 0;
     padding: 0;
     list-style: none;
@@ -100,9 +100,18 @@
     background: none;
 }
 
+.sidebar-panel {
+    padding: 20px;
+}
+.sidebar-content {
+    padding-top: 20px;
+    padding-bottom: 20px;
+}
+
+
 @media(min-width:768px) {
     #wrapper {
-        padding-left: 250px;
+        padding-left: 350px;
     }
 
     #wrapper.toggled {
@@ -110,7 +119,7 @@
     }
 
     #sidebar-wrapper {
-        width: 250px;
+        width: 350px;
     }
 
     #wrapper.toggled #sidebar-wrapper {
diff --git a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.layout.xml b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.layout.xml
index 955d478..d431cb9 100644
--- a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.layout.xml
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObject.layout.xml
@@ -34,7 +34,9 @@
                                 <c:action id="delete">
                                     <c:describedAs>Deletes this object from the persistent datastore</c:describedAs>
                                 </c:action>
-                                <c:property id="name" namedEscaped="true"/>
+                                <c:property id="name" namedEscaped="true">
+                                    <c:action id="updateName" promptStyle="DIALOG"/>
+                                </c:property>
                                 <c:property id="notes" namedEscaped="true" multiLine="10" hidden="ALL_TABLES"/>
                             </c:fieldSet>
                         </bs3:col>


[isis] 02/06: Merge branch 'ISIS-2050'

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

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

commit fc66b6eb4cc9f2cda1ea3785b6117f4c6658ea20
Merge: ac0fbc9 44757fc
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Dec 20 18:47:30 2018 +0000

    Merge branch 'ISIS-2050'

 .../guides/rgcfg/_rgcfg_configuring-core.adoc      | 37 ++++++++++++++
 .../_rgcms_classes_AppManifest2-bootstrapping.adoc |  4 +-
 .../_ugtst_integ-test-support_bootstrapping.adoc   | 18 +++++++
 .../isis/applib/ModuleOrBuilderAbstract.java       |  4 ++
 .../isis/core/commons/config/ConfigProperty.java   |  5 ++
 .../commons/config/ConfigPropertyAbstract.java     |  3 +-
 .../core/commons/config/ConfigPropertyBoolean.java |  9 ++++
 .../core/commons/config/ConfigPropertyEnum.java    |  9 ++++
 .../core/commons/config/ConfigPropertyString.java  |  9 ++++
 .../DomainObjectAnnotationFacetFactory.java        |  4 +-
 .../metamodel/specloader/IntrospectionMode.java    | 52 ++++++++++++++++++++
 .../metamodel/specloader/SpecificationLoader.java  | 56 ++++++++++------------
 12 files changed, 173 insertions(+), 37 deletions(-)


[isis] 06/06: ISIS-2053: removes tabindex=-1 for a href's, specify focus styling for all themes.

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

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

commit f0896aa5950afec2f1f5cb90cd9832b9fc1354a0
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Dec 20 12:17:50 2018 +0000

    ISIS-2053: removes tabindex=-1 for a href's, specify focus styling for all themes.
    
    Also:
    - disallow tabbing into the underlying widget (textarea etc) contained within the "inline" editing hyperlink <a>
---
 .../actionmenu/serviceactions/ServiceActionsPanel.html  |  4 ++--
 .../actionmenu/serviceactions/TertiaryActionsPanel.html |  2 +-
 .../entity/icontitle/EntityIconAndTitlePanel.html       |  2 +-
 .../entity/icontitle/EntityIconAndTitlePanel.java       | 12 ++++++------
 .../viewer/wicket/ui/components/header/HeaderPanel.html |  4 ++--
 .../ui/components/scalars/ScalarPanelAbstract2.java     |  8 +++++++-
 .../scalars/ScalarPanelTextFieldAbstract.java           |  7 ++++++-
 .../components/scalars/string/MultiLineStringPanel.java |  9 ++++++++-
 ...tone.css => bootstrap-overrides-bootstrap-theme.css} | 14 ++++++++++++--
 ...s-sandstone.css => bootstrap-overrides-cerulean.css} | 14 ++++++++++++--
 ...ides-sandstone.css => bootstrap-overrides-cosmo.css} | 14 ++++++++++++--
 ...des-sandstone.css => bootstrap-overrides-cyborg.css} | 14 ++++++++++++--
 .../wicket/ui/pages/bootstrap-overrides-darkly.css      | 13 +++++++++++++
 .../wicket/ui/pages/bootstrap-overrides-flatly.css      | 15 ++++++++++++++-
 ...es-sandstone.css => bootstrap-overrides-journal.css} | 14 ++++++++++++--
 ...ides-sandstone.css => bootstrap-overrides-lumen.css} | 14 ++++++++++++--
 ...ides-sandstone.css => bootstrap-overrides-paper.css} | 14 ++++++++++++--
 ...s-sandstone.css => bootstrap-overrides-readable.css} | 14 ++++++++++++--
 .../wicket/ui/pages/bootstrap-overrides-sandstone.css   | 17 +++++++++++++++++
 ...es-sandstone.css => bootstrap-overrides-simplex.css} | 14 ++++++++++++--
 ...ides-sandstone.css => bootstrap-overrides-slate.css} | 14 ++++++++++++--
 ...s-sandstone.css => bootstrap-overrides-spacelab.css} | 14 ++++++++++++--
 ...-sandstone.css => bootstrap-overrides-superhero.css} | 14 ++++++++++++--
 ...des-sandstone.css => bootstrap-overrides-united.css} | 14 ++++++++++++--
 ...rides-sandstone.css => bootstrap-overrides-yeti.css} | 14 ++++++++++++--
 .../isis/viewer/wicket/ui/pages/bootstrap-overrides.css | 13 +++++++++++++
 26 files changed, 258 insertions(+), 44 deletions(-)

diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.html
index f80ca9c..42599e4 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanel.html
@@ -22,7 +22,7 @@
     <body>
         <wicket:panel>
             <li class="dropdown" wicket:id="menuItems">
-                <a tabindex="-1" href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"><span wicket:id="name"></span> <span class="caret"></span></a>
+                <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"><span wicket:id="name"></span> <span class="caret"></span></a>
                 <ul wicket:id="topMenu" class="dropdown-menu scrollable-menu multi-level" role="menu">
                     <li wicket:id="subMenuItems">
                         <wicket:container wicket:id="content"></wicket:container>
@@ -37,7 +37,7 @@
             </wicket:fragment>
 
             <wicket:fragment wicket:id="folderItem">
-                <a wicket:id="folderName" tabindex="-1"></a>
+                <a wicket:id="folderName" ></a>
                 <ul class="dropdown-menu">
                     <li wicket:id="subMenuItems">
                         <wicket:container wicket:id="content"></wicket:container>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.html
index 10a9a63..0f5a4d6 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryActionsPanel.html
@@ -44,7 +44,7 @@
             </wicket:fragment>
 
             <wicket:fragment wicket:id="folderItem">
-                <a wicket:id="folderName" tabindex="-1"></a>
+                <a wicket:id="folderName" ></a>
                 <ul class="dropdown-menu">
                     <li wicket:id="subMenuItems">
                         <wicket:container wicket:id="content"></wicket:container>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.html
index d7165ef..4c919af 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.html
@@ -21,7 +21,7 @@
     <body>
         <wicket:panel>
              <span wicket:id="entityLinkWrapper" class="entityIconAndTitlePanel entityIconAndTitleComponentType">
-                 <a tabindex="-1" href="#" wicket:id="entityLink" class="entityUrlSource">
+                 <a href="#" wicket:id="entityLink" class="entityUrlSource">
                      <span wicket:id="entityFontAwesome"></span>
                      <img wicket:id="entityImage" class="entityImage"/>
                      <span wicket:id="entityTitle" class="entityTitle">[title]</span>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
index 14299b9..2d96922 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/icontitle/EntityIconAndTitlePanel.java
@@ -112,17 +112,15 @@ public class EntityIconAndTitlePanel extends PanelAbstract<ObjectAdapterModel> {
 
         final WebMarkupContainer entityLinkWrapper = new WebMarkupContainer(ID_ENTITY_LINK_WRAPPER);
 
-        final AbstractLink link = createIconAndTitle(adapter);
-        entityLinkWrapper.addOrReplace(link);
-        
+        entityLinkWrapper.addOrReplace(createLinkWithIconAndTitle(adapter));
+
         return entityLinkWrapper;
     }
 
-    private AbstractLink createIconAndTitle(final ObjectAdapter adapterIfAny) {
+    private AbstractLink createLinkWithIconAndTitle(final ObjectAdapter adapterIfAny) {
         final AbstractLink link = createDynamicallyVisibleLink();
 
         if(adapterIfAny != null) {
-            final String title = determineTitle();
 
             final String iconName = adapterIfAny.getIconName();
             final CssClassFaFacet cssClassFaFacet = adapterIfAny.getSpecification().getFacet(CssClassFaFacet.class);
@@ -136,7 +134,9 @@ public class EntityIconAndTitlePanel extends PanelAbstract<ObjectAdapterModel> {
                 Components.permanentlyHide(link, ID_ENTITY_ICON);
             }
 
-            link.addOrReplace(this.label = newLabel(ID_ENTITY_TITLE, titleAbbreviated(title)));
+            final String title = determineTitle();
+            this.label = newLabel(ID_ENTITY_TITLE, titleAbbreviated(title));
+            link.addOrReplace(this.label);
 
             String entityTypeName = adapterIfAny.getSpecification().getSingularName();
             link.add(new AttributeModifier("title", entityTypeName + ": " + title));
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/header/HeaderPanel.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/header/HeaderPanel.html
index 35a1424..53233cf 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/header/HeaderPanel.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/header/HeaderPanel.html
@@ -31,7 +31,7 @@
                         <span class="icon-bar"></span>
                         <span class="icon-bar"></span>
                     </button>
-                    <a tabindex="-1" class="navbar-brand" wicket:id="applicationName">
+                    <a class="navbar-brand" wicket:id="applicationName">
                         <span wicket:id="brandText"></span>
                         <img alt="Brand" wicket:id="brandLogo"/>
                     </a>
@@ -43,7 +43,7 @@
                     <ul class="nav navbar-nav" wicket:id="secondaryMenuBar"></ul>
                     <ul class="nav navbar-nav tertiary">
                         <li class="dropdown">
-                            <a tabindex="-1" href="#" class="dropdown-toggle" data-toggle="dropdown">
+                            <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                                 <i class="fa fa-fw fa-user"></i> <span class="userName" wicket:id="userName"></span><span class="caret"></span>
                             </a>
                             <ul wicket:id="tertiaryMenuBar" class="dropdown-menu" role="menu" style="min-width: 0px;">
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index fa47ecb..d616874 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -33,6 +33,7 @@ import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
 import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.behavior.Behavior;
 import org.apache.wicket.feedback.ComponentFeedbackMessageFilter;
+import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.LabeledWebMarkupContainer;
@@ -608,7 +609,12 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
 
     protected Component createInlinePromptComponent(
             final String id, final IModel<String> inlinePromptModel) {
-        return new Label(id, inlinePromptModel);
+        return new Label(id, inlinePromptModel) {
+            @Override protected void onComponentTag(final ComponentTag tag) {
+                super.onComponentTag(tag);
+                tag.put("tabindex","-1");
+            }
+        };
     }
 
     // ///////////////////////////////////////////////////////////////////
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index 4e6457b..31361c9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -186,7 +186,12 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
     protected Component createInlinePromptComponent(
             final String id,
             final IModel<String> inlinePromptModel) {
-        final Fragment fragment = new Fragment(id, "textInlinePrompt", this);
+        final Fragment fragment = new Fragment(id, "textInlinePrompt", this) {
+            @Override protected void onComponentTag(final ComponentTag tag) {
+                super.onComponentTag(tag);
+                tag.put("tabindex","-1");
+            }
+        };
         final Label label = new Label("scalarValue", inlinePromptModel);
         fragment.add(label);
         return fragment;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
index b2cdb8b..804658a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/string/MultiLineStringPanel.java
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.wicket.ui.components.scalars.string;
 
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
+import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.html.form.AbstractTextComponent;
 import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.markup.html.panel.Fragment;
@@ -73,7 +74,13 @@ public class MultiLineStringPanel extends ScalarPanelTextFieldParseableAbstract
             final String id,
             final IModel<String> inlinePromptModel) {
         final Fragment fragment = new Fragment(id, "textareaInlinePrompt", this);
-        final TextArea<String> inlinePromptTextArea = new TextArea<>("scalarValue", inlinePromptModel);
+        final TextArea<String> inlinePromptTextArea = new TextArea<String>("scalarValue", inlinePromptModel) {
+
+            @Override protected void onComponentTag(final ComponentTag tag) {
+                super.onComponentTag(tag);
+                tag.put("tabindex","-1");
+            }
+        };
         setRowsAndMaxLengthAttributesOn(inlinePromptTextArea);
         fragment.add(inlinePromptTextArea);
         return fragment;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-bootstrap-theme.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-bootstrap-theme.css
index df9795b..4ea0aa5 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-bootstrap-theme.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #337ab7;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #337ab7;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cerulean.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cerulean.css
index df9795b..08234be 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cerulean.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #2fa4e7;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #2fa4e7;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cosmo.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cosmo.css
index df9795b..5f49993 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cosmo.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #2780e3;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #2780e3;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cyborg.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cyborg.css
index df9795b..40283c5 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-cyborg.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #2a9fd6;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #2a9fd6;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-darkly.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-darkly.css
index dae7b57..379f173 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-darkly.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-darkly.css
@@ -21,3 +21,16 @@
     background-color: #ffffff;
     color: #000000;
 }
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #0ce3ac;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #0ce3ac;
+}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-flatly.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-flatly.css
index 1830f26..d84b2cb 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-flatly.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-flatly.css
@@ -30,4 +30,17 @@
 .list-inline > li {
     padding-left: 0px;
     padding-right: 0px;
-}
\ No newline at end of file
+}
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: rgb(24, 188, 156);
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px rgb(24, 188, 156);
+}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-journal.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-journal.css
index df9795b..1d3c3bf 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-journal.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #eb6864;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #eb6864;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-lumen.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-lumen.css
index df9795b..574266a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-lumen.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #158cba;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #158cba;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-paper.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-paper.css
index df9795b..4422cf8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-paper.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #2196f3;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #2196f3;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-readable.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-readable.css
index df9795b..94eb80f 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-readable.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #4582ec;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #4582ec;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
index df9795b..b5b1819 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
@@ -20,3 +20,20 @@
 .input-group-sm > .input-group-addon {
     padding: 0 11px;
 }
+
+
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+a.navbar-brand:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #93c54b;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #93c54b;
+}
+
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-simplex.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-simplex.css
index df9795b..881277a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-simplex.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #d9230f;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #d9230f;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-slate.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-slate.css
index df9795b..78d6064 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-slate.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #ffffff;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #ffffff;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-spacelab.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-spacelab.css
index df9795b..7e47f07 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-spacelab.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #3399f3;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #3399f3;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-superhero.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-superhero.css
index df9795b..ef186dd 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-superhero.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #df691a;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #df691a;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-united.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-united.css
index df9795b..50a43e3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-united.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #e95420;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #e95420;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-yeti.css
similarity index 70%
copy from core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
copy to core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-yeti.css
index df9795b..35e2a57 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-sandstone.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-yeti.css
@@ -17,6 +17,16 @@
  *  under the License.
  */
 
-.input-group-sm > .input-group-addon {
-    padding: 0 11px;
+
+.sidebar-panel :focus,
+h4.iconAndTitle a:focus,
+ul.nav-tabs li.active a:focus,
+ul.nav-tabs li a:focus,
+fieldset.inputFormTable :focus,
+li.additionalLinkItem a:focus,
+a.scalarValueInlinePromptLink:focus textarea,
+:focus {
+    outline: none;
+    border-color: #008cba;
+    box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.075) inset, 0px 0px 8px #008cba;
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
index da16f15..280267a 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides.css
@@ -1032,3 +1032,16 @@ such as https://chrome.google.com/webstore/detail/focus-indicator/heeoeadndnhebm
     display: block;
 }
 
+
+h4.iconAndTitle a {
+    outline: none;
+    display: inline-block;
+}
+h4.iconAndTitle a span.entityTitle:focus {
+    outline: none;
+}
+h4.iconAndTitle a:focus {
+    text-decoration: none;
+}
+
+


[isis] 01/06: ISIS-2050: updates docs, describe the isis.reflector.introspection.mode config property.

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

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

commit 44757fcfbb3d2633a4e37beaafd37e5656d55c83
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Dec 20 18:47:06 2018 +0000

    ISIS-2050: updates docs, describe the isis.reflector.introspection.mode config property.
---
 .../guides/rgcfg/_rgcfg_configuring-core.adoc      | 37 ++++++++++++++++++++++
 .../_rgcms_classes_AppManifest2-bootstrapping.adoc |  4 +--
 .../_ugtst_integ-test-support_bootstrapping.adoc   | 18 +++++++++++
 3 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
index f0e05d0..bfc748f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcfg/_rgcfg_configuring-core.adoc
@@ -311,14 +311,51 @@ If the setting is changed to disabled then this may reduce application start-up
 
 In general, parallelisation should result in faster bootstrap times.
 
+|`isis.reflector.introspect.` +
+`mode`
+|`lazy`,`lazy_unless_production`,`full` +
+(`lazy_unless_production`)
+|How complete to build the metamodel during bootstrapping.
+
+Setting to `lazy` In general, parallelisation should result in faster bootstrap times.
+This is discussed further below.
+
+
+[IMPORTANT]
+====
+Metamodel validation is only done after full introspection.
+====
+
 
 |===
 
 
+=== Lazy vs Full introspection.
+
+The framework performs classpath scanning to identify all domain classes (domain services, mixins, entities, view models and fixture scripts), and the class-level facets for all of these are always created during bootstrapping.
+
+In addition, the members for all domain services and mixins are also created, because these can give rise to contributed members of the entities/view models.
+
+Lazy introspection means that the class members (properties, collections and actions) and their respective facets are _not_ created for all of the entities/view models in the domain model.
+Instead these are created only on first access.
+The purpose of this is primarily to speed up bootstrapping during development.
+
+To enable lazy introspection, either set the `isis.reflector.introspect.mode` configuration property to "lazy" or to "lazy_unless_production" (the latter only if also running with a deployment type of "production").
+
+However, the trade-off is that metamodel validation is _not_ performed in lazy mode.
+
+[TIP]
+====
+Note that integration tests are run in `production` mode, and so by default these perform full introspection.
+This can be overridden when calling the superclass (`IntegrationTestAbstract3`)'s contributor with `IntrospectionMode.LAZY`.
+====
+
+
 
 [[__rgcfg_configuring-core_metamodel-validation]]
 == MetaModel Validation
 
+Metamodel validation is only done if full introspection is configured, see the `isis.reflector.introspect.mode` configuration property.
 
 .Metamodel Validation
 [cols="2a,1,3a", options="header"]
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest2-bootstrapping.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest2-bootstrapping.adoc
index dada1fa..cd068e3 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest2-bootstrapping.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_classes_AppManifest2-bootstrapping.adoc
@@ -24,7 +24,7 @@ These are executed automatically (and in the correct order) within integration t
 [IMPORTANT]
 ====
 Implementations of `Module` are expected to have value-semantics.
-Each `Module` can declare its respective dependencies (using `Module#getDependencies()`) simply by instantiating the `Module`s on which it depends.
+Each `Module` can declare its respective dependencies (using `Module#getDependencies()`) simply by instantiating the ``Module``s on which it depends.
 Any duplicates from the computed graph of all dependencies are automatically eliminated.
 ====
 
@@ -188,6 +188,6 @@ The `AppManifest` implementation must (necessarily) reference all the modules wt
 (As noted above), the `IntegrationTestAbstract3` adapter class is bootstrapped from a `Module` rather than an `AppManifest`.
 This therefore allows the integration tests to reside alongside the module that they exercise, and to bootstrap only the subset of the application required (that is, the module being tested and any of its transitive dependencies)..
 
-For more on `IntegrationTestAbstract3`, see the xref:../ugtst/ugtst.adoc#__ugtst_integ-test-support_abstract-class_IntegrationTestAbstract3[testing user guide].
+For more on `IntegrationTestAbstract3`, see the xref:../ugtst/ugtst.adoc#_ugtst_integ-test-support_bootstrapping[testing user guide].
 
 
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
index 8180c9d..0a6ff48 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugtst/_ugtst_integ-test-support_bootstrapping.adoc
@@ -28,3 +28,21 @@ where `DomainAppApplicationModule` in turn declares all the dependencies that ma
 If required, the `Module` can be customised first using the various `withXxx(...)` methods to specify addition modules, domain services and configuration properties.
 
 
+== Faster Bootstrapping
+
+The `IntegrationTestAbstract3` superclass also allows the introspection mode to be specified, which can reduce the time to bootstrap the test.
+
+By default integration tests are run in "production" deployment mode, so with the `isis.reflector.introspection.mode` set to its default of "lazy_unless_production" this will actually result in full introspection of the Apache Isis metamodel.
+The _does_ have the benefit that the metamodel will be validated, but - as mentioned - with the corresponding downside of taking longer to bootstrap.
+
+To bootstrap lazily, override as follows:
+
+[source,java]
+----
+public abstract class DomainAppIntegTestAbstract extends IntegrationTestAbstract3 {
+
+    public DomainAppIntegTestAbstract() {
+        super(new DomainAppApplicationModule(), IntrospectionMode.LAZY);
+    }
+}
+----


[isis] 03/06: ISIS-1997: adds a sidebar, can toggle

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

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

commit 73dcd18a007d8d5631f449e36adab49e21deb389
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Dec 19 14:53:18 2018 +0000

    ISIS-1997: adds a sidebar, can toggle
---
 .../wicket/viewer/IsisWicketApplication.java       |   4 +
 .../actionpromptsb/ActionPromptSidebar.html        |  40 +++++++
 .../actionpromptsb/ActionPromptSidebar.java        |  77 ++++++++++++
 .../isis/viewer/wicket/ui/pages/PageAbstract.html  |  26 ++++-
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  |  16 ++-
 .../ui/pages/SidebarCssResourceReference.java      |  33 ++++++
 .../wicket/ui/pages/jquery.isis.wicket.viewer.js   |   5 +
 .../isis/viewer/wicket/ui/pages/simple-sidebar.css | 129 +++++++++++++++++++++
 8 files changed, 326 insertions(+), 4 deletions(-)

diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index deff2d1..2542513 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -345,6 +345,10 @@ public class IsisWicketApplication
             getRequestCycleSettings().setRenderStrategy(RequestCycleSettings.RenderStrategy.REDIRECT_TO_RENDER);
 
             getResourceSettings().setParentFolderPlaceholder("$up$");
+//            getResourceSettings().setCachingStrategy(
+//                    new FilenameWithVersionResourceCachingStrategy(
+//                            new CachingResourceVersion(
+//                                    new MessageDigestResourceVersion())));
 
             final IsisConfigurationBuilder isisConfigurationBuilder = obtainConfigBuilder();
             isisConfigurationBuilder.addDefaultConfigurationResourcesAndPrimers();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.html
new file mode 100644
index 0000000..a3f460a
--- /dev/null
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.html
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:wicket="http://wicket.apache.org"
+      xml:lang="en"
+      lang="en">
+<body>
+<wicket:panel>
+    <li class="sidebar-brand">
+        <h4 wicket:id="header">Action header</h4>
+
+    </li>
+    <div wicket:id="content"></div>
+</wicket:panel>
+    <script>
+        $("#menu-toggle").click(function(e) {
+            e.preventDefault();
+            $("#wrapper").toggleClass("toggled");
+        });
+    </script>
+</body>
+</html>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
new file mode 100644
index 0000000..e310b2f
--- /dev/null
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
@@ -0,0 +1,77 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.viewer.wicket.ui.components.actionpromptsb;
+
+import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.panel.GenericPanel;
+
+import org.apache.isis.viewer.wicket.model.models.ActionPrompt;
+
+public class ActionPromptSidebar extends GenericPanel<Void> implements ActionPrompt /* implements ActionPrompt */ {
+
+    private static final long serialVersionUID = 1L;
+
+    public ActionPromptSidebar(final String id) {
+        super(id);
+
+        add(new Label(getTitleId(), "(no action)"));
+        add(new WebMarkupContainer(getContentId()));
+    }
+
+    public static ActionPromptSidebar newSidebar(String id) {
+        return new ActionPromptSidebar(id);
+    }
+
+    @Override
+    public String getTitleId() {
+        return "header";
+    }
+
+    @Override
+    public String getContentId() {
+        return "content";
+    }
+
+
+    @Override
+    public void setTitle(final Component component, final AjaxRequestTarget target) {
+
+    }
+
+    @Override
+    public void setPanel(final Component component, final AjaxRequestTarget target) {
+
+    }
+
+    @Override
+    public void showPrompt(final AjaxRequestTarget target) {
+        target.appendJavaScript("$('#wrapper').toggleClass('toggled')");
+    }
+
+    @Override
+    public void closePrompt(final AjaxRequestTarget target) {
+        target.appendJavaScript("$('#wrapper').toggleClass('toggled')");
+    }
+
+    @Override
+    public void setOnClose(final CloseHandler closeHandler) {
+
+    }
+}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
index 9785ed1..aaa4753 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
@@ -41,7 +41,31 @@
 
                 <div id="body">
 
-                    <wicket:child/>
+                    <div id="wrapper" class="toggled">
+
+                        <div id="sidebar-wrapper">
+
+
+                            <ul class="sidebar-nav">
+                                <div wicket:id="actionPromptSidebar"></div>
+                            </ul>
+                        </div>
+
+                        <div id="page-content-wrapper">
+                            <div class="container-fluid">
+                                <div class="row">
+                                    <div class="col-lg-12">
+
+                                        <wicket:child/>
+
+                                        <a href="#menu-toggle" class="btn btn-default" id="menu-toggle">Toggle Menu</a>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+
+                    </div>
+
 
                     <div class="clearfix" style="margin-bottom: 100px"></div>
                 </div>
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 0be0dd7..acc959f 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
@@ -83,6 +83,7 @@ import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
 import org.apache.isis.viewer.wicket.ui.components.actionprompt.ActionPromptModalWindow;
+import org.apache.isis.viewer.wicket.ui.components.actionpromptsb.ActionPromptSidebar;
 import org.apache.isis.viewer.wicket.ui.components.bookmarkedpages.BookmarkedPagesPanel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbPanel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.favicon.Favicon;
@@ -121,7 +122,8 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
     private static final String ID_BOOKMARKED_PAGES = "bookmarks";
 
     private static final String ID_ACTION_PROMPT_MODAL_WINDOW = "actionPromptModalWindow";
-    
+    private static final String ID_ACTION_PROMPT_SIDEBAR = "actionPromptSidebar";
+
     private static final String ID_PAGE_TITLE = "pageTitle";
 
     private static final String ID_FAVICON = "favicon";
@@ -208,6 +210,7 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
             themeDiv.add(footer);
 
             addActionPromptModalWindow(themeDiv);
+            addActionPromptSidebar(themeDiv);
 
             this.childComponentIds = Collections.unmodifiableList(Arrays.asList(childComponentIds));
 
@@ -290,6 +293,7 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
 
         response.render(CssHeaderItem.forReference(FontAwesomeCssReference.instance()));
         response.render(CssHeaderItem.forReference(new BootstrapOverridesCssResourceReference()));
+        response.render(CssHeaderItem.forReference(new SidebarCssResourceReference()));
         contributeThemeSpecificOverrides(response);
 
         response.render(JavaScriptReferenceHeaderItem.forReference(JQUERY_LIVEQUERY_JS));
@@ -464,9 +468,10 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
     // ///////////////////////////////////////////////////////////////////
     
     private ActionPromptModalWindow actionPromptModalWindow;
+    private ActionPromptSidebar actionPromptSidebar;
 
     public ActionPrompt getActionPrompt() {
-        return actionPromptModalWindow;
+        return actionPromptSidebar;
     }
 
     private void addActionPromptModalWindow(final MarkupContainer parent) {
@@ -474,7 +479,12 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
         parent.addOrReplace(actionPromptModalWindow);
     }
 
-    
+    private void addActionPromptSidebar(final MarkupContainer parent) {
+        actionPromptSidebar = ActionPromptSidebar.newSidebar(ID_ACTION_PROMPT_SIDEBAR);
+        parent.addOrReplace(actionPromptSidebar);
+    }
+
+
     // ///////////////////////////////////////////////////////////////////
     // UI Hint
     // ///////////////////////////////////////////////////////////////////
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/SidebarCssResourceReference.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/SidebarCssResourceReference.java
new file mode 100644
index 0000000..7e98e37
--- /dev/null
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/SidebarCssResourceReference.java
@@ -0,0 +1,33 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.viewer.wicket.ui.pages;
+
+import org.apache.wicket.request.resource.CssResourceReference;
+
+/**
+ * A CSS resource reference that provides CSS rules which override the CSS rules
+ * provided by the currently active Bootstrap theme.
+ * Usually the overrides rules are about sizes and weights, but should not change any colors
+ */
+public class SidebarCssResourceReference extends CssResourceReference {
+
+    public SidebarCssResourceReference() {
+        super(SidebarCssResourceReference.class, "simple-sidebar.css");
+    }
+}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
index 705c79c..273272c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
@@ -174,6 +174,11 @@ $(function() {
         }
     );
 
+    $('#menu-toggle').click(function(e) {
+        e.preventDefault();
+        $('#wrapper').toggleClass('toggled');
+    });
+
 /*
     $('.editing .editable').parent().hover(function () {
         var inputEl = $(this).find("> .editable")
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
new file mode 100644
index 0000000..449ebaf
--- /dev/null
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
@@ -0,0 +1,129 @@
+/*!
+ * Start Bootstrap - Simple Sidebar (http://startbootstrap.com/)
+ * Copyright 2013-2016 Start Bootstrap
+ * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE)
+ */
+
+ body {
+    overflow-x: hidden;
+ }
+
+/* Toggle Styles */
+
+#wrapper {
+    padding-left: 0;
+    -webkit-transition: all 0.5s ease;
+    -moz-transition: all 0.5s ease;
+    -o-transition: all 0.5s ease;
+    transition: all 0.5s ease;
+}
+
+#wrapper.toggled {
+    padding-left: 250px;
+}
+
+#sidebar-wrapper {
+    z-index: 1000;
+    position: fixed;
+    left: 250px;
+    width: 0;
+    height: 100%;
+    margin-left: -250px;
+    overflow-y: auto;
+    background: #000;
+    -webkit-transition: all 0.5s ease;
+    -moz-transition: all 0.5s ease;
+    -o-transition: all 0.5s ease;
+    transition: all 0.5s ease;
+}
+
+#wrapper.toggled #sidebar-wrapper {
+    width: 250px;
+}
+
+#page-content-wrapper {
+    width: 100%;
+    position: absolute;
+    padding: 15px;
+}
+
+#wrapper.toggled #page-content-wrapper {
+    position: absolute;
+    margin-right: -250px;
+}
+
+/* Sidebar Styles */
+
+.sidebar-nav {
+    position: absolute;
+    top: 0;
+    width: 250px;
+    margin: 0;
+    padding: 0;
+    list-style: none;
+}
+
+.sidebar-nav li {
+    text-indent: 20px;
+    line-height: 40px;
+}
+
+.sidebar-nav li a {
+    display: block;
+    text-decoration: none;
+    color: #999999;
+}
+
+.sidebar-nav li a:hover {
+    text-decoration: none;
+    color: #fff;
+    background: rgba(255,255,255,0.2);
+}
+
+.sidebar-nav li a:active,
+.sidebar-nav li a:focus {
+    text-decoration: none;
+}
+
+.sidebar-nav > .sidebar-brand {
+    height: 65px;
+    font-size: 18px;
+    line-height: 60px;
+}
+
+.sidebar-nav > .sidebar-brand a {
+    color: #999999;
+}
+
+.sidebar-nav > .sidebar-brand a:hover {
+    color: #fff;
+    background: none;
+}
+
+@media(min-width:768px) {
+    #wrapper {
+        padding-left: 250px;
+    }
+
+    #wrapper.toggled {
+        padding-left: 0;
+    }
+
+    #sidebar-wrapper {
+        width: 250px;
+    }
+
+    #wrapper.toggled #sidebar-wrapper {
+        width: 0;
+    }
+
+    #page-content-wrapper {
+        padding: 20px;
+        position: relative;
+    }
+
+    #wrapper.toggled #page-content-wrapper {
+        position: relative;
+        margin-right: 0;
+    }
+}
\ No newline at end of file


[isis] 05/06: ISIS-1997: fine-tuning sidebar prompt

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

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

commit effc68817649d73d0728431ecfc64686cfa9ca6a
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Dec 20 12:19:35 2018 +0000

    ISIS-1997: fine-tuning sidebar prompt
    
    - don't add the icon to the action name at the top of the panel (also for modal dialog, too)
    - escape key should cancel
    - removes toggle button from every page
    - specify width of panel as 20% rather than hardcoded number of pixels
---
 .../actionpromptsb/ActionPromptSidebar.java        |  2 +-
 .../linkandlabel/ActionLinkFactoryAbstract.java    | 36 ++++++++++++++--------
 .../isis/viewer/wicket/ui/pages/PageAbstract.html  |  1 -
 .../wicket/ui/pages/jquery.isis.wicket.viewer.js   |  6 ++++
 .../isis/viewer/wicket/ui/pages/simple-sidebar.css | 26 ++++++++--------
 5 files changed, 45 insertions(+), 26 deletions(-)

diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
index ab0ba10..7dd619c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionpromptsb/ActionPromptSidebar.java
@@ -78,10 +78,10 @@ public class ActionPromptSidebar extends GenericPanel<Void> implements ActionPro
     @Override
     public void closePrompt(final AjaxRequestTarget target) {
 
+        setVisible(false);
         if (target != null) {
             hide(target);
         }
-        setVisible(false);
         if(closeHandlerIfAny != null) {
             closeHandlerIfAny.close(target);
         }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index e90474b..1db195c 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -31,7 +31,9 @@ import org.apache.wicket.Application;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.AbstractLink;
+import org.apache.wicket.model.AbstractReadOnlyModel;
 import org.apache.wicket.request.cycle.RequestCycle;
 
 import org.apache.isis.applib.annotation.PromptStyle;
@@ -58,7 +60,6 @@ import org.apache.isis.viewer.wicket.model.models.ToggledMementosProvider;
 import org.apache.isis.viewer.wicket.ui.ComponentType;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
 import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistryAccessor;
-import org.apache.isis.viewer.wicket.ui.components.actionprompt.ActionPromptHeaderPanel;
 import org.apache.isis.viewer.wicket.ui.components.actions.ActionFormExecutorStrategy;
 import org.apache.isis.viewer.wicket.ui.components.actions.ActionParametersPanel;
 import org.apache.isis.viewer.wicket.ui.components.scalars.ScalarPanelAbstract2;
@@ -169,16 +170,16 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
             final ActionPromptProvider promptProvider = ActionPromptProvider.Util.getFrom(actionLink.getPage());
             final ActionPrompt prompt = promptProvider.getActionPrompt();
 
-            // REVIEW: I wonder if this is still needed after the ISIS-1613 rework?
-            final ActionPromptHeaderPanel titlePanel =
-                    PersistenceSession.ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
-                            new Callable<ActionPromptHeaderPanel>() {
-                                @Override
-                                public ActionPromptHeaderPanel call() throws Exception {
-                                    final String titleId = prompt.getTitleId();
-                                    return new ActionPromptHeaderPanel(titleId, actionModel);
-                                }
-                            });
+//            // REVIEW: I wonder if this is still needed after the ISIS-1613 rework?
+//            final ActionPromptHeaderPanel titlePanel =
+//                    PersistenceSession.ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(
+//                            new Callable<ActionPromptHeaderPanel>() {
+//                                @Override
+//                                public ActionPromptHeaderPanel call() throws Exception {
+//                                    final String titleId = prompt.getTitleId();
+//                                    return new ActionPromptHeaderPanel(titleId, actionModel);
+//                                }
+//                            });
 
 
             //
@@ -194,7 +195,14 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
 
                 actionParametersPanel.setShowHeader(false);
 
-                prompt.setTitle(titlePanel, target);
+                final Label label = new Label(prompt.getTitleId(), new AbstractReadOnlyModel<String>() {
+                    @Override
+                    public String getObject() {
+                        final ObjectAction action = actionModel.getActionMemento().getAction(getSpecificationLoader());
+                        return action.getName();
+                    }
+                });
+                prompt.setTitle(label, target);
                 prompt.setPanel(actionParametersPanel, target);
                 actionParametersPanel.setActionPrompt(prompt);
                 prompt.showPrompt(target);
@@ -309,6 +317,10 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
         return IsisContext.getSessionFactory();
     }
 
+    private SpecificationLoader getSpecificationLoader() {
+        return getIsisSessionFactory().getSpecificationLoader();
+    }
+
     //endregion
 
 }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
index aaa4753..f73406d 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
@@ -58,7 +58,6 @@
 
                                         <wicket:child/>
 
-                                        <a href="#menu-toggle" class="btn btn-default" id="menu-toggle">Toggle Menu</a>
                                     </div>
                                 </div>
                             </div>
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
index 273272c..5899557 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/jquery.isis.wicket.viewer.js
@@ -179,6 +179,12 @@ $(function() {
         $('#wrapper').toggleClass('toggled');
     });
 
+    $('#sidebar-wrapper').keyup(function(e) {
+        if (e.keyCode == 27) {
+           $('#wrapper').addClass('toggled');
+        }
+    });
+
 /*
     $('.editing .editable').parent().hover(function () {
         var inputEl = $(this).find("> .editable")
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
index e67c026..32ee2c8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/simple-sidebar.css
@@ -4,9 +4,10 @@
  * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE)
  */
 
- body {
-    overflow-x: hidden;
- }
+body {
+   overflow-x: hidden;
+}
+
 
 /* Toggle Styles */
 
@@ -19,16 +20,16 @@
 }
 
 #wrapper.toggled {
-    padding-left: 350px;
+    padding-left: 20%;
 }
 
 #sidebar-wrapper {
     z-index: 1000;
     position: fixed;
-    left: 350px;
+    left: 20%;
     width: 0;
     height: 100%;
-    margin-left: -350px;
+    margin-left: -20%;
     overflow-y: auto;
     border: 1px dotted;
     -webkit-transition: all 0.5s ease;
@@ -38,7 +39,7 @@
 }
 
 #wrapper.toggled #sidebar-wrapper {
-    width: 350px;
+    width: 20%;
 }
 
 #page-content-wrapper {
@@ -49,7 +50,7 @@
 
 #wrapper.toggled #page-content-wrapper {
     position: absolute;
-    margin-right: -350px;
+    margin-right: -20%;
 }
 
 /* Sidebar Styles */
@@ -57,7 +58,7 @@
 .sidebar-nav {
     position: absolute;
     top: 0;
-    width: 350px;
+    width: 100%;
     margin: 0;
     padding: 0;
     list-style: none;
@@ -111,7 +112,7 @@
 
 @media(min-width:768px) {
     #wrapper {
-        padding-left: 350px;
+        padding-left: 20%;
     }
 
     #wrapper.toggled {
@@ -119,7 +120,7 @@
     }
 
     #sidebar-wrapper {
-        width: 350px;
+        width: 20%;
     }
 
     #wrapper.toggled #sidebar-wrapper {
@@ -135,4 +136,5 @@
         position: relative;
         margin-right: 0;
     }
-}
\ No newline at end of file
+}
+