blob: 7959962d10d31b3dd37768ee27f3343e777fd52e [file]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>UI Hint Methods :: causeway</title>
<link rel="canonical" href="https://causeway.apache.org/refguide/latest/applib-methods/ui-hints.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="2.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="../applib/index/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="../applib/index/value/Blob.html">Blob</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/value/Clob.html">Clob</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/value/Markup.html">Markup</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/value/LocalResourcePath.html">LocalResourcePath</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/value/Password.html">Password</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../applib-classes/utility.html">Utility Classes</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/Enums.html">Enums</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/ObjectContracts.html">ObjectContracts</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/Reasons.html">Reasons</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/ReasonBuffer.html">ReasonBuffer</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/ReasonBuffer2.html">ReasonBuffer2</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../applib/index/util/TitleBuffer.html">TitleBuffer</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../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="../applib/index/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="../applib/index/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="../applib/index/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">2.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">
<a href="../../3.0.0/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 is-current">
<a href="../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="ui-hints.html">UI Hint Methods</a></li>
</ul>
</nav>
<div class="page-versions">
<button class="version-menu-toggle" title="Show other versions of page">2.0.0</button>
<div class="version-menu">
<a class="version" href="../../latest/applib-methods/ui-hints.html">4.0.0-M1</a>
<a class="version" href="../../3.5.0/applib-methods/ui-hints.html">3.5.0</a>
<a class="version" href="../../3.4.0/applib-methods/ui-hints.html">3.4.0</a>
<a class="version" href="../../3.3.0/applib-methods/ui-hints.html">3.3.0</a>
<a class="version" href="../../3.2.0/applib-methods/ui-hints.html">3.2.0</a>
<a class="version" href="../../3.1.0/applib-methods/ui-hints.html">3.1.0</a>
<a class="version" href="../../3.0.0/applib-methods/ui-hints.html">3.0.0</a>
<a class="version" href="../../2.1.0/applib-methods/ui-hints.html">2.1.0</a>
<a class="version is-current" href="ui-hints.html">2.0.0</a>
</div>
</div>
<div class="edit-this-page"><a href="https://github.com/apache/causeway/edit/2.0.0/antora/components/refguide/modules/applib-methods/pages/ui-hints.adoc">Edit</a></div>
</div>
<article class="doc">
<a name="section-top"></a>
<h1 class="page">UI Hint Methods</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>The table below lists the UI hint methods that are recognized as part of default programming model.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<caption class="title">Table 1. UI Hint Methods</caption>
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Method</th>
<th class="tableblock halign-left valign-top">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../../latest/applib-methods/ui-hints.html#cssClass" class="xref page">cssClass()</a></code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Provides a CSS class for this object instance.
In conjunction with <code>static/css/application-css</code>, can therefore provide custom styling of an object instance wherever it is rendered.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../../latest/applib-methods/ui-hints.html#iconName" class="xref page">iconName()</a></code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Provides the name of the image to render, usually alongside the title, to represent the object.
If not provided, then the class name is used to locate an image.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../../latest/applib-methods/ui-hints.html#layout" class="xref page">layout()</a></code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Provides an alternative layout to use, if available.
If null or no such layout, then uses to the default layout.</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code><a href="../../latest/applib-methods/ui-hints.html#title" class="xref page">title()</a></code></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>Provides a title for the object.<br></p>
</div></div></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="sect1">
<h2 id="cssClass"><a class="anchor" href="#cssClass"></a><code>cssClass()</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p>The <code>cssClass()</code> returns a CSS class for a particular object instance.</p>
</div>
<div class="paragraph">
<p>The <a href="../../../vw/latest/about.html" class="xref page">Web UI (Wicket viewer)</a> wraps the object&#8217;s representation in a containing <code>&lt;div&gt;</code> with the class added.
This is done both for rendering the object either in a table or when rendering the object on its own page.</p>
</div>
<div class="paragraph">
<p>In conjunction with <a href="../../latest/config/application-specific/application-css.html" class="xref page">custom CSS</a> (usually CSS in the <code>static/css/application.css</code>), we can therefore provide custom styling of an object instance wherever it is rendered.</p>
</div>
<div class="paragraph">
<p>For example, in a todo app we can use this technique to add a strikethrough for completed todo items.
This is shown on the home page:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="_images/reference-methods/reserved/cssClass/strikethrough.png" alt="strikethrough" width="800px">
</div>
</div>
<div class="paragraph">
<p>The code to accomplish this is straightforward:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class ToDoItem ... {
public String cssClass() {
return !isComplete() ? "todo" : "done";
}
...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>In the <a href="../../latest/config/application-specific/application-css.html" class="xref page">application.css</a>, the following styles were then added:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-css hljs" data-lang="css">tr.todo {
}
tr.done {
text-decoration: line-through;
color: #d3d3d3;
}</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="iconName"><a class="anchor" href="#iconName"></a><code>iconName()</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Every object is represented by an icon; this is based on the domain object&#8217;s simple name.
The <a href="../../../vw/latest/about.html" class="xref page">Web UI (Wicket viewer)</a> searches for the image in the same package as the <code>.class</code> file for the domain object or in the <code>images</code> package.
It will find any matching name and one of the following suffixes <code>.png</code>, <code>.gif</code>, <code>.jpeg</code>, <code>.jpg</code> or <code>.svg</code>.
If none is found, then <code>Default.png</code> will be used as fallback.</p>
</div>
<div class="paragraph">
<p>The <code>iconName()</code> allows the icon that to be used to change for individual object instances.
These are usually quite subtle, for example to reflect the particular status of an object.
The value returned by the <code>iconName()</code> method is added as a suffix to the base icon name.</p>
</div>
<div class="paragraph">
<p>For example, in a todo app we can use this technique to add an overlay for todo items that have been completed:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="_images/reference-methods/reserved/iconName/differing.png" alt="differing" width="200px">
</div>
</div>
<div class="paragraph">
<p>The screenshot below shows the location of these <code>.png</code> icon files:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="_images/reference-methods/reserved/iconName/png-files.png" alt="png files" width="200px">
</div>
</div>
<div class="paragraph">
<p>The code to accomplish this is straightforward:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public class ToDoItem ... {
public String iconName() {
return !isComplete() ? "todo" : "done";
}
...
}</code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="layout"><a class="anchor" href="#layout"></a><code>layout()</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Every object has a <a href="../../../userguide/latest/ui-layout-and-hints.html#object-layout" class="xref page">layout</a> .
This may be specified using annotations such as
<a href="../../latest/applib/index/annotation/ActionLayout.html" class="xref page">ActionLayout</a>,
<a href="../../latest/applib/index/annotation/PropertyLayout.html" class="xref page">PropertyLayout</a>,
<a href="../../latest/applib/index/annotation/CollectionLayout.html" class="xref page">CollectionLayout</a>,
<a href="../../latest/applib/index/annotation/DomainObjectLayout.html" class="xref page">@DomainObjectLayout</a> and the like, but it much more commonly specified using an <a href="../../../userguide/latest/ui-layout-and-hints.html#object-layout" class="xref page">XML layout file</a>.</p>
</div>
<div class="paragraph">
<p>The <code>layout</code> method allows the domain object to specify an alternate layout to its usual layout.</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">public class Customer {
@Getter @Setter
@PropertyLayout(hidden=ALWAYS)
private String layout;
public String layout() { <i class="conum" data-value="1"></i><b>(1)</b>
return layout;
}
@ActionLayout(
redirect=EVEN_IF_SAME <i class="conum" data-value="2"></i><b>(2)</b>
)
public Customer switchToEditMode() {
setLayout("edit");
return this;
}
}</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>specifies the alternate layout to use, eg <code>Customer-edit.layout.xml</code>.</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>even though this action returns the same target object, still re-render the page.</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>If <code>switchToEditMode()</code> action is invoked, then the UI will attempt to render the customer using a <code>Customer.layout.edit.xml</code> layout file (instead of the default <code>Customer.layout.xml</code>).</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="title"><a class="anchor" href="#title"></a><code>title()</code></h2>
<div class="sectionbody">
<div class="paragraph">
<p>Every object is represented by a title.
This appears both as a main header for the object when viewed as well as being used as a hyperlink within properties and collections.
It therefore must contain enough information for the end-user to distinguish the object from any others.</p>
</div>
<div class="paragraph">
<p>This is most commonly done by including some unique key within the title, for example a customer&#8217;s SSN, or an order number, and so forth.
However note that Apache Causeway itself does <em>not</em> require the title to be unique; it is merely recommended in most cases.</p>
</div>
<div class="paragraph">
<p>An object&#8217;s title can be constructed in various ways, but the most flexible is to use the <code>title()</code> method.
The signature of this method is usually:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public String title() {
// ...
}</code></pre>
</div>
</div>
<div class="paragraph">
<p>Note that Apache Causeway' <a href="../../../userguide/latest/btb/i18n.html" class="xref page">i18n support</a> extends this so that titles can also be internationalized.</p>
</div>
<div class="paragraph">
<p>For example, in a todoapp we can use this technique to change the title of items that have been completed:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">public String title() {
if (isComplete()) { <i class="conum" data-value="1"></i><b>(1)</b>
return getDescription() + "- Completed!");
} else {
final LocalDate dueBy = getDueBy();
if (dueBy != null) { <i class="conum" data-value="2"></i><b>(2)</b>
return getDescription() + " due by " + dueBy);
} else {
return getDescription();
}
}
}</code></pre>
</div>
</div>
<div class="colist arabic">
<table>
<tr>
<td><i class="conum" data-value="1"></i><b>1</b></td>
<td>imperative conditional logic</td>
</tr>
<tr>
<td><i class="conum" data-value="2"></i><b>2</b></td>
<td>imperative conditional logic</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>As the example above shows, the implementation can be as complex as you like.</p>
</div>
<div class="paragraph">
<p>In many cases, though, you may be able to use the <a href="../../latest/applib/index/annotation/Title.html" class="xref page">@Title</a> annotation.</p>
</div>
</div>
</div>
</article>
<aside class="article-aside toc hide-for-print" role="navigation">
<p class="toc-title">On this page</p>
<div id="article-toc"></div>
</aside>
</main>
</div>
<footer class="footer">
<div class="content">
<div class="copyright">
<p>
Copyright © 2010~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>