blob: b8f2342f14796dd51b2f1ce286e9bcd5b7df4cb3 [file]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>@DomainObjectLayout :: causeway</title>
<link rel="canonical" href="https://causeway.apache.org/refguide/latest/applib/index/annotation/DomainObjectLayout.html">
<meta name="generator" content="Antora 3.1.14">
<link rel="stylesheet" href="../../../../../_/css/site.css">
<link rel="stylesheet" href="../../../../../_/css/site-custom.css">
<link rel="home" href="https://causeway.apache.org" title="causeway">
</head>
<body class="article">
<header class="header">
<nav class="navbar">
<div class="navbar-brand">
<a class="navbar-item" href="https://causeway.apache.org">
<span class="icon">
<img src="../../../../../_/img/causeway-logo-no-words-65x48.png"></img>
</span>
<span class="navbar-title">causeway</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 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/latest/starters/helloworld.html">Hello World</a>
<a class="navbar-item" href="../../../../../docs/latest/starters/simpleapp.html">Simple App</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Learning &amp; Tutorials</span>
<a class="navbar-item" href="../../../../../docs/latest/reference/about.html">Reference App</a>
<a class="navbar-item" href="https://danhaywood.gitlab.io/isis-petclinic-tutorial-docs/petclinic/1.16.2/intro.html">Petclinic</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Resources</span>
<a class="navbar-item" href="../../../../../docs/latest/resources/cheatsheet.html">Cheatsheet</a>
<a class="navbar-item" href="../../../../../docs/latest/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">Core</span>
<a class="navbar-item" href="../../../../../userguide/latest/about.html">User Guide</a>
<a class="navbar-item" href="../../../../../refguide/latest/about.html">Reference Guide</a>
<a class="navbar-item" href="../../../../../testing/latest/about.html">Testing Guide</a>
<a class="navbar-item" href="../../../../../security/latest/about.html">Security Guide</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">For use in apps</span>
<a class="navbar-item" href="../../../../../valuetypes/latest/about.html">Value Types</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Development</span>
<a class="navbar-item" href="../../../../../setupguide/latest/about.html">Setup Guide</a>
<a class="navbar-item" href="../../../../../conguide/latest/about.html">Contributors' Guide</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">Security</span>
<a class="navbar-item" href="../../../../../security/latest/bypass/about.html">Bypass</a>
<a class="navbar-item" href="../../../../../security/latest/simple/about.html">Simple</a>
<a class="navbar-item" href="../../../../../security/latest/spring/about.html">Spring</a>
<a class="navbar-item" href="../../../../../security/latest/keycloak/about.html">Keycloak</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Viewers</span>
<a class="navbar-item" href="../../../../../vw/latest/about.html">Web UI (Wicket)</a>
<a class="navbar-item" href="../../../../../gqlv/latest/about.html">GraphQL API</a>
<a class="navbar-item" href="../../../../../vro/latest/about.html">REST API (Restful Objects)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Persistence</span>
<a class="navbar-item" href="../../../../../pjpa/latest/about.html">JPA (EclipseLink)</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Extensions</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Core</span>
<a class="navbar-item" href="../../../../../userguide/latest/commandlog/about.html">Command Log</a>
<a class="navbar-item" href="../../../../../userguide/latest/docgen/about.html">Doc Gen</a>
<a class="navbar-item" href="../../../../../userguide/latest/executionlog/about.html">Execution Log</a>
<a class="navbar-item" href="../../../../../userguide/latest/executionoutbox/about.html">Execution Outbox</a>
<a class="navbar-item" href="../../../../../userguide/latest/executionrepublisher/about.html">Execution Republisher</a>
<a class="navbar-item" href="../../../../../userguide/latest/excel/about.html">Excel</a>
<a class="navbar-item" href="../../../../../userguide/latest/flyway/about.html">Flyway</a>
<a class="navbar-item" href="../../../../../userguide/latest/layoutloaders/about.html">Layout Loaders</a>
<a class="navbar-item" href="../../../../../userguide/latest/titlecache/about.html">Title Cache</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Security</span>
<a class="navbar-item" href="../../../../../security/latest/secman/about.html">Secman</a>
<a class="navbar-item" href="../../../../../security/latest/audittrail/about.html">Audit Trail</a>
<a class="navbar-item" href="../../../../../security/latest/spring-oauth2/about.html">Spring OAuth2 Integration</a>
<a class="navbar-item" href="../../../../../security/latest/sessionlog/about.html">Session Log</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Web UI (Wicket)</span>
<a class="navbar-item" href="../../../../../vw/latest/fullcalendar/about.html">Full Calendar</a>
<a class="navbar-item" href="../../../../../vw/latest/pdfjs/about.html">pdf.js</a>
<a class="navbar-item" href="../../../../../vw/latest/sse/about.html">Server Side Events</a>
<a class="navbar-item" href="../../../../../vw/latest/tabular/about.html">Tabular Download</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">REST API (Restful Objects)</span>
<a class="navbar-item" href="../../../../../vro/latest/cors/about.html">CORS</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Persistence</span>
<a class="navbar-item" href="../../../../../querydsl/latest/about.html">QueryDSL</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/latest/support/slack-channel.html">Slack</a>
<a class="navbar-item" href="../../../../../docs/latest/support/mailing-list.html">Mailing Lists</a>
<a class="navbar-item" href="https://issues.apache.org/jira/browse/CAUSEWAY">JIRA</a>
<a class="navbar-item" href="https://stackoverflow.com/questions/tagged/causeway">Stack Overflow</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Releases</span>
<a class="navbar-item" href="../../../../../docs/latest/downloads/how-to.html">Downloads</a>
<a class="navbar-item" href="../../../../../relnotes/latest/about.html">Release Notes</a>
<hr class="navbar-divider"/>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Framework</a>
<div class="navbar-dropdown">
<span class="navbar-item navbar-heading">Process</span>
<a class="navbar-item" href="../../../../../comguide/latest/about.html">Committers' Guide</a>
<a class="navbar-item" href="../../../../../tooling/latest/about.html">Tooling</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Automated Analysis</span>
<a class="navbar-item" href="https://sonarcloud.io/dashboard?id=apache_causeway">SonarCloud.io</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Interim Builds</span>
<a class="navbar-item" href="../../../../../comguide/latest/nightly-builds.html">Nightly builds</a>
<a class="navbar-item" href="../../../../../comguide/latest/weekly-builds.html">Weekly builds</a>
<a class="navbar-item" href="https://apache-causeway-committers.github.io/causeway-nightly">Website Preview (not ASF hosted)</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Development</span>
<a class="navbar-item" href="../../../../../core/latest/about.html">Internal Design Docs</a>
<a class="navbar-item" href="../../../../../regressiontests/latest/about.html">Regression Tests</a>
<a class="navbar-item" href="../../../../../incubator/latest/about.html">Incubator</a>
<hr class="navbar-divider"/>
<span class="navbar-item navbar-heading">Thanks</span>
<a class="navbar-item" href="../../../../../more-thanks/latest/more-thanks.html">Acknowledgements</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/">License</a>
<a class="navbar-item" href="https://www.apache.org/security/">Security</a>
<a class="navbar-item" href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy</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/Causeway.html">PMC board minutes</a>
</div>
</div>
<a class="navbar-item" href="../../../../../docs/latest/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="3.0.0">
<aside class="nav">
<div class="panels">
<div class="nav-panel-search hide-for-print">
<input id="algolia-search-input" placeholder="Search"></span>
</div>
<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="../../../../latest/applib-svc/about.html">Domain Services</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/acceptheader/AcceptHeaderService.html">AcceptHeaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/appfeatui/ApplicationFeatureMenu.html">ApplicationFeatureMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/appfeat/ApplicationFeatureRepository.html">ApplicationFeatureRepository</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/bookmark/BookmarkService.html">BookmarkService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/bookmarkui/BookmarkUiService.html">BookmarkUiService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/clock/ClockService.html">ClockService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/commanddto/processor/spi/CommandDtoProcessorService.html">CommandDtoProcessorService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/command/CommandExecutorService.html">CommandExecutorService</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../../latest/applib/index/services/publishing/spi/CommandSubscriber.html">CommandSubscriber</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/services/publishing/log/CommandLogger.html">CommandLogger</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/confview/ConfigurationMenu.html">ConfigurationMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/confview/ConfigurationViewService.html">ConfigurationViewService</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../../latest/applib/index/services/conmap/ContentMappingService.html">ContentMappingService</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/services/commanddto/conmap/ContentMappingServiceForCommandDto.html">ContentMappingServiceForCommandDto</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/services/commanddto/conmap/ContentMappingServiceForCommandsDto.html">ContentMappingServiceForCommandsDto</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/linking/DeepLinkService.html">DeepLinkService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/userreg/EmailNotificationService.html">EmailNotificationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/email/EmailService.html">EmailService</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../../latest/applib/index/services/publishing/spi/EntityChangesSubscriber.html">EntityChangesSubscriber</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/services/publishing/log/EntityChangesLogger.html">EntityChangesLogger</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../../latest/applib/index/services/publishing/spi/EntityPropertyChangeSubscriber.html">EntityPropertyChangeSubscriber</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/services/publishing/log/EntityPropertyChangeLogger.html">EntityPropertyChangeLogger</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../../latest/applib/index/services/publishing/spi/ExecutionSubscriber.html">ExecutionSubscriber</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/services/publishing/log/ExecutionLogger.html">ExecutionLogger</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/error/ErrorReportingService.html">ErrorReportingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/eventbus/EventBusService.html">EventBusService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/exceprecog/ExceptionRecognizerService.html">ExceptionRecognizerService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/factory/FactoryService.html">FactoryService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/grid/GridLoaderService.html">GridLoaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/grid/GridService.html">GridService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/grid/GridSystemService.html">GridSystemService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/health/HealthCheckService.html">HealthCheckService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/hint/HintIdProvider.html">HintIdProvider</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/hint/HintStore.html">HintStore</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/homepage/HomePageResolverService.html">HomePageResolverService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/bookmark/IdStringifier.html">IdStringifier</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/user/ImpersonateMenu.html">ImpersonateMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/user/ImpersonateMenuAdvisor.html">ImpersonateMenuAdvisor</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/iactn/InteractionProvider.html">InteractionProvider</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/iactnlayer/InteractionLayerTracker.html">InteractionLayerTracker</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/iactnlayer/InteractionService.html">InteractionService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/jaxb/JaxbService.html">JaxbService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/layout/LayoutService.html">LayoutService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/layout/LayoutServiceMenu.html">LayoutServiceMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/i18n/LanguageProvider.html">LanguageProvider</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/locale/LocaleChoiceProvider.html">LocaleChoiceProvider</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/menu/MenuBarsLoaderService.html">MenuBarsLoaderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/menu/MenuBarsService.html">MenuBarsService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/message/MessageService.html">MessageService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/metamodel/MetaModelService.html">MetaModelService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/metamodel/MetaModelServiceMenu.html">MetaModelServiceMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/metrics/MetricsService.html">MetricsService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/queryresultscache/QueryResultsCache.html">QueryResultsCache</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/repository/RepositoryService.html">RepositoryService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/routing/RoutingService.html">RoutingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/scratchpad/Scratchpad.html">Scratchpad</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/inject/ServiceInjector.html">ServiceInjector</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/registry/ServiceRegistry.html">ServiceRegistry</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/session/SessionSubscriber.html">SessionSubscriber</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/sitemap/SitemapService.html">SitemapService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/sitemap/SitemapServiceMenu.html">SitemapServiceMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/sudo/SudoService.html">SudoService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/swagger/SwaggerService.html">SwaggerService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/tablecol/TableColumnOrderService.html">TableColumnOrderService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/tablecol/TableColumnVisibilityService.html">TableColumnVisibilityService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/title/TitleService.html">TitleService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/i18n/TranslationService.html">TranslationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/i18n/TranslationsResolver.html">TranslationsResolver</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/xactn/TransactionalProcessor.html">TransactionProcessor</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/xactn/TransactionService.html">TransactionService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/urlencoding/UrlEncodingService.html">UrlEncodingService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/userui/UserMenu.html">UserMenu</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/userreg/UserRegistrationService.html">UserRegistrationService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/user/UserService.html">UserService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/wrapper/WrapperFactory.html">WrapperFactory</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/xml/XmlService.html">XmlService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/services/xmlsnapshot/XmlSnapshotService.html">XmlSnapshotService</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">Core Transaction</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/core/index/transaction/changetracking/EntityChangeTracker.html">EntityChangeTracker</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/core/index/transaction/changetracking/EntityChangesPublisher.html">EntityChangesPublisher</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">Viewer Common Applib</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/viewer/index/commons/applib/services/userprof/UserProfileUiService.html">UserProfileUiService</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">Persistence JPA Applib</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/persistence/index/jpa/applib/services/JpaSupportService.html">JpaSupportService</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">Persistence QueryDsl Applib</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/persistence/index/querydsl/applib/services/auto/AutoCompleteGeneratedQueryService.html">AutoCompleteGeneratedQueryService</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/persistence/index/querydsl/applib/services/repo/QueryDslRepository.html">QueryDslRepository</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/persistence/index/querydsl/applib/services/support/DetachedQueryFactory.html">DetachedQueryFactory</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/persistence/index/querydsl/applib/services/support/QueryDslSupport.html">QueryDslSupport</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../../latest/applib-ant/about.html">Annotations</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Action.html">@Action</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/ActionLayout.html">@ActionLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Collection.html">@Collection</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/CollectionLayout.html">@CollectionLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/DomainObject.html">@DomainObject</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/DomainObjectLayout.html">@DomainObjectLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/DomainService.html">@DomainService</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/DomainServiceLayout.html">@DomainServiceLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Parameter.html">@Parameter</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/ParameterLayout.html">@ParameterLayout</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Property.html">@Property</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib/index/annotation/PropertyLayout.html">@PropertyLayout</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">Other Causeway Annotations</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/annotation/HomePage.html">@HomePage</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Title.html">@Title</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/annotation/MinLength.html">@MinLength</a>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<span class="nav-text">include/exclude</span>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Domain_Include.html">@Domain.Include</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Domain_Exclude.html">@Domain.Exclude</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/MemberSupport.html">@MemberSupport</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/ObjectSupport.html">@ObjectSupport</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/ObjectLifecycle.html">@ObjectLifecycle</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Programmatic.html">@Programmatic</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<span class="nav-text">architecture</span>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Module.html">@Module</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/InteractionScope.html">@InteractionScope</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<span class="nav-text">custom value type support</span>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/Value.html">@Value</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/applib/index/annotation/ValueSemantics.html">@ValueSemantics</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">Java EE Annotations</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib-ant/Digits.html">@Digits</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib-ant/Nullable.html">@Nullable</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib-ant/Pattern.html">@Pattern</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">JAXB</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib-ant/XmlJavaTypeAdapter.html">@XmlJavaTypeAdapter</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib-ant/XmlRootElement.html">@XmlRootElement</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">JPA</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib-ant/Entity.html">@Entity</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib-ant/Table.html">@Table</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib-ant/Transient.html">@Transient</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib-ant/Column.html">@Column</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../../latest/applib-methods/about.html">Methods</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib-methods/prefixes.html">Supporting Methods</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/applib-methods/ui-hints.html">UI Hint Methods</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/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="../../../applib-classes/about.html">Classes</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-classes/events.html">Events</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../applib-classes/non-persisted-objects.html">Non-persisted objects</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../ViewModel.html">ViewModel</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-classes/layout.html">Layout</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../applib-classes/value-types.html">Value Types</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../value/Blob.html">Blob</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../value/Clob.html">Clob</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../value/Markup.html">Markup</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../value/LocalResourcePath.html">LocalResourcePath</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../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="../../../applib-classes/utility.html">Utility Classes</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../util/Enums.html">Enums</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../util/ObjectContracts.html">ObjectContracts</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../util/Reasons.html">Reasons</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../util/ReasonBuffer.html">ReasonBuffer</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../util/ReasonBuffer2.html">ReasonBuffer2</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../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="../../../applib-classes/mixees-and-mixins.html">Mixees and Mixins</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../mixins/layout/Object_downloadLayout.html">Object_downloadLayout</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/mixins/metamodel/Object_downloadMetamodelXml.html">Object_downloadMetamodelXml</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../mixins/metamodel/Object_rebuildMetamodel.html">Object_rebuildMetamodel</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/mixins/metamodel/Object_logicalTypeName.html">Object_logicalTypeName</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/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/applib/mixins/Object_clearHints.html">Object_clearHints</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../mixins/rest/Object_openRestApi.html">Object_openRestApi</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/mixins/dto/Dto_downloadXml.html">Dto_downloadXml</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/mixins/dto/Dto_downloadXsd.html">Dto_downloadXsd</a>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<span class="nav-text">Command Log</span>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/extensions/index/commandlog/applib/contributions/Object_recentCommands.html">Object_recentCommands</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/extensions/index/commandlog/applib/contributions/HasInteractionId_commandLogEntry.html">HasInteraction_commandLogEntry</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/extensions/index/commandlog/applib/contributions/HasUsername_recentCommandsByUser.html">HasUsername_recentCommandsByUser</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<span class="nav-text">Execution Log</span>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/extensions/index/executionlog/applib/contributions/Object_recentExecutions.html">Object_recentExecutions</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../../../../latest/extensions/index/executionlog/applib/contributions/HasInteractionId_executionLogEntries.html">HasInteractionId_executionLogEntries</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../../latest/applib/index/mixins/system/HasTarget_openTargetObject.html">HasTarget_openTargetObject</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../applib-classes/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="../../../../latest/config/about.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.applib.html">Applib</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.core.config.html">Core Configuration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.core.meta-model.html">Core MetaModel</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.core.meta-model.introspector.html">Core MetaModel Introspection</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.core.meta-model.validator.html">Core MetaModel Validator</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.core.runtime.html">Core Runtime</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.core.runtime-services.html">Core Runtime Services</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.persistence.schema.html">Core Persistence Schema</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.persistence.commons.html">Core Persistence Commons</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.prototyping.html">Prototyping</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.security.keycloak.html">Keycloak Security Implementation</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.security.spring.html">Spring Security Implementation</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.viewer.common.html">Common Config for Viewers</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.viewer.graphql.html">GraphQL API</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.viewer.restfulobjects.html">REST API (Restful Objects Viewer)</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.viewer.wicket.html">Wicket Viewer</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/eclipselink.html">Eclipselink Configuration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.extensions.html">Extensions</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.value-types.html">Value types</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/causeway.testing.html">Testing</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/config/sections/Other.html">Other</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../../latest/schema/about.html">Schema</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/schema/mml.html">MetaModel</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/schema/cmd.html">Command</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/schema/ixn.html">Interaction</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/schema/chg.html">Changes</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../../latest/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">3.0.0</span>
</div>
<ul class="components">
<li class="component">
<span class="title"> </span>
<ul class="versions">
<li class="version">
<a href="../../../../../docs/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../docs/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../docs/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../docs/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../docs/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../docs/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../docs/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../docs/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../docs/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Committers' Guide</span>
<ul class="versions">
<li class="version">
<a href="../../../../../comguide/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../comguide/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../comguide/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../comguide/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../comguide/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../comguide/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../comguide/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../comguide/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../comguide/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Contributors' Guide</span>
<ul class="versions">
<li class="version">
<a href="../../../../../conguide/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../conguide/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../conguide/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../conguide/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../conguide/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../conguide/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../conguide/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../conguide/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../conguide/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Design Docs</span>
<ul class="versions">
<li class="version">
<a href="../../../../../core/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../core/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../core/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../core/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../core/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../core/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../core/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../core/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../core/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Extensions</span>
<ul class="versions">
<li class="version">
<a href="../../../../../extensions/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../extensions/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../extensions/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../extensions/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../extensions/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../extensions/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../extensions/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../extensions/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../extensions/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">GraphQL Viewer</span>
<ul class="versions">
<li class="version">
<a href="../../../../../gqlv/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../gqlv/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../gqlv/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../gqlv/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../gqlv/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../gqlv/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../gqlv/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../gqlv/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../gqlv/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Incubator Catalog</span>
<ul class="versions">
<li class="version">
<a href="../../../../../incubator/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../incubator/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../incubator/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../incubator/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../incubator/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../incubator/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../incubator/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../incubator/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../incubator/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">JDO/DataNucleus</span>
<ul class="versions">
<li class="version">
<a href="../../../../../pjdo/latest/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../pjdo/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../pjdo/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../pjdo/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../pjdo/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../pjdo/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../pjdo/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">JPA</span>
<ul class="versions">
<li class="version">
<a href="../../../../../pjpa/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../pjpa/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../pjpa/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../pjpa/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../pjpa/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../pjpa/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../pjpa/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../pjpa/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../pjpa/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">QueryDSL</span>
<ul class="versions">
<li class="version">
<a href="../../../../../querydsl/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../querydsl/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../querydsl/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../querydsl/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../querydsl/3.2.0/about.html">3.2.0</a>
</li>
</ul>
</li>
<li class="component is-current">
<span class="title">Reference Guide</span>
<ul class="versions">
<li class="version">
<a href="../../../../latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../3.1.0/about.html">3.1.0</a>
</li>
<li class="version is-current">
<a href="../../../about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">regressiontests</span>
<ul class="versions">
<li class="version">
<a href="../../../../../regressiontests/latest/index.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../regressiontests/3.5.0/index.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../regressiontests/3.4.0/index.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../regressiontests/3.3.0/index.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../regressiontests/3.2.0/index.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../regressiontests/3.1.0/index.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../regressiontests/3.0.0/index.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../regressiontests/2.1.0/index.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../regressiontests/2.0.0/index.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Release Notes</span>
<ul class="versions">
<li class="version">
<a href="../../../../../relnotes/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../relnotes/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../relnotes/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../relnotes/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../relnotes/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../relnotes/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../relnotes/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../relnotes/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../relnotes/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">REST API (Restful Objects Viewer)</span>
<ul class="versions">
<li class="version">
<a href="../../../../../vro/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../vro/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../vro/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../vro/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../vro/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../vro/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../vro/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../vro/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../vro/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Security Guide</span>
<ul class="versions">
<li class="version">
<a href="../../../../../security/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../security/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../security/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../security/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../security/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../security/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../security/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../security/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../security/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Setup Guide</span>
<ul class="versions">
<li class="version">
<a href="../../../../../setupguide/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../setupguide/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../setupguide/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../setupguide/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../setupguide/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../setupguide/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../setupguide/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../setupguide/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../setupguide/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Testing Guide</span>
<ul class="versions">
<li class="version">
<a href="../../../../../testing/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../testing/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../testing/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../testing/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../testing/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../testing/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../testing/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../testing/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../testing/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Tutorials</span>
<ul class="versions">
<li class="version">
<a href="../../../../../tutorials/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../tutorials/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../tutorials/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../tutorials/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../tutorials/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../tutorials/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../tutorials/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../tutorials/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../tutorials/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">User Guide</span>
<ul class="versions">
<li class="version">
<a href="../../../../../userguide/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../userguide/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../userguide/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../userguide/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../userguide/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../userguide/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../userguide/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../userguide/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../userguide/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Value Types Catalog</span>
<ul class="versions">
<li class="version">
<a href="../../../../../valuetypes/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../valuetypes/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../valuetypes/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../valuetypes/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../valuetypes/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../valuetypes/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../valuetypes/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../valuetypes/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../valuetypes/2.0.0/about.html">2.0.0</a>
</li>
</ul>
</li>
<li class="component">
<span class="title">Web UI (Wicket Viewer)</span>
<ul class="versions">
<li class="version">
<a href="../../../../../vw/latest/about.html">4.0.0-M1</a>
</li>
<li class="version">
<a href="../../../../../vw/3.5.0/about.html">3.5.0</a>
</li>
<li class="version">
<a href="../../../../../vw/3.4.0/about.html">3.4.0</a>
</li>
<li class="version">
<a href="../../../../../vw/3.3.0/about.html">3.3.0</a>
</li>
<li class="version">
<a href="../../../../../vw/3.2.0/about.html">3.2.0</a>
</li>
<li class="version">
<a href="../../../../../vw/3.1.0/about.html">3.1.0</a>
</li>
<li class="version">
<a href="../../../../../vw/3.0.0/about.html">3.0.0</a>
</li>
<li class="version">
<a href="../../../../../vw/2.1.0/about.html">2.1.0</a>
</li>
<li class="version">
<a href="../../../../../vw/2.0.0/about.html">2.0.0</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/latest/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="DomainObjectLayout.html">@DomainObjectLayout</a></li>
</ul>
</nav>
<div class="page-versions">
<button class="version-menu-toggle" title="Show other versions of page">3.0.0</button>
<div class="version-menu">
<a class="version" href="../../../../latest/applib/index/annotation/DomainObjectLayout.html">4.0.0-M1</a>
<a class="version" href="../../../../3.5.0/applib/index/annotation/DomainObjectLayout.html">3.5.0</a>
<a class="version" href="../../../../3.4.0/applib/index/annotation/DomainObjectLayout.html">3.4.0</a>
<a class="version" href="../../../../3.3.0/applib/index/annotation/DomainObjectLayout.html">3.3.0</a>
<a class="version" href="../../../../3.2.0/applib/index/annotation/DomainObjectLayout.html">3.2.0</a>
<a class="version" href="../../../../3.1.0/applib/index/annotation/DomainObjectLayout.html">3.1.0</a>
<a class="version is-current" href="DomainObjectLayout.html">3.0.0</a>
<a class="version" href="../../../../2.1.0/applib/index/annotation/DomainObjectLayout.html">2.1.0</a>
<a class="version" href="../../../../2.0.0/applib/index/annotation/DomainObjectLayout.html">2.0.0</a>
</div>
</div>
<div class="edit-this-page"><a href="https://github.com/apache/causeway/edit/3.0.0/antora/components/refguide-index/modules/applib/pages/index/annotation/DomainObjectLayout.adoc">Edit</a></div>
</div>
<article class="doc">
<a name="section-top"></a>
<h1 class="page">@DomainObjectLayout</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Layout hints for domain objects.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="api"><a class="anchor" href="#api"></a>API</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="title">DomainObjectLayout.java</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@interface DomainObjectLayout {
BookmarkPolicy bookmarking() default BookmarkPolicy.NOT_SPECIFIED; <i class="conum" data-value="1"></i><b>(1)</b>
String cssClass() default ""; <i class="conum" data-value="2"></i><b>(2)</b>
String cssClassFa() default ""; <i class="conum" data-value="3"></i><b>(3)</b>
CssClassFaPosition cssClassFaPosition() default CssClassFaPosition.LEFT; <i class="conum" data-value="4"></i><b>(4)</b>
String describedAs() default ""; <i class="conum" data-value="5"></i><b>(5)</b>
String named() default ""; <i class="conum" data-value="6"></i><b>(6)</b>
int paged() default -1; <i class="conum" data-value="7"></i><b>(7)</b>
Class&lt;? extends TableDecorator&gt; tableDecorator() default TableDecorator.Default.class; <i class="conum" data-value="8"></i><b>(8)</b>
Class&lt;? extends CssClassUiEvent&lt;?&gt;&gt; cssClassUiEvent() default CssClassUiEvent.Default.class; <i class="conum" data-value="9"></i><b>(9)</b>
Class&lt;? extends IconUiEvent&lt;?&gt;&gt; iconUiEvent() default IconUiEvent.Default.class; <i class="conum" data-value="10"></i><b>(10)</b>
Class&lt;? extends LayoutUiEvent&lt;?&gt;&gt; layoutUiEvent() default LayoutUiEvent.Default.class; <i class="conum" data-value="11"></i><b>(11)</b>
Class&lt;? extends TitleUiEvent&lt;?&gt;&gt; titleUiEvent() default TitleUiEvent.Default.class; <i class="conum" data-value="12"></i><b>(12)</b>
}</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td><a href="#bookmarking">bookmarking</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Whether (and how) this domain object can be bookmarked in the UI.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td><a href="#cssClass">cssClass</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Indicates the CSS class that a domain class (type) should have, to allow more targeted styling in <code>application.css</code> .</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="3"></i><b>3</b></td>
<td><a href="#cssClassFa">cssClassFa</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>TheFont AwesomeCSS class that is used as icon for the annotated domain object.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="4"></i><b>4</b></td>
<td><a href="#cssClassFaPosition">cssClassFaPosition</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Indicates the position of theFont Awesomeicon. The icon could be rendered on the left or the right of the object&#8217;s title.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="5"></i><b>5</b></td>
<td><a href="#describedAs">describedAs</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Description of this class, eg to be rendered in a tooltip.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="6"></i><b>6</b></td>
<td><a href="#named">named</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Name of this class (overriding the name derived from its name in code).</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="7"></i><b>7</b></td>
<td><a href="#paged">paged</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>The page size for instances of this class when rendered within a table.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="8"></i><b>8</b></td>
<td><a href="#tableDecorator">tableDecorator</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Whether a standalone collection, when represented in a table form, should additionally be "decorated" with client-side (javascript) enhancements, for example to enable paging and filtering.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="9"></i><b>9</b></td>
<td><a href="#cssClassUiEvent">cssClassUiEvent</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Which subclass of <a href="../../../../latest/applib/index/events/ui/CssClassUiEvent.html" class="xref page">CssClassUiEvent</a> should be used to obtain a CSS class.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="10"></i><b>10</b></td>
<td><a href="#iconUiEvent">iconUiEvent</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Which subclass of <a href="../../../../latest/applib/index/events/ui/IconUiEvent.html" class="xref page">IconUiEvent</a> should be used to obtain an icon.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="11"></i><b>11</b></td>
<td><a href="#layoutUiEvent">layoutUiEvent</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Which subclass of <a href="../../../../latest/applib/index/events/ui/LayoutUiEvent.html" class="xref page">LayoutUiEvent</a> should be used to obtain a layout.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="12"></i><b>12</b></td>
<td><a href="#titleUiEvent">titleUiEvent</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Which subclass of <a href="../../../../latest/applib/index/events/ui/TitleUiEvent.html" class="xref page">TitleUiEvent</a> should be used to obtain a title.</p>
</div>
</div>
</div></td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="members"><a class="anchor" href="#members"></a>Members</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="bookmarking"><a class="anchor" href="#bookmarking"></a>bookmarking</h3>
<div class="paragraph">
<p>Whether (and how) this domain object can be bookmarked in the UI.</p>
</div>
</div>
<div class="sect2">
<h3 id="cssClass"><a class="anchor" href="#cssClass"></a>cssClass</h3>
<div class="paragraph">
<p>Indicates the CSS class that a domain class (type) should have, to allow more targeted styling in <code>application.css</code> .</p>
</div>
</div>
<div class="sect2">
<h3 id="cssClassFa"><a class="anchor" href="#cssClassFa"></a>cssClassFa</h3>
<div class="paragraph">
<p>TheFont AwesomeCSS class that is used as icon for the annotated domain object.</p>
</div>
<div class="paragraph">
<p>Use the <em>FontAwesomeLayers iconFaLayers()</em> object support method for more advanced icons.</p>
</div>
</div>
<div class="sect2">
<h3 id="cssClassFaPosition"><a class="anchor" href="#cssClassFaPosition"></a>cssClassFaPosition</h3>
<div class="paragraph">
<p>Indicates the position of theFont Awesomeicon. The icon could be rendered on the left or the right of the object&#8217;s title.</p>
</div>
</div>
<div class="sect2">
<h3 id="describedAs"><a class="anchor" href="#describedAs"></a>describedAs</h3>
<div class="paragraph">
<p>Description of this class, eg to be rendered in a tooltip.</p>
</div>
</div>
<div class="sect2">
<h3 id="named"><a class="anchor" href="#named"></a>named</h3>
<div class="paragraph">
<p>Name of this class (overriding the name derived from its name in code).</p>
</div>
<div class="paragraph">
<p>A typical use case is if the desired name is a reserved Java keyword, such as <code>default</code> or <code>package</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="paged"><a class="anchor" href="#paged"></a>paged</h3>
<div class="paragraph">
<p>The page size for instances of this class when rendered within a table.</p>
</div>
<div class="paragraph">
<p>If annotated on a collection, then the page size refers to parented collections (eg <code>Order#lineItems</code> ).</p>
</div>
<div class="paragraph">
<p>If annotated on a type, then the page size refers to standalone collections (eg as returned from a repository query).</p>
</div>
</div>
<div class="sect2">
<h3 id="tableDecorator"><a class="anchor" href="#tableDecorator"></a>tableDecorator</h3>
<div class="paragraph">
<p>Whether a standalone collection, when represented in a table form, should additionally be "decorated" with client-side (javascript) enhancements, for example to enable paging and filtering.</p>
</div>
</div>
<div class="sect2">
<h3 id="cssClassUiEvent"><a class="anchor" href="#cssClassUiEvent"></a>cssClassUiEvent</h3>
<div class="paragraph">
<p>Which subclass of <a href="../../../../latest/applib/index/events/ui/CssClassUiEvent.html" class="xref page">CssClassUiEvent</a> should be used to obtain a CSS class.</p>
</div>
<div class="paragraph">
<p>This subclass must provide a no-arg constructor; the fields are set reflectively.</p>
</div>
</div>
<div class="sect2">
<h3 id="iconUiEvent"><a class="anchor" href="#iconUiEvent"></a>iconUiEvent</h3>
<div class="paragraph">
<p>Which subclass of <a href="../../../../latest/applib/index/events/ui/IconUiEvent.html" class="xref page">IconUiEvent</a> should be used to obtain an icon.</p>
</div>
<div class="paragraph">
<p>This subclass must provide a no-arg constructor; the fields are set reflectively.</p>
</div>
</div>
<div class="sect2">
<h3 id="layoutUiEvent"><a class="anchor" href="#layoutUiEvent"></a>layoutUiEvent</h3>
<div class="paragraph">
<p>Which subclass of <a href="../../../../latest/applib/index/events/ui/LayoutUiEvent.html" class="xref page">LayoutUiEvent</a> should be used to obtain a layout.</p>
</div>
<div class="paragraph">
<p>This subclass must provide a no-arg constructor; the fields are set reflectively.</p>
</div>
</div>
<div class="sect2">
<h3 id="titleUiEvent"><a class="anchor" href="#titleUiEvent"></a>titleUiEvent</h3>
<div class="paragraph">
<p>Which subclass of <a href="../../../../latest/applib/index/events/ui/TitleUiEvent.html" class="xref page">TitleUiEvent</a> should be used to obtain a title.</p>
</div>
<div class="paragraph">
<p>This subclass must provide a no-arg constructor; the fields are set reflectively.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<div class="sectionbody">
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObjectLayout(
cssClass="x-key",
cssClassFa="fa-checklist",
describedAs="Capture a task that you need to do",
named="ToDo",
paged=30,
plural="ToDo List")
)
public class ToDoItem {
...
}</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>Note that there is (currently) no support for specifying UI hints for domain objects through the dynamic <a href="../../../../../userguide/latest/ui-layout-and-hints.html#object-layout" class="xref page">.layout.xml</a> file (only for properties, collections and actions are supported).</p>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="usage-notes"><a class="anchor" href="#usage-notes"></a>Usage Notes</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="descriptions"><a class="anchor" href="#descriptions"></a>Descriptions</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#describedAs" class="xref page">describedAs()</a> element is used to provide a short description of the domain object to the user.
In the <a href="../../../../../vw/latest/about.html" class="xref page">Web UI (Wicket viewer)</a> it is displayed as a 'tool tip'.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObjectLayout(
describedAs = "A customer who may have originally become"
+ " known to us via the marketing system or who may"
+ " have contacted us directly."
)
public class ProspectiveSale {
...
}</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="css-styling"><a class="anchor" href="#css-styling"></a>CSS Styling</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#cssClass" class="xref page">cssClass()</a> element can be used to render additional CSS classes in the HTML (a wrapping <code>&lt;div&gt;</code>) that represents the domain object.
<a href="../../../../latest/config/application-specific/application-css.html" class="xref page">Application-specific CSS</a> can then be used to target and adjust the UI representation of that particular element.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObject
@DomainObjectLayout(
cssClass="x-core-entity"
)
public class ToDoItem { /* ... */ }</code></pre>
</div>
</div>
<div class="admonitionblock note">
<table>
<tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>The similar <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#cssClassFa" class="xref page">@DomainObjectLayout#cssClassFa()</a> element is also used as a hint to apply CSS, but in particular to allow <a href="http://fortawesome.github.io/Font-Awesome/icons/">Font Awesome icons</a> to be rendered as the icon for classes.</p>
</div>
</td>
</tr>
</table>
</div>
</div>
<div class="sect2">
<h3 id="font-awesome-icons"><a class="anchor" href="#font-awesome-icons"></a>Font Awesome Icons</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#cssClassFa" class="xref page">cssClassFa()</a> element is used to specify the name of a <a href="http://fortawesome.github.io/Font-Awesome/icons/">Font Awesome icon</a> name, to be rendered as the domain object&#8217;s icon.</p>
</div>
<div class="paragraph">
<p>If necessary the icon specified can be overridden by a particular object instance using the <a href="../../../../latest/applib-methods/ui-hints.html#iconName" class="xref page">iconName()</a> method.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObjectLayout(
cssClassFa="fa-check-circle"
)
public class ToDoItem {
// ...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>There can be multiple "fa-" classes, eg to mirror or rotate the icon.
There is no need to include the mandatory <code>fa</code> "marker" CSS class; it will be automatically added to the list.
The <code>fa-</code> prefix can also be omitted from the class names; it will be prepended to each if required.</p>
</div>
<div class="paragraph">
<p>The related <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#cssClassFaPosition" class="xref page">cssClassFaPosition</a> element is currently unused for domain objects; the icon is always rendered to the left.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
<div class="paragraph">
<p>The similar <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#cssClass" class="xref page">@DomainObjectLayout#cssClass()</a> element is also used as a hint to apply CSS, but for wrapping the representation of an object or object member so that it can be styled in an application-specific way.</p>
</div>
</td>
</tr>
</table>
</div>
</div>
<div class="sect2">
<h3 id="names"><a class="anchor" href="#names"></a>Names</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#named" class="xref page">named()</a> element explicitly specifies the domain object&#8217;s name, overriding the name that would normally be inferred from the Java source code.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
<div class="paragraph">
<p>We recommend that you only use this element when the desired name cannot be used in Java source code.
Examples of that include a name that would be a reserved Java keyword (eg "package"), or a name that has punctuation, eg apostrophes.</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObjectLayout(
named="Customer"
)
public class CustomerImpl implements Customer{
// ...
}</code></pre>
</div>
</div>
<div class="sect3">
<h4 id="plural-form"><a class="anchor" href="#plural-form"></a>Plural form</h4>
<div class="paragraph">
<p>When Apache Causeway displays a standalone collection of several objects, it will label the collection using the plural form of the object type.
By default the plural name will be derived from the end of the singular name, with support for some basic English language defaults (eg using "ies" for names ending with a "y").</p>
</div>
<div class="paragraph">
<p>For irregular plurals it&#8217;s possible to specify a plural form using the <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#plural" class="xref page">plural</a> element.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObjectLayout(plural="Children")
public class Child {
// ...
}</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="i18n"><a class="anchor" href="#i18n"></a>i18n</h4>
<div class="paragraph">
<p>The framework also provides a separate, powerful mechanism for <a href="../../../../../userguide/latest/btb/i18n.html" class="xref page">internationalization</a>.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="bookmarks"><a class="anchor" href="#bookmarks"></a>Bookmarks</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#bookmarking" class="xref page">bookmarking()</a> element indicates that an entity is automatically bookmarked.</p>
</div>
<div class="paragraph">
<p>In the <a href="../../../../../vw/latest/about.html" class="xref page">Web UI (Wicket viewer)</a>, a link to a bookmarked object is shown in the bookmarks panel, top right.</p>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObject(bookmarking=BookmarkPolicy.AS_ROOT)
public class ToDoItem ... {
...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>indicates that the <code>ToDoItem</code> class is bookmarkable:</p>
</div>
<div class="paragraph">
<p>It is also possible to nest bookmarkable entities.
For example:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="../../../../latest/applib-ant/_images/reference-annotations/DomainObjectLayout/bookmarking-nested.png" alt="bookmarking nested" width="720px">
</div>
</div>
<div class="paragraph">
<p>For example, the <code>Property</code> entity "[OXF] Oxford Super Mall" is a root bookmark, but the <code>Unit</code> child entity "[OXF-001] Unit 1" only appears as a bookmark <em>but only if</em> its parent <code>Property</code> has already been bookmarked.</p>
</div>
<div class="paragraph">
<p>This is accomplished with the following annotations:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObject(bookmarking=BookmarkPolicy.AS_ROOT)
public class Property {
// ...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>and</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObject(bookmarking=BookmarkPolicy.AS_CHILD)
public abstract class Unit {
// ...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The nesting can be done to any level.</p>
</div>
</div>
<div class="sect2">
<h3 id="paging"><a class="anchor" href="#paging"></a>Paging</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#paged" class="xref page">paged()</a> element specifies the number of rows to display in a standalone collection, as returned from an action invocation.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<i class="fa icon-warning" title="Warning"></i>
</td>
<td class="content">
<div class="paragraph">
<p>The <a href="../../../../../vro/latest/about.html" class="xref page">RestfulObjects viewer</a> currently does not support paging.
The <a href="../../../../../vw/latest/about.html" class="xref page">Web UI (Wicket viewer)</a> <em>does</em> support paging, but note that the paging is performed client-side rather than server-side.</p>
</div>
<div class="paragraph">
<p>We therefore recommend that large collections should instead be modelled as actions (to allow filtering to be applied to limit the number of rows).</p>
</div>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObjectLayout(paged=15)
public class Order {
// ...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>It is also possible to specify a global default for the page size of standalone collections, using the <a href="../../../../latest/config/sections/causeway.applib.html#causeway.applib.annotation.domain-object-layout.paged" class="xref page">causeway.applib.annotation.domain-object-layout.paged</a> configuration property.</p>
</div>
</div>
<div class="sect2">
<h3 id="ui-events"><a class="anchor" href="#ui-events"></a>UI Events</h3>
<div class="paragraph">
<p>Whenever a domain object is to be rendered, the framework fires off a number of various events to allow subscribers to influence the visual appearance of that domain object:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>a <strong>CSS class</strong> UI event</p>
<div class="paragraph">
<p>to obtain a CSS class to use in any wrapping <code>&lt;div&gt;</code>s and <code>&lt;span&gt;</code>s that render the domain object.</p>
</div>
</li>
<li>
<p>an <strong>icon</strong> UI event</p>
<div class="paragraph">
<p>to obtain an icon (name) for the object (if possible)</p>
</div>
</li>
<li>
<p>a <strong>layout</strong> UI event</p>
<div class="paragraph">
<p>to obtain an alternative layout name with which to render the domain object.</p>
</div>
</li>
<li>
<p>a <strong>title</strong> UI event</p>
<div class="paragraph">
<p>to obtain a title for the object</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The framework has a built-in event class (for each UI hint) that is raised by default; for example a <code>TitleUiEvent.Default</code> is raised to obtain a title for the object.
Subscribers subscribe through the <a href="../../../../latest/applib/index/services/eventbus/EventBusService.html" class="xref page">EventBusService</a> and can use obtain a reference to the domain object from the event.
From this they can, if they wish, specify the corresponding UI hint.</p>
</div>
<div class="paragraph">
<p>This basic model can be influenced in a couple of ways:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>first, it is also possible to suppress any events from being emitted using a configuration property (a different config property exists each lifecycle hook).</p>
</li>
<li>
<p>second, an element on <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html" class="xref page">@DomainObjectLayout</a> annotation (for each UI hook) allows a different subtype event types to be emitted instead</p>
<div class="paragraph">
<p>This allows subscribers to more targeted as to the events that they subscribe to.</p>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>The type of this event can be changed using various <code>xxxUiEvent</code> elements of <a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html" class="xref page">@DomainObjectLayout</a>.
This allows subscribers to be more precise as to the domain objects that they will target.</p>
</div>
<div class="paragraph">
<p>The framework also provides convenience "Doop" and a "Noop" event classes, that provoke these behaviours:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>if the appropriate <a href="../../../../latest/applib/index/annotation/DomainObject.html" class="xref page">DomainObject</a>' element is set to the "Doop" subclass, then this will event will be fired</p>
<div class="paragraph">
<p>this is a convenient way of ensuring an event is fired even if the hook has been disabled globally, but without the hassle of defining a custom event type</p>
</div>
</li>
<li>
<p>if set to the "Noop" subclass, then an event will <em>not</em> be fired.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If the domain object implements the corresponding <a href="../../../../latest/applib-methods/ui-hints.html" class="xref page">reserved method</a> directly (for example <a href="../../../../latest/applib-methods/ui-hints.html#title" class="xref page">title()</a>, then that will take precedence.</p>
</div>
<div class="paragraph">
<p>The table below summarises all the UI event hooks:</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 10.5263%;">
<col style="width: 26.3157%;">
<col style="width: 26.3157%;">
<col style="width: 21.0526%;">
<col style="width: 15.7897%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>UI hint</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Config property</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>@DomainObjectLayout override</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Framework event types</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Reserved method</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>CSS class</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/config/sections/causeway.applib.html#causeway.applib.annotation.domain-object-layout.css-class-ui-event.post-for-default" class="xref page">causeway.applib.annotation.domain-object-layout.css-class-ui-event.post-for-default</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#cssClassUiEvent" class="xref page">cssClassUiEvent()</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>CssClassUiEvent.Default<br>
CssClassUiEvent.Doop<br>
CssClassUiEvent.Noop</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/applib-methods/ui-hints.html#cssClass" class="xref page">cssClass()</a></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Icon Name</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/config/sections/causeway.applib.html#causeway.applib.annotation.domain-object-layout.icon-ui-event.post-for-default" class="xref page">causeway.applib.annotation.domain-object-layout.icon-ui-event.post-for-default</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#iconUiEvent" class="xref page">iconUiEvent()</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>IconUiEvent.Default<br>
IconUiEvent.Doop<br>
IconUiEvent.Noop</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/applib-methods/ui-hints.html#iconName" class="xref page">iconName()</a></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Layout</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/config/sections/causeway.applib.html#causeway.applib.annotation.domain-object-layout.layout-ui-event.post-for-default" class="xref page">causeway.applib.annotation.domain-object-layout.layout-ui-event.post-for-default</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#layoutUiEvent" class="xref page">layoutUiEvent()</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>LayoutUiEvent.Default<br>
LayoutUiEvent.Doop<br>
LayoutUiEvent.Noop</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/applib-methods/ui-hints.html#layout" class="xref page">layout()</a></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Title</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/config/sections/causeway.applib.html#causeway.applib.annotation.domain-object-layout.title-ui-event.post-for-default" class="xref page">causeway.applib.annotation.domain-object-layout.title-ui-event.post-for-default</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/applib/index/annotation/DomainObjectLayout.html#titleUiEvent" class="xref page">titleUiEvent()</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>TitleUiEvent.Default<br>
TitleUiEvent.Doop<br>
TitleUiEvent.Noop</code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="../../../../latest/applib-methods/ui-hints.html#title" class="xref page">title()</a></p>
</div></div></td>
</tr>
</tbody>
</table>
<div class="paragraph">
<p>For example:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@DomainObjectLayout(
iconUiEvent=ToDoItemDto.CssClassUiEvent.class,
titleUiEvent=ToDoItemDto.TitleUiEvent.class
)
public class ToDoItemDto {
public static class CssClassUiEvent
extends org.apache.causeway.applib.events.ui.CssClassUiEvent&lt;ToDoItemDto&gt; { }
public static class TitleUiEvent
extends org.apache.causeway.applib.events.ui.TitleUiEvent&lt;ToDoItemDto&gt; { }
...
}</code></pre>
</div>
</div>
<div class="sect3">
<h4 id="subscribers"><a class="anchor" href="#subscribers"></a>Subscribers</h4>
<div class="paragraph">
<p>Subscribers can be either coarse-grained (if they subscribe to the top-level event type):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
@Service
public class SomeSubscriber {
@EventListener(CssClassUiEvent.class)
public void on(CssClassUiEvent ev) {
if(ev.getSource() instanceof ToDoItemDto) {
...
}
}
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>or can be fine-grained (by subscribing to specific event subtypes):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
@Service
public class SomeSubscriber {
@EventListener(ToDoItemDto.CssClassUiEvent.class)
public void on(ToDoItemDto.CssClassUiEvent ev) {
...
}
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>The subscriber should then use the appropriate method&#8201;&#8212;&#8201; <code>CssClassUiEvent#setCssClass(&#8230;&#8203;)</code> &#8201;&#8212;&#8201;to actually specify the CSS class to be used.</p>
</div>
</div>
</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~2024 The Apache Software Foundation, licensed under the Apache License, v2.0.
<br/>
Apache, the Apache feather logo, Apache Causeway, and the Apache Causeway project logo are all trademarks of The Apache Software Foundation.
</p>
</div>
<div class="revision">
<p>Revision: build-website.20251118-0002</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="../../../../../_/js/vendor/docsearch.min.js"></script>
<script>
function focusSearchInput () { document.querySelector('#algolia-search-input').focus() }
var search = docsearch({
appId: '5ISP5TFAEN',
apiKey: '0fc51c28b4ad46e7318e96d4e97fab7c',
indexName: 'causeway-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>