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 2017/11/05 10:54:46 UTC

[isis] branch ISIS-1766-bs3-for-menubars created (now da8e039)

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

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


      at da8e039  ISIS-1766: wip, introduce bs3 for menubars

This branch includes the following new commits:

     new 4396b97  ISIS-1766: adds Menu#unreferencedActions as a flag.
     new 78d48f1  ISIS-1766: renames ActionLayoutDataOwner to ServiceActionLoayoutDataOwner
     new da8e039  ISIS-1766: wip, introduce bs3 for menubars

The 3 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.


-- 
To stop receiving notification emails like this one, please contact
['"commits@isis.apache.org" <co...@isis.apache.org>'].

[isis] 02/03: ISIS-1766: renames ActionLayoutDataOwner to ServiceActionLoayoutDataOwner

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

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

commit 78d48f1ce657454219e1dfd763e9ef22ad7755c7
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Nov 5 10:13:14 2017 +0000

    ISIS-1766: renames ActionLayoutDataOwner to ServiceActionLoayoutDataOwner
---
 .../main/java/org/apache/isis/applib/layout/menus/MenuSection.java  | 2 +-
 .../apache/isis/applib/layout/menus/ServiceActionLayoutData.java    | 6 +++---
 ...ActionLayoutDataOwner.java => ServiceActionLayoutDataOwner.java} | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuSection.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuSection.java
index 871d205..3ace4e7 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuSection.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuSection.java
@@ -36,7 +36,7 @@ import com.google.common.collect.Lists;
             "actions"
         }
 )
-public class MenuSection implements Serializable, ActionLayoutDataOwner {
+public class MenuSection implements Serializable, ServiceActionLayoutDataOwner {
 
     private static final long serialVersionUID = 1L;
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutData.java
index df671ec..ca0234d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutData.java
@@ -178,7 +178,7 @@ public class ServiceActionLayoutData implements Serializable {
 
 
 
-    private ActionLayoutDataOwner owner;
+    private ServiceActionLayoutDataOwner owner;
     /**
      * Owner.
      *
@@ -187,11 +187,11 @@ public class ServiceActionLayoutData implements Serializable {
      * </p>
      */
     @XmlTransient
-    public ActionLayoutDataOwner getOwner() {
+    public ServiceActionLayoutDataOwner getOwner() {
         return owner;
     }
 
-    public void setOwner(final ActionLayoutDataOwner owner) {
+    public void setOwner(final ServiceActionLayoutDataOwner owner) {
         this.owner = owner;
     }
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ActionLayoutDataOwner.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
similarity index 94%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/menus/ActionLayoutDataOwner.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
index a2cab1b..bf4a136 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ActionLayoutDataOwner.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import org.apache.isis.applib.layout.component.Owner;
 
-public interface ActionLayoutDataOwner extends Owner {
+public interface ServiceActionLayoutDataOwner extends Owner {
     List<ServiceActionLayoutData> getActions();
     void setActions(List<ServiceActionLayoutData> actions);
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 01/03: ISIS-1766: adds Menu#unreferencedActions as a flag.

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

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

commit 4396b97d70422960c7a98174fdf735897448892b
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Nov 5 10:12:06 2017 +0000

    ISIS-1766: adds Menu#unreferencedActions as a flag.
    
    Not yet in use
---
 .../org/apache/isis/applib/layout/menus/Menu.java     | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/Menu.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menus/Menu.java
index a32b7e3..68233fd 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/Menu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menus/Menu.java
@@ -90,4 +90,23 @@ public class Menu implements Serializable {
         this.sections = sections;
     }
 
+
+    private Boolean unreferencedActions;
+
+    /**
+     * Whether this menu should be used to hold any unreferenced actions.
+     *
+     * <p>
+     *     Any menubars layout must have precisely one menu that has this attribute set.
+     * </p>
+     */
+    @XmlAttribute(required = false)
+    public Boolean isUnreferencedActions() {
+        return unreferencedActions;
+    }
+
+    public void setUnreferencedActions(final Boolean unreferencedActions) {
+        this.unreferencedActions = unreferencedActions;
+    }
+
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.

[isis] 03/03: ISIS-1766: wip, introduce bs3 for menubars

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

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

commit da8e039ea280a89fb12975973c5c5e3a3d0593bb
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Nov 5 10:54:35 2017 +0000

    ISIS-1766: wip, introduce bs3 for menubars
---
 .../ServiceActionLayoutData.java                   |  2 +-
 .../ServiceActionLayoutDataOwner.java              |  4 +-
 .../applib/layout/{component => grid}/Grid.java    |  7 ++-
 .../layout/{component => grid}/GridAbstract.java   | 10 +++-
 .../applib/layout/grid/bootstrap3/BS3Grid.java     |  4 +-
 .../Menu.java}                                     |  8 +--
 .../MenuBar.java}                                  | 11 ++--
 .../isis/applib/layout/menubars/MenuBars.java      | 55 +++++++++++++++++++
 .../MenuSection.java}                              |  8 +--
 .../Menu.java => menubars/bootstrap3/BS3Menu.java} | 15 +++---
 .../bootstrap3/BS3MenuBar.java}                    | 13 ++---
 .../bootstrap3/BS3MenuBars.java}                   | 62 +++++++++++++++++-----
 .../bootstrap3/BS3MenuSection.java}                | 11 ++--
 .../bootstrap3}/package-info.java                  |  6 +--
 .../applib/services/grid/GridLoaderService.java    |  1 -
 .../isis/applib/services/grid/GridService.java     |  1 -
 .../applib/services/grid/GridSystemService.java    |  3 +-
 .../isis/applib/services/layout/LayoutService.java |  1 -
 .../services/menu/MenuBarsLoaderService.java       |  6 +--
 .../isis/applib/services/menu/MenuBarsService.java |  6 +--
 ...est.java => BS3BS3MenuBars_roundtrip_Test.java} | 18 ++++---
 .../metamodel/facets/object/grid/GridFacet.java    |  1 -
 .../facets/object/grid/GridFacetDefault.java       |  1 -
 .../services/grid/GridLoaderServiceDefault.java    |  1 -
 .../services/grid/GridServiceDefault.java          |  1 -
 .../services/grid/GridSystemServiceAbstract.java   |  3 +-
 .../grid/bootstrap3/GridSystemServiceBS3.java      |  1 -
 .../services/layout/LayoutServiceDefault.java      |  5 +-
 .../{MenuBarsTest.java => BS3BS3MenuBarsTest.java} |  6 +--
 .../menu/MenuBarsLoaderServiceDefault.java         |  6 +--
 .../services/menu/MenuBarsServiceDefault.java      | 38 ++++++-------
 .../resources/DomainObjectResourceServerside.java  |  1 -
 .../resources/DomainTypeResourceServerside.java    |  1 -
 .../resources/MenuBarsResourceServerside.java      | 23 ++++----
 .../serviceactions/ServiceActionUtil.java          | 18 +++----
 .../serviceactions/ServiceActionsPanelFactory.java |  4 +-
 .../serviceactions/TertiaryMenuPanelFactory.java   |  4 +-
 .../CollectionContentsAsAjaxTablePanel.java        |  1 -
 .../links/EntityLinksSelectorPanelFactory.java     |  1 -
 .../viewer/wicket/ui/pages/entity/EntityPage.java  |  1 -
 40 files changed, 224 insertions(+), 145 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/component/ServiceActionLayoutData.java
similarity index 99%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutData.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/component/ServiceActionLayoutData.java
index ca0234d..bd4196c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/component/ServiceActionLayoutData.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.menus;
+package org.apache.isis.applib.layout.component;
 
 import java.io.Serializable;
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java b/core/applib/src/main/java/org/apache/isis/applib/layout/component/ServiceActionLayoutDataOwner.java
similarity index 91%
copy from core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
copy to core/applib/src/main/java/org/apache/isis/applib/layout/component/ServiceActionLayoutDataOwner.java
index bf4a136..360b108 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/component/ServiceActionLayoutDataOwner.java
@@ -16,12 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.menus;
+package org.apache.isis.applib.layout.component;
 
 import java.util.List;
 
-import org.apache.isis.applib.layout.component.Owner;
-
 public interface ServiceActionLayoutDataOwner extends Owner {
     List<ServiceActionLayoutData> getActions();
     void setActions(List<ServiceActionLayoutData> actions);
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/component/Grid.java b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/Grid.java
similarity index 88%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/component/Grid.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/grid/Grid.java
index d91daec..01a3992 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/component/Grid.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/Grid.java
@@ -16,11 +16,16 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.component;
+package org.apache.isis.applib.layout.grid;
 
 import java.util.LinkedHashMap;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.layout.component.ActionLayoutData;
+import org.apache.isis.applib.layout.component.CollectionLayoutData;
+import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
+import org.apache.isis.applib.layout.component.FieldSet;
+import org.apache.isis.applib.layout.component.PropertyLayoutData;
 import org.apache.isis.applib.services.layout.LayoutService;
 
 /**
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/component/GridAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/GridAbstract.java
similarity index 92%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/component/GridAbstract.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/grid/GridAbstract.java
index 7d04e6a..d66c8f1 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/component/GridAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/GridAbstract.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.component;
+package org.apache.isis.applib.layout.grid;
 
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -27,6 +27,13 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
 import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.layout.component.ActionLayoutData;
+import org.apache.isis.applib.layout.component.ActionLayoutDataOwner;
+import org.apache.isis.applib.layout.component.CollectionLayoutData;
+import org.apache.isis.applib.layout.component.CollectionLayoutDataOwner;
+import org.apache.isis.applib.layout.component.FieldSet;
+import org.apache.isis.applib.layout.component.FieldSetOwner;
+import org.apache.isis.applib.layout.component.PropertyLayoutData;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3Grid;
 import org.apache.isis.applib.services.layout.LayoutService;
 
@@ -40,7 +47,6 @@ import org.apache.isis.applib.services.layout.LayoutService;
 @XmlTransient // ignore this class
 public abstract class GridAbstract implements Grid {
 
-
     private Class<?> domainClass;
 
     @Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Grid.java b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Grid.java
index dc836ec..6661215 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Grid.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3Grid.java
@@ -35,9 +35,9 @@ import org.apache.isis.applib.layout.component.ActionLayoutData;
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
 import org.apache.isis.applib.layout.component.FieldSet;
-import org.apache.isis.applib.layout.component.Grid;
-import org.apache.isis.applib.layout.component.GridAbstract;
 import org.apache.isis.applib.layout.component.PropertyLayoutData;
+import org.apache.isis.applib.layout.grid.Grid;
+import org.apache.isis.applib.layout.grid.GridAbstract;
 import org.apache.isis.applib.services.dto.Dto;
 
 /**
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/Menu.java
similarity index 73%
copy from core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
copy to core/applib/src/main/java/org/apache/isis/applib/layout/menubars/Menu.java
index bf4a136..f2d7eed 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/Menu.java
@@ -16,13 +16,9 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.menus;
+package org.apache.isis.applib.layout.menubars;
 
-import java.util.List;
+public interface Menu {
 
-import org.apache.isis.applib.layout.component.Owner;
 
-public interface ServiceActionLayoutDataOwner extends Owner {
-    List<ServiceActionLayoutData> getActions();
-    void setActions(List<ServiceActionLayoutData> actions);
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBar.java
similarity index 73%
copy from core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
copy to core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBar.java
index bf4a136..7f84461 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBar.java
@@ -16,13 +16,8 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.menus;
+package org.apache.isis.applib.layout.menubars;
 
-import java.util.List;
+public interface MenuBar {
 
-import org.apache.isis.applib.layout.component.Owner;
-
-public interface ServiceActionLayoutDataOwner extends Owner {
-    List<ServiceActionLayoutData> getActions();
-    void setActions(List<ServiceActionLayoutData> actions);
-}
+}
\ No newline at end of file
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBars.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBars.java
new file mode 100644
index 0000000..4be3cfc
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBars.java
@@ -0,0 +1,55 @@
+/*
+ *  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.applib.layout.menubars;
+
+import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
+
+public interface MenuBars {
+
+    interface Visitor {
+        void preVisit(final MenuBar menuBar);
+        void postVisit(final MenuBar menuBar);
+
+        void preVisit(final Menu menu);
+        void postVisit(final Menu menu);
+
+        void preVisit(final MenuSection menuSection);
+        void postVisit(final MenuSection menuSection);
+
+        void visit(final ServiceActionLayoutData serviceActionLayoutData);
+    }
+
+    class VisitorAdapter implements MenuBars.Visitor {
+        @Override public void preVisit(final MenuBar menuBar) { }
+        @Override public void postVisit(final MenuBar menuBar) { }
+
+        @Override public void preVisit(final Menu menu) { }
+        @Override public void postVisit(final Menu menu) { }
+
+        @Override public void preVisit(final MenuSection menuSection) { }
+        @Override public void postVisit(final MenuSection menuSection) { }
+
+        @Override public void visit(final ServiceActionLayoutData serviceActionLayoutData) { }
+    }
+
+    @Programmatic
+    void visit(final MenuBars.Visitor visitor);
+
+}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuSection.java
similarity index 73%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuSection.java
index bf4a136..5a67367 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/ServiceActionLayoutDataOwner.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuSection.java
@@ -16,13 +16,9 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.menus;
+package org.apache.isis.applib.layout.menubars;
 
-import java.util.List;
+public interface MenuSection {
 
-import org.apache.isis.applib.layout.component.Owner;
 
-public interface ServiceActionLayoutDataOwner extends Owner {
-    List<ServiceActionLayoutData> getActions();
-    void setActions(List<ServiceActionLayoutData> actions);
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/Menu.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3Menu.java
similarity index 86%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/menus/Menu.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3Menu.java
index 68233fd..bc8e134 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/Menu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3Menu.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.menus;
+package org.apache.isis.applib.layout.menubars.bootstrap3;
 
 import java.io.Serializable;
 import java.util.List;
@@ -28,6 +28,7 @@ import javax.xml.bind.annotation.XmlType;
 import com.google.common.collect.Lists;
 
 import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.applib.layout.menubars.Menu;
 
 /**
  * Describes the collection of domain services into menubars, broadly corresponding to the aggregation of information of {@link DomainServiceLayout} that have the same value of {@link DomainServiceLayout#named()}.
@@ -40,14 +41,14 @@ import org.apache.isis.applib.annotation.DomainServiceLayout;
             "sections"
         }
 )
-public class Menu implements Serializable {
+public class BS3Menu implements Menu, Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    public Menu() {
+    public BS3Menu() {
     }
 
-    public Menu(String named) {
+    public BS3Menu(String named) {
         this.named = named;
     }
 
@@ -78,15 +79,15 @@ public class Menu implements Serializable {
 
 
 
-    private List<MenuSection> sections = Lists.newArrayList();
+    private List<BS3MenuSection> sections = Lists.newArrayList();
 
     // no wrapper
     @XmlElement(name = "section", required = true)
-    public List<MenuSection> getSections() {
+    public List<BS3MenuSection> getSections() {
         return sections;
     }
 
-    public void setSections(List<MenuSection> menuSections) {
+    public void setSections(List<BS3MenuSection> menuSections) {
         this.sections = sections;
     }
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuBar.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBar.java
similarity index 82%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuBar.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBar.java
index cda23df..927f7a8 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuBar.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBar.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.menus;
+package org.apache.isis.applib.layout.menubars.bootstrap3;
 
 import java.io.Serializable;
 import java.util.List;
@@ -27,6 +27,7 @@ import javax.xml.bind.annotation.XmlType;
 import com.google.common.collect.Lists;
 
 import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.applib.layout.menubars.MenuBar;
 
 /**
  * Describes the collection of domain services into menubars, broadly corresponding to the aggregation of information of {@link org.apache.isis.applib.annotation.DomainServiceLayout} that have the same value of {@link DomainServiceLayout#named()}.
@@ -37,23 +38,23 @@ import org.apache.isis.applib.annotation.DomainServiceLayout;
             "menus"
         }
 )
-public class MenuBar implements Serializable {
+public class BS3MenuBar implements MenuBar, Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    public MenuBar() {
+    public BS3MenuBar() {
     }
 
 
-    private List<Menu> menus = Lists.newArrayList();
+    private List<BS3Menu> menus = Lists.newArrayList();
 
     // no wrapper
     @XmlElement(name = "menu", required = true)
-    public List<Menu> getMenus() {
+    public List<BS3Menu> getMenus() {
         return menus;
     }
 
-    public void setMenus(List<Menu> menus) {
+    public void setMenus(List<BS3Menu> menus) {
         this.menus = menus;
     }
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuBars.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBars.java
similarity index 57%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuBars.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBars.java
index 668984e..34bcb8f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuBars.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBars.java
@@ -16,9 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.menus;
+package org.apache.isis.applib.layout.menubars.bootstrap3;
 
 import java.io.Serializable;
+import java.util.List;
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
@@ -26,6 +27,8 @@ import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.isis.applib.annotation.DomainServiceLayout;
+import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
+import org.apache.isis.applib.layout.menubars.MenuBars;
 
 /**
  * Describes the collection of domain services into menubars, broadly corresponding to the aggregation of information within {@link org.apache.isis.applib.annotation.DomainServiceLayout}.
@@ -42,11 +45,11 @@ import org.apache.isis.applib.annotation.DomainServiceLayout;
             "metadataError"
         }
 )
-public class MenuBars implements Serializable {
+public class BS3MenuBars implements MenuBars, Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    public MenuBars() {
+    public BS3MenuBars() {
     }
 
     private String tnsAndSchemaLocation;
@@ -60,33 +63,33 @@ public class MenuBars implements Serializable {
         this.tnsAndSchemaLocation = tnsAndSchemaLocation;
     }
 
-    private MenuBar primary = new MenuBar();
+    private BS3MenuBar primary = new BS3MenuBar();
 
-    public MenuBar getPrimary() {
+    public BS3MenuBar getPrimary() {
         return primary;
     }
 
-    public void setPrimary(final MenuBar primary) {
+    public void setPrimary(final BS3MenuBar primary) {
         this.primary = primary;
     }
 
-    private MenuBar secondary = new MenuBar();
+    private BS3MenuBar secondary = new BS3MenuBar();
 
-    public MenuBar getSecondary() {
+    public BS3MenuBar getSecondary() {
         return secondary;
     }
 
-    public void setSecondary(final MenuBar secondary) {
+    public void setSecondary(final BS3MenuBar secondary) {
         this.secondary = secondary;
     }
 
-    private MenuBar tertiary = new MenuBar();
+    private BS3MenuBar tertiary = new BS3MenuBar();
 
-    public MenuBar getTertiary() {
+    public BS3MenuBar getTertiary() {
         return tertiary;
     }
 
-    public void setTertiary(final MenuBar tertiary) {
+    public void setTertiary(final BS3MenuBar tertiary) {
         this.tertiary = tertiary;
     }
 
@@ -108,7 +111,7 @@ public class MenuBars implements Serializable {
 
 
 
-    public MenuBar menuBarFor(final DomainServiceLayout.MenuBar menuBar) {
+    public BS3MenuBar menuBarFor(final DomainServiceLayout.MenuBar menuBar) {
         switch (menuBar) {
         case PRIMARY:
             return getPrimary();
@@ -120,4 +123,37 @@ public class MenuBars implements Serializable {
         return null;
     }
 
+    @Override
+    public void visit(final Visitor visitor) {
+        traverseMenuBar(getPrimary(), visitor);
+        traverseMenuBar(getSecondary(), visitor);
+        traverseMenuBar(getTertiary(), visitor);
+    }
+
+    private void traverseMenuBar(final BS3MenuBar menuBar, final Visitor visitor) {
+        visitor.preVisit(menuBar);
+        final List<BS3Menu> menus = menuBar.getMenus();
+        for (BS3Menu menu : menus) {
+            traverseMenu(menu, visitor);
+        }
+        visitor.postVisit(menuBar);
+    }
+
+    private void traverseMenu(final BS3Menu menu, final Visitor visitor) {
+        visitor.preVisit(menu);
+        final List<BS3MenuSection> sections = menu.getSections();
+        for (BS3MenuSection section : sections) {
+            traverseSection(section, visitor);
+        }
+        visitor.postVisit(menu);
+    }
+
+    private void traverseSection(final BS3MenuSection section, final Visitor visitor) {
+        visitor.preVisit(section);
+        final List<ServiceActionLayoutData> actions = section.getActions();
+        for (ServiceActionLayoutData action : actions) {
+            visitor.visit(action);
+        }
+        visitor.postVisit(section);
+    }
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuSection.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuSection.java
similarity index 78%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuSection.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuSection.java
index 3ace4e7..e3cf286 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/MenuSection.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuSection.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.applib.layout.menus;
+package org.apache.isis.applib.layout.menubars.bootstrap3;
 
 import java.io.Serializable;
 import java.util.List;
@@ -26,9 +26,12 @@ import javax.xml.bind.annotation.XmlType;
 
 import com.google.common.collect.Lists;
 
+import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
+import org.apache.isis.applib.layout.component.ServiceActionLayoutDataOwner;
+import org.apache.isis.applib.layout.menubars.MenuSection;
 
 /**
- * Corresponds to a domain service that contributes its actions under a particular {@link MenuBar}.
+ * Corresponds to a domain service that contributes its actions under a particular {@link BS3MenuBar}.
  */
 @XmlType(
         name = "section"
@@ -36,11 +39,11 @@ import com.google.common.collect.Lists;
             "actions"
         }
 )
-public class MenuSection implements Serializable, ServiceActionLayoutDataOwner {
+public class BS3MenuSection implements MenuSection, Serializable, ServiceActionLayoutDataOwner {
 
     private static final long serialVersionUID = 1L;
 
-    public MenuSection() {
+    public BS3MenuSection() {
     }
 
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/package-info.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/package-info.java
similarity index 88%
rename from core/applib/src/main/java/org/apache/isis/applib/layout/menus/package-info.java
rename to core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/package-info.java
index 23e9b67..5e67e78 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menus/package-info.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/package-info.java
@@ -28,11 +28,11 @@
  *
  */
 @javax.xml.bind.annotation.XmlSchema(
-        namespace = "http://isis.apache.org/applib/layout/menus",
+        namespace = "http://isis.apache.org/applib/layout/menubars/bootstrap3",
         elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
         xmlns = {
                 @javax.xml.bind.annotation.XmlNs(
-                        namespaceURI = "http://isis.apache.org/applib/layout/menus", prefix = "mnu")
+                        namespaceURI = "http://isis.apache.org/applib/layout/menubars/bootstrap3", prefix = "mb3")
 }
 )
-package org.apache.isis.applib.layout.menus;
\ No newline at end of file
+package org.apache.isis.applib.layout.menubars.bootstrap3;
\ No newline at end of file
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java
index 3ca1a78..f595c32 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java
@@ -17,7 +17,6 @@
 package org.apache.isis.applib.services.grid;
 
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.layout.component.Grid;
 
 public interface GridLoaderService {
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
index f60a13b..19c1096 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
@@ -23,7 +23,6 @@ import org.apache.isis.applib.annotation.MemberGroupLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.layout.component.Grid;
 
 public interface GridService {
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridSystemService.java b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridSystemService.java
index c19b821..8f0844c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridSystemService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridSystemService.java
@@ -17,12 +17,11 @@
 package org.apache.isis.applib.services.grid;
 
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.layout.component.Grid;
 
 /**
  * Provides an implementation of {@link Grid}.
  */
-public interface GridSystemService<G extends Grid> {
+public interface GridSystemService<G extends org.apache.isis.applib.layout.grid.Grid> {
 
     /**
      * Which grid (implementation) is defined by this service.
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
index dac45af..992905b 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
@@ -19,7 +19,6 @@ package org.apache.isis.applib.services.layout;
 import org.apache.isis.applib.annotation.MemberGroupLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.layout.component.Grid;
 
 public interface LayoutService {
 
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsLoaderService.java b/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsLoaderService.java
index 9a6ac39..0357e2b 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsLoaderService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsLoaderService.java
@@ -19,7 +19,7 @@
 package org.apache.isis.applib.services.menu;
 
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.layout.menus.MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
 
 public interface MenuBarsLoaderService {
 
@@ -30,9 +30,9 @@ public interface MenuBarsLoaderService {
     boolean supportsReloading();
 
     /**
-     * Returns a new instance of a {@link MenuBars}, else <tt>null</tt>.
+     * Returns a new instance of a {@link BS3MenuBars}, else <tt>null</tt>.
      */
     @Programmatic
-    MenuBars menuBars();
+    BS3MenuBars menuBars();
 
 }
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java b/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java
index 298da1d..eb3cd94 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java
@@ -19,7 +19,7 @@
 package org.apache.isis.applib.services.menu;
 
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.layout.menus.MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
 
 public interface MenuBarsService {
 
@@ -40,8 +40,8 @@ public interface MenuBarsService {
      * @return
      */
     @Programmatic
-    MenuBars menuBars();
+    BS3MenuBars menuBars();
 
     @Programmatic
-    MenuBars menuBars(final Type type);
+    BS3MenuBars menuBars(final Type type);
 }
diff --git a/core/applib/src/test/java/org/apache/isis/applib/layout/menus/MenuBars_roundtrip_Test.java b/core/applib/src/test/java/org/apache/isis/applib/layout/menus/BS3BS3MenuBars_roundtrip_Test.java
similarity index 79%
rename from core/applib/src/test/java/org/apache/isis/applib/layout/menus/MenuBars_roundtrip_Test.java
rename to core/applib/src/test/java/org/apache/isis/applib/layout/menus/BS3BS3MenuBars_roundtrip_Test.java
index c29bc4b..9cd4f3c 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/layout/menus/MenuBars_roundtrip_Test.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/layout/menus/BS3BS3MenuBars_roundtrip_Test.java
@@ -20,13 +20,17 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3Menu;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuSection;
 import org.apache.isis.applib.services.jaxb.JaxbService;
 
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
-public class MenuBars_roundtrip_Test {
+public class BS3BS3MenuBars_roundtrip_Test {
 
     private JaxbService jaxbService;
 
@@ -44,17 +48,17 @@ public class MenuBars_roundtrip_Test {
     public void happyCase() throws Exception {
 
         // given
-        MenuBars menuBars = new MenuBars();
-        Menu menu = new Menu();
+        BS3MenuBars menuBars = new BS3MenuBars();
+        BS3Menu menu = new BS3Menu();
         menu.setNamed("Parties");
 
-        MenuSection organisationMenu = new MenuSection();
+        BS3MenuSection organisationMenu = new BS3MenuSection();
         organisationMenu.getActions().add(new ServiceActionLayoutData("parties.OrganisationMenu", "findByReference"));
         organisationMenu.getActions().add(new ServiceActionLayoutData("parties.OrganisationMenu", "findByName"));
         organisationMenu.getActions().add(new ServiceActionLayoutData("parties.OrganisationMenu", "create"));
         menu.getSections().add(organisationMenu);
 
-        MenuSection personMenu = new MenuSection();
+        BS3MenuSection personMenu = new BS3MenuSection();
         personMenu.getActions().add(new ServiceActionLayoutData("parties.PersonMenu", "findByUsername"));
         personMenu.getActions().add(new ServiceActionLayoutData("parties.PersonMenu", "create"));
         menu.getSections().add(personMenu);
@@ -66,8 +70,8 @@ public class MenuBars_roundtrip_Test {
         System.out.println(xml);
 
         // when
-        MenuBars menuBars2 =
-                jaxbService.fromXml(MenuBars.class, xml);
+        BS3MenuBars menuBars2 =
+                jaxbService.fromXml(BS3MenuBars.class, xml);
 
         // then
         String xml2 = jaxbService.toXml(menuBars2);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
index a9cc0da..65c51a1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacet.java
@@ -18,7 +18,6 @@
  */
 package org.apache.isis.core.metamodel.facets.object.grid;
 
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.applib.services.grid.GridSystemService;
 import org.apache.isis.applib.services.layout.LayoutService;
 import org.apache.isis.core.metamodel.facetapi.Facet;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
index b70ea17..86eed60 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/grid/GridFacetDefault.java
@@ -21,7 +21,6 @@ package org.apache.isis.core.metamodel.facets.object.grid;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.applib.services.grid.GridService;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
index 3bcd2a5..1899253 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault.java
@@ -38,7 +38,6 @@ import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.applib.services.grid.GridLoaderService;
 import org.apache.isis.applib.services.grid.GridSystemService;
 import org.apache.isis.applib.services.jaxb.JaxbService;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
index 60cce85..fd129b0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridServiceDefault.java
@@ -31,7 +31,6 @@ import org.slf4j.LoggerFactory;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.applib.services.grid.GridLoaderService;
 import org.apache.isis.applib.services.grid.GridService;
 import org.apache.isis.applib.services.grid.GridSystemService;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
index c4baf66..386e167 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridSystemServiceAbstract.java
@@ -40,7 +40,6 @@ import org.apache.isis.applib.layout.component.CollectionLayoutData;
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
 import org.apache.isis.applib.layout.component.DomainObjectLayoutDataOwner;
 import org.apache.isis.applib.layout.component.FieldSet;
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.applib.layout.component.HasBookmarking;
 import org.apache.isis.applib.layout.component.HasCssClass;
 import org.apache.isis.applib.layout.component.HasCssClassFa;
@@ -113,7 +112,7 @@ import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
-public abstract class GridSystemServiceAbstract<G extends Grid> implements GridSystemService<G> {
+public abstract class GridSystemServiceAbstract<G extends org.apache.isis.applib.layout.grid.Grid> implements GridSystemService<G> {
 
     private static final Logger LOG = LoggerFactory.getLogger(GridSystemServiceAbstract.class);
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
index 6d51b2a..580ec93 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
@@ -46,7 +46,6 @@ import org.apache.isis.applib.layout.component.ActionLayoutDataOwner;
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
 import org.apache.isis.applib.layout.component.FieldSet;
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.applib.layout.component.PropertyLayoutData;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3Col;
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3Grid;
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/LayoutServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/LayoutServiceDefault.java
index c27b262..05b8192 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/LayoutServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/layout/LayoutServiceDefault.java
@@ -37,8 +37,7 @@ import org.apache.isis.applib.FatalException;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.layout.component.Grid;
-import org.apache.isis.applib.layout.menus.MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
 import org.apache.isis.applib.services.grid.GridService;
 import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.services.layout.LayoutService2;
@@ -142,7 +141,7 @@ public class LayoutServiceDefault implements LayoutService2 {
     @Programmatic
     @Override
     public String toMenuBarsXml(final MenuBarsService.Type type) {
-        final MenuBars menuBars = menuBarsService.menuBars(type);
+        final BS3MenuBars menuBars = menuBarsService.menuBars(type);
 
         return jaxbService.toXml(menuBars,
                 ImmutableMap.<String,Object>of(
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/menubars/MenuBarsTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/menubars/BS3BS3MenuBarsTest.java
similarity index 88%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/menubars/MenuBarsTest.java
rename to core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/menubars/BS3BS3MenuBarsTest.java
index 759b812..57a6182 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/menubars/MenuBarsTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/menubars/BS3BS3MenuBarsTest.java
@@ -28,10 +28,10 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.applib.layout.menus.MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
 import org.apache.isis.applib.services.jaxb.JaxbService;
 
-public class MenuBarsTest {
+public class BS3BS3MenuBarsTest {
 
     private JaxbService jaxbService;
 
@@ -48,7 +48,7 @@ public class MenuBarsTest {
     public void happy_case() throws Exception {
 
         URL resource = Resources.getResource(getClass(), "menubars.layout.xml");
-        MenuBars menuBars = jaxbService.fromXml(MenuBars.class, Resources.toString(resource, Charsets.UTF_8));
+        BS3MenuBars menuBars = jaxbService.fromXml(BS3MenuBars.class, Resources.toString(resource, Charsets.UTF_8));
 
         Map<String, String> schemas = jaxbService.toXsd(menuBars, JaxbService.IsisSchemas.INCLUDE);
         for (Map.Entry<String, String> entry : schemas.entrySet()) {
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menu/MenuBarsLoaderServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menu/MenuBarsLoaderServiceDefault.java
index 3d43355..e8e91d8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menu/MenuBarsLoaderServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menu/MenuBarsLoaderServiceDefault.java
@@ -26,7 +26,7 @@ import com.google.common.io.Resources;
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.layout.menus.MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
 import org.apache.isis.applib.services.jaxb.JaxbService;
 import org.apache.isis.applib.services.menu.MenuBarsLoaderService;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
@@ -41,13 +41,13 @@ public class MenuBarsLoaderServiceDefault implements MenuBarsLoaderService {
     }
 
     @Override
-    public MenuBars menuBars() {
+    public BS3MenuBars menuBars() {
         final AppManifest appManifest = isisSessionFactory.getAppManifest();
         try {
             final URL resource = Resources.getResource(appManifest.getClass(), "menubars.layout.xml");
             String xml = Resources.toString(resource, Charsets.UTF_8);
 
-            return jaxbService.fromXml(MenuBars.class, xml);
+            return jaxbService.fromXml(BS3MenuBars.class, xml);
         } catch (Exception e) {
             return null;
         }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menu/MenuBarsServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menu/MenuBarsServiceDefault.java
index 128b299..b3f692d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menu/MenuBarsServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/menu/MenuBarsServiceDefault.java
@@ -37,11 +37,11 @@ import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.filter.Filters;
-import org.apache.isis.applib.layout.menus.ServiceActionLayoutData;
-import org.apache.isis.applib.layout.menus.Menu;
-import org.apache.isis.applib.layout.menus.MenuBar;
-import org.apache.isis.applib.layout.menus.MenuBars;
-import org.apache.isis.applib.layout.menus.MenuSection;
+import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3Menu;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBar;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuSection;
 import org.apache.isis.applib.services.menu.MenuBarsLoaderService;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -66,17 +66,17 @@ public class MenuBarsServiceDefault implements MenuBarsService {
     public static final String LINKS_TNS = GridServiceDefault.LINKS_TNS;
     public static final String LINKS_SCHEMA_LOCATION = GridServiceDefault.LINKS_SCHEMA_LOCATION;
 
-    MenuBars menuBars;
+    BS3MenuBars menuBars;
 
     @Override
     @Programmatic
-    public MenuBars menuBars() {
+    public BS3MenuBars menuBars() {
         return menuBars(Type.DEFAULT);
     }
 
     @Override
     @Programmatic
-    public MenuBars menuBars(final Type type) {
+    public BS3MenuBars menuBars(final Type type) {
 
         if(type == Type.FALLBACK) {
             return deriveMenuBarsFromMetaModelFacets();
@@ -85,7 +85,7 @@ public class MenuBarsServiceDefault implements MenuBarsService {
         // else load (and only fallback if nothing could be loaded)...
         if(menuBars == null || menuBarsLoaderService.supportsReloading()) {
 
-            MenuBars menuBars = menuBarsLoaderService.menuBars();
+            BS3MenuBars menuBars = menuBarsLoaderService.menuBars();
 
             if(menuBars == null) {
                 menuBars = deriveMenuBarsFromMetaModelFacets();
@@ -97,9 +97,9 @@ public class MenuBarsServiceDefault implements MenuBarsService {
         return menuBars;
     }
 
-    private MenuBars deriveMenuBarsFromMetaModelFacets() {
-        final MenuBars menuBars;// fallback
-        menuBars = new MenuBars();
+    private BS3MenuBars deriveMenuBarsFromMetaModelFacets() {
+        final BS3MenuBars menuBars;// fallback
+        menuBars = new BS3MenuBars();
 
         final List<ObjectAdapter> serviceAdapters =
                 isisSessionFactory.getCurrentSession().getPersistenceSession().getServices();
@@ -116,7 +116,7 @@ public class MenuBarsServiceDefault implements MenuBarsService {
 
     private void append(
             final List<ObjectAdapter> serviceAdapters,
-            final MenuBar menuBar,
+            final BS3MenuBar menuBar,
             final DomainServiceLayout.MenuBar menuBarPos) {
 
         List<ServiceAndAction> serviceActions = Lists.newArrayList();
@@ -133,27 +133,27 @@ public class MenuBarsServiceDefault implements MenuBarsService {
         // prune any service names that have no service actions
         serviceNamesInOrder.retainAll(serviceActionsByName.keySet());
 
-        List<Menu> menus = buildMenuItems(serviceNamesInOrder, serviceActionsByName);
+        List<BS3Menu> menus = buildMenuItems(serviceNamesInOrder, serviceActionsByName);
         menuBar.getMenus().addAll(menus);
     }
 
-    private static List<Menu> buildMenuItems(
+    private static List<BS3Menu> buildMenuItems(
             final Set<String> serviceNamesInOrder,
             final Map<String, List<ServiceAndAction>> serviceActionsByName) {
 
-        final List<Menu> menus = Lists.newArrayList();
+        final List<BS3Menu> menus = Lists.newArrayList();
         for (String serviceName : serviceNamesInOrder) {
 
-            Menu menu = new Menu(serviceName);
+            BS3Menu menu = new BS3Menu(serviceName);
             menus.add(menu);
 
-            MenuSection menuSection = new MenuSection();
+            BS3MenuSection menuSection = new BS3MenuSection();
             final List<ServiceAndAction> serviceActionsForName = serviceActionsByName.get(serviceName);
             for (ServiceAndAction serviceAndAction : serviceActionsForName) {
 
                 if(serviceAndAction.separator && !menuSection.getActions().isEmpty()) {
                     menu.getSections().add(menuSection);
-                    menuSection = new MenuSection();
+                    menuSection = new BS3MenuSection();
                 }
 
                 ObjectAction objectAction = serviceAndAction.objectAction;
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
index c3730a8..f14e1ec 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
@@ -35,7 +35,6 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.component.ActionLayoutData;
 import org.apache.isis.applib.layout.component.CollectionLayoutData;
 import org.apache.isis.applib.layout.component.DomainObjectLayoutData;
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.applib.layout.component.PropertyLayoutData;
 import org.apache.isis.applib.layout.links.Link;
 import org.apache.isis.applib.services.command.Command;
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
index a863dd4..f26d5f7 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainTypeResourceServerside.java
@@ -31,7 +31,6 @@ import javax.ws.rs.core.Response;
 import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/MenuBarsResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/MenuBarsResourceServerside.java
index 45ed298..b06c796 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/MenuBarsResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/MenuBarsResourceServerside.java
@@ -26,12 +26,11 @@ import javax.ws.rs.core.Response;
 
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.layout.links.Link;
-import org.apache.isis.applib.layout.menus.ServiceActionLayoutData;
-import org.apache.isis.applib.layout.menus.Menu;
-import org.apache.isis.applib.layout.menus.MenuBar;
-import org.apache.isis.applib.layout.menus.MenuBars;
-import org.apache.isis.applib.layout.menus.MenuSection;
-import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3Menu;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBar;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuSection;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.viewer.restfulobjects.applib.Rel;
@@ -62,7 +61,7 @@ public class MenuBarsResourceServerside extends ResourceAbstract implements Menu
         final MenuBarsService menuBarsService =
                 getResourceContext().getServicesInjector().lookupService(MenuBarsService.class);
 
-        final MenuBars menuBars = menuBarsService.menuBars();
+        final BS3MenuBars menuBars = menuBarsService.menuBars();
 
         // TODO: use add a visitor instead to iterate over (cf Grid)
         addLinksFor(menuBars.getPrimary());
@@ -76,11 +75,11 @@ public class MenuBarsResourceServerside extends ResourceAbstract implements Menu
         return builder.build();
     }
 
-    private void addLinksFor(final MenuBar menuBar) {
-        List<Menu> menus = menuBar.getMenus();
-        for (Menu menu : menus) {
-            List<MenuSection> sections = menu.getSections();
-            for (MenuSection section : sections) {
+    private void addLinksFor(final BS3MenuBar menuBar) {
+        List<BS3Menu> menus = menuBar.getMenus();
+        for (BS3Menu menu : menus) {
+            List<BS3MenuSection> sections = menu.getSections();
+            for (BS3MenuSection section : sections) {
                 List<ServiceActionLayoutData> actions = section.getActions();
                 for (ServiceActionLayoutData actionLayoutData : actions) {
                     final String objectType = actionLayoutData.getObjectType();
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
index 1142a13..c553083 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionUtil.java
@@ -38,11 +38,11 @@ import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.markup.html.panel.Fragment;
 import org.apache.wicket.model.Model;
 
-import org.apache.isis.applib.layout.menus.Menu;
-import org.apache.isis.applib.layout.menus.MenuBar;
-import org.apache.isis.applib.layout.menus.MenuBars;
-import org.apache.isis.applib.layout.menus.MenuSection;
-import org.apache.isis.applib.layout.menus.ServiceActionLayoutData;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3Menu;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBar;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuSection;
+import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -200,10 +200,10 @@ public final class ServiceActionUtil {
     }
 
     public static List<CssMenuItem> buildMenu(
-            final MenuBars menuBars,
+            final BS3MenuBars menuBars,
             final ServiceActionsModel serviceActionsModel) {
 
-        final MenuBar menuBar = menuBars.menuBarFor(serviceActionsModel.getMenuBar());
+        final BS3MenuBar menuBar = menuBars.menuBarFor(serviceActionsModel.getMenuBar());
 
         final List<ObjectAdapter> serviceAdapters = serviceActionsModel.getObject();
         final ImmutableMap<ObjectAdapter, String> oidByServiceAdapter = FluentIterable.from(serviceAdapters)
@@ -217,12 +217,12 @@ public final class ServiceActionUtil {
                 .copyOf(oidByServiceAdapter).inverse();
 
         final List<CssMenuItem> menuItems = Lists.newArrayList();
-        for (final Menu menu : menuBar.getMenus()) {
+        for (final BS3Menu menu : menuBar.getMenus()) {
 
             final CssMenuItem serviceMenu = CssMenuItem.newMenuItem(menu.getNamed()).build();
 
 
-            for (final MenuSection menuSection : menu.getSections()) {
+            for (final BS3MenuSection menuSection : menu.getSections()) {
 
                 boolean firstSection = true;
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanelFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanelFactory.java
index aaf373f..e0c9414 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanelFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionsPanelFactory.java
@@ -25,7 +25,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.applib.annotation.DomainServiceLayout;
-import org.apache.isis.applib.layout.menus.MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
@@ -66,7 +66,7 @@ public class ServiceActionsPanelFactory extends ComponentFactoryAbstract {
         final MenuBarsService menuBarsService =
                 getIsisSessionFactory().getServicesInjector().lookupService(MenuBarsService.class);
 
-        final MenuBars menuBars = menuBarsService.menuBars();
+        final BS3MenuBars menuBars = menuBarsService.menuBars();
 
         final List<CssMenuItem> menuItems = ServiceActionUtil.buildMenu(menuBars, serviceActionsModel);
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryMenuPanelFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryMenuPanelFactory.java
index 1498914..eba19a9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryMenuPanelFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/TertiaryMenuPanelFactory.java
@@ -25,7 +25,7 @@ import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.applib.annotation.DomainServiceLayout;
-import org.apache.isis.applib.layout.menus.MenuBars;
+import org.apache.isis.applib.layout.menubars.bootstrap3.BS3MenuBars;
 import org.apache.isis.applib.services.menu.MenuBarsService;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
@@ -66,7 +66,7 @@ public class TertiaryMenuPanelFactory extends ComponentFactoryAbstract {
         final MenuBarsService menuBarsService =
                 getIsisSessionFactory().getServicesInjector().lookupService(MenuBarsService.class);
 
-        final MenuBars menuBars = menuBarsService.menuBars();
+        final BS3MenuBars menuBars = menuBarsService.menuBars();
 
         final List<CssMenuItem> menuItems = ServiceActionUtil.buildMenu(menuBars, serviceActionsModel);
         return new TertiaryActionsPanel(id, menuItems);
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index 94ca53d..e1bb2d1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -34,7 +34,6 @@ import org.apache.wicket.model.Model;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.filter.Filters;
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.applib.services.tablecol.TableColumnOrderService;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
index fe8ebf2..a0474a9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/selector/links/EntityLinksSelectorPanelFactory.java
@@ -23,7 +23,6 @@ import org.apache.wicket.Component;
 import org.apache.wicket.model.IModel;
 
 import org.apache.isis.applib.layout.grid.bootstrap3.BS3Grid;
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.core.metamodel.facets.object.grid.GridFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index 75e0e5a..d6a7312 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -27,7 +27,6 @@ import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.Strings;
 
-import org.apache.isis.applib.layout.component.Grid;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;

-- 
To stop receiving notification emails like this one, please contact
"commits@isis.apache.org" <co...@isis.apache.org>.