blob: 908c2ad2369c0d42238cc8efb33e21b9668a1ad9 [file]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>@ParameterLayout :: causeway</title>
<link rel="canonical" href="https://causeway.apache.org/refguide/latest/applib/index/annotation/ParameterLayout.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.3.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.3.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 is-current">
<a href="../../../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">
<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="ParameterLayout.html">@ParameterLayout</a></li>
</ul>
</nav>
<div class="page-versions">
<button class="version-menu-toggle" title="Show other versions of page">3.3.0</button>
<div class="version-menu">
<a class="version" href="../../../../latest/applib/index/annotation/ParameterLayout.html">4.0.0-M1</a>
<a class="version" href="../../../../3.5.0/applib/index/annotation/ParameterLayout.html">3.5.0</a>
<a class="version" href="../../../../3.4.0/applib/index/annotation/ParameterLayout.html">3.4.0</a>
<a class="version is-current" href="ParameterLayout.html">3.3.0</a>
<a class="version" href="../../../../3.2.0/applib/index/annotation/ParameterLayout.html">3.2.0</a>
<a class="version" href="../../../../3.1.0/applib/index/annotation/ParameterLayout.html">3.1.0</a>
<a class="version" href="../../../../3.0.0/applib/index/annotation/ParameterLayout.html">3.0.0</a>
<a class="version" href="../../../../2.1.0/applib/index/annotation/ParameterLayout.html">2.1.0</a>
<a class="version" href="../../../../2.0.0/applib/index/annotation/ParameterLayout.html">2.0.0</a>
</div>
</div>
<div class="edit-this-page"><a href="https://github.com/apache/causeway/edit/3.3.0/antora/components/refguide-index/modules/applib/pages/index/annotation/ParameterLayout.adoc">Edit</a></div>
</div>
<article class="doc">
<a name="section-top"></a>
<h1 class="page">@ParameterLayout</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Collects together all layout hints for action parameters in a single annotation.</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">ParameterLayout.java</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-java hljs" data-lang="java">@interface ParameterLayout {
String cssClass() default ""; <i class="conum" data-value="1"></i><b>(1)</b>
String describedAs() default ""; <i class="conum" data-value="2"></i><b>(2)</b>
LabelPosition labelPosition() default LabelPosition.NOT_SPECIFIED; <i class="conum" data-value="3"></i><b>(3)</b>
String named() default ""; <i class="conum" data-value="4"></i><b>(4)</b>
int multiLine() default -1; <i class="conum" data-value="5"></i><b>(5)</b>
int typicalLength() default -1; <i class="conum" data-value="6"></i><b>(6)</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="#cssClass">cssClass</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Indicates the css class that a parameter 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="2"></i><b>2</b></td>
<td><a href="#describedAs">describedAs</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Description of this property, eg to be rendered in a tooltip.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="3"></i><b>3</b></td>
<td><a href="#labelPosition">labelPosition</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>In forms, positioning of the label (left, top or none) relative to the parameter value.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="4"></i><b>4</b></td>
<td><a href="#named">named</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>Name of this action parameter.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="5"></i><b>5</b></td>
<td><a href="#multiLine">multiLine</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>For string parameters (and properties), whether to render as a text area over multiple lines.</p>
</div>
</div>
</div></td>
</tr>
<tr>
<td><i class="conum" data-value="6"></i><b>6</b></td>
<td><a href="#typicalLength">typicalLength</a>
<div class="openblock">
<div class="content">
<div class="paragraph">
<p>The typical entry length of a field, use to determine the optimum width for display</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="cssClass"><a class="anchor" href="#cssClass"></a>cssClass</h3>
<div class="paragraph">
<p>Indicates the css class that a parameter should have, to allow more targeted styling in <code>application.css</code> .</p>
</div>
</div>
<div class="sect2">
<h3 id="describedAs"><a class="anchor" href="#describedAs"></a>describedAs</h3>
<div class="paragraph">
<p>Description of this property, eg to be rendered in a tooltip.</p>
</div>
</div>
<div class="sect2">
<h3 id="labelPosition"><a class="anchor" href="#labelPosition"></a>labelPosition</h3>
<div class="paragraph">
<p>In forms, positioning of the label (left, top or none) relative to the parameter value.</p>
</div>
<div class="paragraph">
<p>If not specified, the default depends upon the parameter value&#8217;s datatype (including whether the field is <em>#multiLine()</em> .</p>
</div>
</div>
<div class="sect2">
<h3 id="named"><a class="anchor" href="#named"></a>named</h3>
<div class="paragraph">
<p>Name of this action parameter.</p>
</div>
<div class="paragraph">
<p>The name of an action parameters is available to the framework provided that the code is compiled using <code>-parameters</code> (for <code>javac</code> .</p>
</div>
<div class="paragraph">
<p>The only reason then to name the parameter 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="multiLine"><a class="anchor" href="#multiLine"></a>multiLine</h3>
<div class="paragraph">
<p>For string parameters (and properties), whether to render as a text area over multiple lines.</p>
</div>
<div class="paragraph">
<p>If set to &gt; 1, then <em>#labelPosition()</em> defaults to <em>LabelPosition#TOP top</em> .</p>
</div>
</div>
<div class="sect2">
<h3 id="typicalLength"><a class="anchor" href="#typicalLength"></a>typicalLength</h3>
<div class="paragraph">
<p>The typical entry length of a field, use to determine the optimum width for display</p>
</div>
<div class="paragraph">
<p>Note: the Wicket viewer does not use this information.</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">public class ToDoItem {
public ToDoItem updateDescription(
@ParameterLayout(
cssClass="x-key",
describedAs="What needs to be done",
labelPosition=LabelPosition.LEFT,
named="Description of this &lt;i&gt;item&lt;/i&gt;",
namedEscaped=false,
typicalLength=80)
final String description) {
setDescription(description);
return this;
}
...
}</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 services 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="label-positioning"><a class="anchor" href="#label-positioning"></a>Label Positioning</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/ParameterLayout.html#labelPosition" class="xref page">labelPosition()</a> element determines the positioning of labels for parameters.</p>
</div>
<div class="paragraph">
<p>The positioning of labels is typically <code>LEFT</code>, but can be positioned to the <code>TOP</code>.
The one exception is <a href="../../../../latest/applib/index/annotation/ParameterLayout.html#multiLine" class="xref page">multiLine()</a> string parameters, where the label defaults to <code>TOP</code> automatically (to provide as much real-estate for the multiline text field as possible).</p>
</div>
<div class="paragraph">
<p>For boolean parameters a positioning of <code>RIGHT</code> is also allowed; this is ignored for all other types.</p>
</div>
<div class="paragraph">
<p>It is also possible to suppress the label altogether, using <code>NONE</code>.</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 Order {
public Order changeStatus(
OrderStatus newStatus,
@Nullable
@ParameterLayout(
labelPosition=LabelPosition.TOP
)
String reason) {
// ...
}
// ...
}</code></pre>
</div>
</div>
<div class="sect3">
<h4 id="default-settings"><a class="anchor" href="#default-settings"></a>Default settings</h4>
<div class="paragraph">
<p>If you want a consistent look-n-feel throughout the app, eg all parameter labels to the top, then it&#8217;d be rather frustrating to have to annotate every parameter.</p>
</div>
<div class="paragraph">
<p>Instead, a default can be specified using the <a href="../../../../latest/config/sections/causeway.applib.html#causeway.applib.annotation.parameter-layout.label-position" class="xref page">causeway.applib.annotation.parameter-layout.label-position</a> configuration property:</p>
</div>
<div class="listingblock">
<div class="title">application.properties</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-ini hljs" data-lang="ini">causeway.applib.annotation.parameter-layout.label-position=TOP</code></pre>
</div>
</div>
<div class="paragraph">
<p>or</p>
</div>
<div class="listingblock">
<div class="title">application.properties</div>
<div class="content">
<pre class="highlightjs highlight"><code class="language-ini hljs" data-lang="ini">causeway.applib.annotation.parameter-layout.label-position=LEFT</code></pre>
</div>
</div>
<div class="paragraph">
<p>If these are not present then the framework will render according to internal defaults.
At the time of writing, this means labels are to the left for all datatypes except multiline strings.</p>
</div>
</div>
</div>
<div class="sect2">
<h3 id="text-boxes"><a class="anchor" href="#text-boxes"></a>Text boxes</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/ParameterLayout.html#multiLine" class="xref page">multiLine()</a> element specifies that the text field for a string parameter should span multiple lines.
It is ignored for other parameter types.</p>
</div>
<div class="paragraph">
<p>If set &gt; 1 (as would normally be the case), then the default <a href="../../../../latest/applib/index/annotation/ParameterLayout.html#labelPosition" class="xref page">labelPosition</a> defaults to <code>TOP</code> (rather than <code>LEFT</code>, as would normally be the case).</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 BugReport {
public BugReport updateStepsToReproduce(
@ParameterLayout(
numberOfLines=10
)
final String steps) {
// ...
}
// ...
}</code></pre>
</div>
</div>
</div>
<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/ParameterLayout.html#describedAs" class="xref page">describedAs()</a> element is used to provide a short description of the action parameter to the user.</p>
</div>
<div class="paragraph">
<p>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">public class Customer {
public Order placeOrder(
Product product,
@ParameterLayout(
describedAs = "The quantity of the product being ordered"
)
int quantity) {
// ...
}
// ...
}</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/ParameterLayout.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 action parameter.
<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">public class ToDoItem {
public ToDoItem postpone(
@ParameterLayout(
cssClass="x-key"
)
LocalDate until ) {
// ...
}
// ...
}</code></pre>
</div>
</div>
</div>
<div class="sect2">
<h3 id="date-intervals"><a class="anchor" href="#date-intervals"></a>Date intervals</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/ParameterLayout.html#renderDay" class="xref page">renderDay()</a> element applies only to date parameters whereby the date will be rendered as the day before the value actually held in the domain object.
It is ignored for parameters of other types.</p>
</div>
<div class="paragraph">
<p>This behaviour might at first glance appear odd, but the rationale is to support the use case of a sequence of instances that represent adjacent intervals of time.
In such cases there would typically be <code>startDate</code> and <code>endDate</code> properties, eg for all of Q2. Storing this as a half-closed interval&#8201;&#8212;&#8201;eg <code>[1-Apr-2015, 1-July-2015)</code>&#8201;&#8212;&#8201;can substantially simplify internal algorithms; the <code>endDate</code> of one interval will correspond to the <code>startDate</code> of the next.</p>
</div>
<div class="paragraph">
<p>However, from an end-user perspective the requirement may be to render the interval as a fully closed interval; eg the end date should be shown as <code>30-Jun-2015</code>.</p>
</div>
<div class="paragraph">
<p>This attribute therefore bridges the gap; it presents the information in a way that makes sense to an end-user, but also stores the domain object in a way that is easy work with internally.</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 Tenancy {
public void changeDates(
LocalDate startDate,
@ParameterLayout(
renderDay = RenderDay.AS_DAY_BEFORE
)
LocalDate endDate) {
// ...
}
// ...
}</code></pre>
</div>
</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/ParameterLayout.html#named" class="xref page">named()</a> element explicitly specifies the action parameter&#8217;s name.</p>
</div>
<div class="paragraph">
<p>Normally this is not necessary; so long the program must be compiled using <code>javac</code>'s <code>-parameters</code> flag, the framework can use the parameter name in the compiled class file.</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>The name is HTML escaped.</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 {
public Order placeOrder(
final Product product,
@ParameterLayout(named="Package ?")
final boolean packageUp) {
Order order = Order.forCustomer(this)
.ofProduct(product)
.withPackage(packageUp);
return repository.persistAndFlush(order);
}
...
}</code></pre>
</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="typical-string-length"><a class="anchor" href="#typical-string-length"></a>Typical (string) length</h3>
<div class="paragraph">
<p>The <a href="../../../../latest/applib/index/annotation/ParameterLayout.html#typicalLength" class="xref page">typicalLength()</a> element indicates the typical length of a string parameter.
It is ignored for parameters of other types.</p>
</div>
<div class="paragraph">
<p>The information is intended as a hint to the UI to determine the space that should be given to render a particular string parameter.</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 {
public Customer updateName(
@Parameter(maxLength=30)
@ParameterLayout(
typicalLength=20
)
final String firstName,
@Parameter(maxLength=30)
@ParameterLayout(
typicalLength=20
)
final String lastName) {
// ...
}
// ...
}</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">
All that said, the <a href="../../../../../vw/latest/about.html" class="xref page">Web UI (Wicket viewer)</a> uses the maximum space available for all fields, so in effect ignores this element.
</td>
</tr>
</table>
</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>