blob: b6ef69ecf8aaaf3f58fea5858ea66db169c698bc [file]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>MenuBars Layout :: Apache Isis</title>
<link rel="canonical" href="https://isis.apache.org/refguide/2.0.0-M5/applib-classes/layout/menubars.html">
<meta name="generator" content="Antora 2.3.4">
<link rel="stylesheet" href="../../../../_/css/site.css">
<link rel="stylesheet" href="../../../../_/css/site-custom.css">
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i|Raleway:300,400,500,700,800|Montserrat:300,400,700" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css"/>
<link rel="home" href="https://isis.apache.org" title="Apache Isis">
</head>
<body class="article">
<header class="header">
<nav class="navbar">
<div class="navbar-brand">
<a class="navbar-item" href="https://isis.apache.org">
<span class="icon">
<img src="../../../../_/img/isis-logo-48x48.png"></img>
</span>
<span>Apache Isis</span>
</a>
<button class="navbar-burger" data-target="topbar-nav">
<span></span>
<span></span>
<span></span>
</button>
</div>
<div id="topbar-nav" class="navbar-menu">
<a class="navbar-end">
<div class="navbar-item hide-for-print">
<span>
<input id="algolia-search-input" placeholder="Search"></span>
</span>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Quick Start</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Starter Apps</span>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/starters/helloworld.html">Hello World</a>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/starters/simpleapp.html">Simple App</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Demos &amp; Tutorials</span>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/demo/about.html">Demo App</a>
<a class="navbar-item" href="https://danhaywood.gitlab.io/isis-petclinic-tutorial-docs/petclinic/1.16.2/intro.html">Petclinic (tutorial)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Resources</span>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/resources/cheatsheet.html">Cheatsheet</a>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/resources/icons.html">Icons</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Guides</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Development</span>
<a class="navbar-item" href="../../../../setupguide/2.0.0-M5/about.html">Setup Guide</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Core</span>
<a class="navbar-item" href="../../../../userguide/2.0.0-M5/about.html">User Guide</a>
<a class="navbar-item" href="../../../../refguide/2.0.0-M5/about.html">Reference Guide</a>
<a class="navbar-item" href="../../../../testing/2.0.0-M5/about.html">Testing Guide</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Libraries</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">For Use in Apps</span>
<a class="navbar-item" href="../../../../subdomains/2.0.0-M5/about.html">Subdomain Libraries</a>
<a class="navbar-item" href="../../../../valuetypes/2.0.0-M5/about.html">Value Types</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Integrate between Apps</span>
<a class="navbar-item" href="../../../../mappings/2.0.0-M5/about.html">Bounded Context Mapping Libraries</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Other</span>
<a class="navbar-item" href="../../../../incubator/2.0.0-M5/about.html">Incubator</a>
<a class="navbar-item" href="../../../../legacy/2.0.0-M5/about.html">Legacy</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Components</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Viewers</span>
<a class="navbar-item" href="../../../../vw/2.0.0-M5/about.html">Web UI (Wicket)</a>
<a class="navbar-item" href="../../../../vro/2.0.0-M5/about.html">REST API (Restful Objects)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Security</span>
<a class="navbar-item" href="../../../../security/2.0.0-M5/about.html">Security Guide</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Persistence</span>
<a class="navbar-item" href="../../../../pjpa/2.0.0-M5/about.html">JPA (EclipseLink)</a>
<a class="navbar-item" href="../../../../pjdo/2.0.0-M5/about.html">JDO (DataNucleus)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Extensions</span>
<a class="navbar-item" href="../../../../extensions/2.0.0-M5/about.html">Extensions Catalog</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Support</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Contact</span>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/support/slack-channel.html">Slack</a>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/support/mailing-list.html">Mailing Lists</a>
<a class="navbar-item" href="https://issues.apache.org/jira/browse/ISIS">JIRA</a>
<a class="navbar-item" href="https://stackoverflow.com/questions/tagged/isis">Stack Overflow</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Releases</span>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/downloads/how-to.html">Downloads</a>
<a class="navbar-item" href="../../../../relnotes/2.0.0-M5/about.html">Release Notes</a>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/archive/1-x.html">Archive (1.x)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Framework</span>
<a class="navbar-item" href="../../../../conguide/2.0.0-M5/about.html">Contributors' Guide</a>
<a class="navbar-item" href="../../../../comguide/2.0.0-M5/about.html">Committers' Guide</a>
<a class="navbar-item" href="../../../../core/2.0.0-M5/about.html">Core Design</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">ASF</a>
<div class="navbar-dropdown">
<a class="navbar-item" href="http://www.apache.org/">Apache Homepage</a>
<a class="navbar-item" href="https://www.apache.org/events/current-event">Events</a>
<a class="navbar-item" href="https://www.apache.org/licenses/">Licenses</a>
<a class="navbar-item" href="https://www.apache.org/security/">Security</a>
<a class="navbar-item" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
<a class="navbar-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
<hr class="navbar-divider"/>
<a class="navbar-item" href="https://whimsy.apache.org/board/minutes/Isis.html">PMC board minutes</a>
</div>
</div>
<a class="navbar-item" href="../../../../docs/2.0.0-M5/about.html">
<span class="icon">
<img src="../../../../_/img/home.png"></img>
</span>
</a>
</div>
</div>
</nav>
</header>
<div class="body ">
<div class="nav-container" data-component="refguide" data-version="2.0.0-M5">
<aside class="nav">
<div class="panels">
<div class="nav-panel-pagination">
<a class="page-previous disabled" rel="prev" href="" title=""><span></span></a>
<a class="page-next disabled" rel="next"
href="" title=""><span></span></a>
<!--
page.parent doesn't seem to be set...
<a class="page-parent disabled" rel="prev" href="" title=""><span></span></a>
-->
</div>
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<h3 class="title"><a href="../../about.html">Reference Guide</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../applib-svc/about.html">Domain Services</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/acceptheader/AcceptHeaderService.html">AcceptHeaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/appfeat/ApplicationFeatureRepository.html">ApplicationFeatureRepository</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/bookmark/BookmarkService.html">BookmarkService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/bookmarkui/BookmarkUiService.html">BookmarkUiService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/clock/ClockService.html">ClockService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/commanddto/processor/spi/CommandDtoProcessorService.html">CommandDtoProcessorService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/command/CommandExecutorService.html">CommandExecutorService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/publishing/spi/CommandSubscriber.html">CommandSubscriber</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/confview/ConfigurationMenu.html">ConfigurationMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/confview/ConfigurationViewService.html">ConfigurationViewService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/conmap/ContentMappingService.html">ContentMappingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/linking/DeepLinkService.html">DeepLinkService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/userreg/EmailNotificationService.html">EmailNotificationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/email/EmailService.html">EmailService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/publishing/spi/EntityChangesSubscriber.html">EntityChangesSubscriber</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/publishing/spi/EntityPropertyChangeSubscriber.html">EntityPropertyChangeSubscriber</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/error/ErrorReportingService.html">ErrorReportingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/eventbus/EventBusService.html">EventBusService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/exceprecog/ExceptionRecognizerService.html">ExceptionRecognizerService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/factory/FactoryService.html">FactoryService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/grid/GridLoaderService.html">GridLoaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/grid/GridService.html">GridService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/grid/GridSystemService.html">GridSystemService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/health/HealthCheckService.html">HealthCheckService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/hint/HintStore.html">HintStore</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/homepage/HomePageResolverService.html">HomePageResolverService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/iactn/InteractionContext.html">InteractionContext</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/jaxb/JaxbService.html">JaxbService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/layout/LayoutService.html">LayoutService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/layout/LayoutServiceMenu.html">LayoutServiceMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/i18n/LocaleProvider.html">LocaleProvider</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/menu/MenuBarsLoaderService.html">MenuBarsLoaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/menu/MenuBarsService.html">MenuBarsService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/message/MessageService.html">MessageService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/metamodel/MetaModelService.html">MetamodelService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/metamodel/MetaModelServiceMenu.html">MetamodelServiceMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/metrics/MetricsService.html">MetricsService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/publishing/spi/ExecutionSubscriber.html">ExecutionSubscriber</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/queryresultscache/QueryResultsCache.html">QueryResultsCache</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/repository/RepositoryService.html">RepositoryService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/routing/RoutingService.html">RoutingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/scratchpad/Scratchpad.html">Scratchpad</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/inject/ServiceInjector.html">ServiceInjector</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/registry/ServiceRegistry.html">ServiceRegistry</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/session/SessionLoggingService.html">SessionLoggingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/sudo/SudoService.html">SudoService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/swagger/SwaggerService.html">SwaggerService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/tablecol/TableColumnOrderService.html">TableColumnOrderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/title/TitleService.html">TitleService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/i18n/TranslationService.html">TranslationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/i18n/TranslationsResolver.html">TranslationsResolver</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/xactn/TransactionalProcessor.html">TransactionProcessor</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/xactn/TransactionService.html">TransactionService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/urlencoding/UrlEncodingService.html">UrlEncodingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/userprof/UserProfileService.html">UserProfileService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/userreg/UserRegistrationService.html">UserRegistrationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/user/UserService.html">UserService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/wrapper/WrapperFactory.html">WrapperFactory</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/xml/XmlService.html">XmlService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/services/xmlsnapshot/XmlSnapshotService.html">XmlSnapshotService</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../applib-ant/about.html">Annotations</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/Action.html">Action</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/ActionLayout.html">ActionLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/Collection.html">Collection</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/CollectionLayout.html">CollectionLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/Column.html">Column</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/Digits.html">Digits</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/Discriminator.html">Discriminator</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/DomainObject.html">DomainObject</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/DomainObjectLayout.html">DomainObjectLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/DomainService.html">DomainService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/DomainServiceLayout.html">DomainServiceLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/Facets.html">Facets</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/HomePage.html">HomePage</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/MemberOrder.html">MemberOrder</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/NotPersistent.html">NotPersistent.</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/Nullable.html">Nullable</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/MinLength.html">MinLength</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/Parameter.html">Parameter</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/ParameterLayout.html">ParameterLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/Pattern.html">Pattern</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/PersistenceCapable.html">PersistenceCapable</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/PrimaryKey.html">PrimaryKey</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/Programmatic.html">Programmatic</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/Property.html">Property</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/PropertyLayout.html">PropertyLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/InteractionScope.html">RequestScoped</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib/index/annotation/Title.html">Title</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/XmlJavaTypeAdapter.html">XmlJavaTypeAdapter</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-ant/XmlRootElement.html">XmlRootElement</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../applib-methods/about.html">Methods</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-methods/prefixes.html">Supporting Methods</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-methods/ui-hints.html">UI Hint Methods</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../applib-methods/lifecycle.html">Lifecycle Methods</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../about.html">Classes</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../events.html">Events</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../non-persisted-objects.html">Non-persisted objects</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/ViewModel.html">ViewModel</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/RecreatableDomainObject.html">RecreatableDomainObject</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../layout.html">Layout</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../value-types.html">Value Types</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/value/Blob.html">Blob</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/value/Clob.html">Clob</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/value/Markup.html">Markup</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/value/LocalResourcePath.html">LocalResourcePath</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/value/Password.html">Password</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../utility.html">Utility Classes</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/util/Enums.html">Enums</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/util/JaxbUtil.html">JaxbUtil</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/util/ObjectContracts.html">ObjectContracts</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/util/Reasons.html">Reasons</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/util/ReasonBuffer.html">ReasonBuffer</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/util/ReasonBuffer2.html">ReasonBuffer2</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/util/TitleBuffer.html">TitleBuffer</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../mixees-and-mixins.html">Mixees and Mixins</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/mixins/layout/Object_downloadLayoutXml.html">Object_downloadLayoutXml</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/mixins/metamodel/Object_downloadMetamodelXml.html">Object_downloadMetamodelXml</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/mixins/metamodel/Object_rebuildMetamodel.html">Object_rebuildMetamodel</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/mixins/metamodel/Object_objectType.html">Object_objectType</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/mixins/metamodel/Object_objectIdentifier.html">Object_objectIdentifier</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../viewer/index/wicket/viewer/mixins/Object_clearHints.html">Object_clearHints</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/mixins/rest/Object_openRestApi.html">Object_openRestApi</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/mixins/dto/Dto_downloadXml.html">Dto_downloadXml</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/mixins/dto/Dto_downloadXsd.html">Dto_downloadXsd</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../persistence/index/jdo/datanucleus/mixins/Persistable_downloadJdoMetadata.html">Persistable_downloadJdoMetadata</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../persistence/index/jdo/datanucleus/mixins/Persistable_datanucleusIdLong.html">Persistable_datanucleusIdLong</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../persistence/index/jdo/datanucleus/mixins/Persistable_datanucleusVersionLong.html">Persistable_datanucleusVersionLong</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../persistence/index/jdo/datanucleus/mixins/Persistable_datanucleusVersionTimestamp.html">Persistable_datanucleusVersionTimestamp</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../extensions/index/commandlog/impl/mixins/HasInteractionId_command.html">HasInteractionId_command</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../applib/index/mixins/system/DomainChangeRecord_openTargetObject.html">DomainChangeRecord_openTargetObject</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../spec.html">Specification pattern</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../config/about.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.applib.html">Applib</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.core.config.html">Core Configuration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.core.meta-model.html">Core MetaModel</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.core.meta-model.introspector.html">Core MetaModel Introspection</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.core.meta-model.validator.html">MetaModel Validator</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.core.runtime.html">Core Runtime</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.core.runtime-services.html">Core Runtime Services</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.persistence.schema.html">Core Persistence Schema</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.security.shiro.html">Shiro Security Implementation</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.security.spring.html">Spring Security Implementation</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/datanucleus.html">DataNucleus</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.viewer.restfulobjects.html">Restful Objects Viewer</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.viewer.wicket.html">Wicket Viewer</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.extensions.html">Extensions</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.value-types.html">Value types</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.testing.html">Testing</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/isis.legacy.html">Legacy</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../config/sections/resteasy.html">RestEasy Configuration</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../schema/about.html">Schema</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../schema/mml.html">MetaModel</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../schema/cmd.html">Command</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../schema/ixn.html">Interaction</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../schema/chg.html">Changes</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../schema/common.html">Common</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="nav-panel-explore" data-panel="explore">
<div class="context">
<span class="title">Reference Guide</span>
<span class="version">2.0.0-M5</span>
</div>
<ul class="components">
<li class="component">
<span class="title"> </span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../docs/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">BC Mapping Libraries</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../mappings/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Committers' Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../comguide/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Contributors' Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../conguide/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Design Docs</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../core/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Extensions Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../extensions/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Incubator Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../incubator/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">JDO/DataNucleus</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../pjdo/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">JPA</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../pjpa/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Legacy Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../legacy/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component is-current">
<span class="title">Reference Guide</span>
<ul class="versions">
<li class="version is-current is-latest">
<a href="../../about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Release Notes</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../relnotes/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">REST API (Restful Objects Viewer)</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../vro/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Security Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../security/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Setup Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../setupguide/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Subdomains Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../subdomains/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Testing Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../testing/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Tooling</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../tooling/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">User Guide</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../userguide/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Value Types Catalog</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../valuetypes/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Web UI (Wicket Viewer)</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../vw/2.0.0-M5/about.html">2.0.0-M5</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</aside>
</div>
<main role="main">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
<a href="../../../../docs/2.0.0-M5/about.html" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
<li><a href="../../about.html">Reference Guide</a></li>
<li><a href="menubars.html">MenuBars Layout</a></li>
</ul>
</nav>
<div class="edit-this-page"><a href="https://github.com/apache/isis/edit/2.0.0-M5/antora/components/refguide/modules/applib-classes/pages/layout/menubars.adoc">Edit</a></div>
</div>
<article class="doc">
<a name="section-top"></a>
<h1 class="page">MenuBars Layout</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>The <code>org.apache.isis.applib.layout.menubars</code> package and subpackages define a number of interfaces classes that allow the layout of domain service actions to be organised across menu bars, menus and menu sections.</p>
</div>
<div class="paragraph">
<p>The classes define a hierarchical structure of menu bars, menus and menu sections.
Similar to the <a href="../layout.html" class="page">object layout</a> classes, the concrete menu classes support bootstrap3; support for other layout systems is possible.</p>
</div>
<div class="paragraph">
<p>The component class <code>ServiceActionLayoutData</code> defines action metadata, being broadly equivalent to the "layout" annotations for actions, ie <a href="../../applib/index/annotation/ActionLayout.html" class="page">@ActionLayout</a>.
This is similar to the <code>ActionLayoutData</code> component class used for object layouts, but also captures the identity of the "owning" domain service.
Service actions are grouped into menu sections.</p>
</div>
<div class="paragraph">
<p>All of the classes in this package are JAXB-annotated, meaning that they can be serialized to/from XML (in the <code><a href="http://isis.apache.org/applib/layout/menubars/bootstrap3" class="bare">http://isis.apache.org/applib/layout/menubars/bootstrap3</a></code> XSD namespace).
This ability to serialize to/from XML is used by the <a href="../../applib/index/services/menu/MenuBarsLoaderService.html" class="page">MenuBarsLoaderService</a>, the default implementation of which reads the grid layout for a domain class from a <code>.layout.xml</code> file on the classpath.
It also allows the menu bars to be exposed through the REST API provided by the <a href="../../../../vro/2.0.0-M5/about.html" class="page">REST API (Restful Objects viewer)</a>, as either XML or JSON.</p>
</div>
<div class="paragraph">
<p>The service action component also allows a link to be associated with it.
Each such link is populated by the framework automatically when exposing the menu bars layout through the REST API, pointing back to the standard Restful Objects resources.
This design greatly assists in the implementation of generic REST clients.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="menus"><a class="anchor" href="#menus"></a>Menus</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The menu classes reside in the <code>org.apache.isis.applib.layout.menubars.bootstrap3</code> package, consisting of:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>BS3MenuBars</code></p>
<div class="paragraph">
<p>The top-level structure that define three fields: a primary <code>BS3MenuBar</code>, secondary <code>BS3MenuBar</code> and tertiary <code>BS3MenuBar</code>.
The <a href="../../../../vw/2.0.0-M5/about.html" class="page">Web UI (Wicket viewer)</a> places the primary bar to the left, the secondary bar aligned right, and the tertiary bar (expected to consist of just one <code>BS3Menu</code>) under the user names.</p>
</div>
</li>
<li>
<p><code>BS3MenuBar</code></p>
<div class="paragraph">
<p>consisting of one or many <code>BS3Menu</code>s.</p>
</div>
</li>
<li>
<p><code>BS3Menu</code></p>
<div class="paragraph">
<p>consisting of one or many <code>BS3MenuSection</code>s.
The <a href="../../../../vw/2.0.0-M5/about.html" class="page">Web UI (Wicket viewer)</a> renders a separator between each section.</p>
</div>
</li>
<li>
<p><code>BS3MenuSection</code></p>
<div class="paragraph">
<p>consisting of one or many actions (<code>ServiceActionLayoutData</code>s)</p>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="components"><a class="anchor" href="#components"></a>Components</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The service action class reside in the <code>org.apache.isis.applib.layout.component</code> package, consisting of just:</p>
</div>
<div class="ulist">
<ul>
<li>
<p><code>ServiceActionLayoutData</code> class</p>
<div class="paragraph">
<p>which correspond to the <a href="../../applib/index/annotation/ActionLayout.html" class="page">@ActionLayout</a> annotation.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>This is similar to <code>ActionLayoutData</code> (of the <a href="../layout.html" class="page">object layout</a> classes), however it also identifies the domain service to which it belongs.
(This isn&#8217;t required for the object layouts because the owner in that case is implicit).</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="link"><a class="anchor" href="#link"></a>Link</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The link classes reside in the <code>org.apache.isis.applib.layout.links</code> package, and consist of just the <code>Link</code> class.</p>
</div>
<div class="paragraph">
<p>The XSD for these classes is available at <a href="http://isis.apache.org/applib/layout/links/links.xsd" class="bare">http://isis.apache.org/applib/layout/links/links.xsd</a>.</p>
</div>
</div>
</div>
</article>
<aside class="article-aside toc hide-for-print" role="navigation">
<p class="toc-title">On this page</p>
<div id="article-toc"></div>
</aside>
</main>
</div>
<footer class="footer">
<div class="content">
<div class="copyright">
<p>
Copyright © 2010~2021 The Apache Software Foundation, licensed under the Apache License, v2.0.
<br/>
Apache, the Apache feather logo, Apache Isis, and the Apache Isis project logo are all trademarks of The Apache Software Foundation.
</p>
</div>
<div class="revision">
<p>Revision: 2.0.0-M5.20210417-1912</p>
</div>
</div>
</footer>
<script src="../../../../_/js/site.js"></script>
<script async src="../../../../_/js/vendor/highlight.js"></script>
<script src="../../../../_/js/vendor/jquery-3.4.1.min.js"></script>
<script src="../../../../_/js/vendor/jquery-ui-1.12.1.custom.widget-only.min.js"></script>
<script src="../../../../_/js/vendor/jquery.tocify.min.js"></script>
<script>
$(function() {
$("#article-toc").tocify( {
showEffect: "slideDown",
hashGenerator: "pretty",
hideEffect: "slideUp",
selectors: "h2, h3",
scrollTo: 120,
smoothScroll: true,
theme: "jqueryui",
highlightOnScroll: true
} );
});
</script>
<script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
<script>
function focusSearchInput () { document.querySelector('#algolia-search-input').focus() }
var search = docsearch({
appId: '5ISP5TFAEN',
apiKey: '0fc51c28b4ad46e7318e96d4e97fab7c',
indexName: 'isis-apache-org',
inputSelector: '#algolia-search-input',
autocompleteOptions: { hint: false, keyboardShortcuts: ['s'] },
debug: false,
}).autocomplete
search.on('autocomplete:closed', function () { search.autocomplete.setVal() })
focusSearchInput()
window.addEventListener('load', focusSearchInput);
</script>
<!--
docsearch options:
https://docsearch.algolia.com/docs/behavior/
-->
<!--
https://www.algolia.com/doc/api-reference/api-parameters/
algoliaOptions: { hitsPerPage: 6 },
-->
</body>
</html>