You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by bu...@apache.org on 2013/05/23 11:36:22 UTC
svn commit: r862841 [3/24] - in /websites/staging/isis/trunk: cgi-bin/
content/ content/applib-guide/ content/applib-guide/domain-services/
content/applib-guide/how-tos/ content/applib-guide/images/
content/applib-guide/recognized-annotations/ content/...
Added: websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-020-How-to-have-a-domain-service-be-a-POJO.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-020-How-to-have-a-domain-service-be-a-POJO.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-020-How-to-have-a-domain-service-be-a-POJO.html Thu May 23 09:36:18 2013
@@ -0,0 +1,316 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../../bootstrap.css" rel="stylesheet">
+ <link href="./../../prettify.css" rel="stylesheet">
+ <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .edit-page {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/edit.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ .markdown-content {
+ min-height: 500px;
+ }
+ .book-image img {
+ border: 1px;
+ border-style: solid;
+ }
+ .release-matrix .heading {
+ background-color: #eeeeee;
+ }
+ .release-matrix .new {
+ color: #dd0000;
+ font-weight: bolder;
+ }
+ .stub,.note {
+ position: relative;
+ padding: 7px 15px;
+ margin-bottom: 18px;
+ color: #404040;
+ background-color: #eedc94;
+ background-repeat: repeat-x;
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+ background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+ background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+ background-image: linear-gradient(top, #fceec1, #eedc94);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ border-color: #eedc94 #eedc94 #e4c652;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+ border-width: 1px;
+ border-style: solid;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../../images/favicon.ico">
+ <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+ <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../../javascript/jquery-latest.js"></script>
+
+
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../../javascript/common.js"></script>
+ <script src="./../../javascript/prettyprint.js"></script>
+
+ <script src="./../../javascript/bootstrap-alert.js"></script>
+ <script src="./../../javascript/bootstrap-dropdown.js"></script>
+ <script src="./../../javascript/bootstrap-tooltip.js"></script>
+ <script src="./../../javascript/bootstrap-alerts.js"></script>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+ <script src="./../../javascript/bootstrap-transition.js"></script>
+ <script src="./../../javascript/bootstrap-button.js"></script>
+ <script src="./../../javascript/bootstrap-popover.js"></script>
+ <script src="./../../javascript/bootstrap-twipsy.js"></script>
+ <script src="./../../javascript/bootstrap-buttons.js"></script>
+ <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+ <script src="./../../javascript/bootstrap-typeahead.js"></script>
+ <script src="./../../javascript/bootstrap-carousel.js"></script>
+ <script src="./../../javascript/bootstrap-tab.js"></script>
+ <script src="./../../javascript/bootstrap-collapse.js"></script>
+ <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+
+
+
+
+ <script>
+ $(function () { prettyPrint() })
+ $().dropdown()
+ </script>
+
+ <!-- GAQ stuff removed here -->
+
+
+ </head>
+
+ <body>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../../index.html">Apache Isis™</a>
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li>
+ <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="./../../index.html">Home</a></li>
+ <li><a href="./../../download.html">Download</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+ <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+ <!--
+ <li><a href="#">Online Demo</a></li>
+ -->
+ </ul>
+ </li>
+ <li><a href="./../../documentation.html">Documentation</a></li>
+ <li><a href="./../../support.html">Support</a></li>
+
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <div style="float: right; position: relative; ">
+
+ <!--
+ <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+ <div>
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <input type="hidden" name="ie" value="UTF-8">
+ <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+ <input type="submit" name="sa" value="Search">
+ </div>
+ <input name="siteurl" type="hidden" value="isis.apache.org">
+ <input name="ref" type="hidden" value="">
+ <input name="ss" type="hidden" value="677j458329j2">
+ </form>
+ -->
+
+ <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+
+ </div>
+ <!-- Google CSE Search Box Ends -->
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div class="markdown-content">
+
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a> » <a href="./../../applib-guide/about.html">Applib Guide</a> » <a href="./../../applib-guide/how-tos/about.html">How Tos</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>How to have a domain service be a POJO (not inherit from framework superclasses)</h2>
+
+<p>Like entities, it isn't mandatory for domain services to inherit from
+any framework superclass; they can be plain-old pojos if required.
+However, again, like entities, they do at a minimum need to have a
+org.apache.isis.applib.DomainObjectContainer injected into them (an
+interface), from which other framework services can be accessed.</p>
+
+<p>If you don't have a requirement to inherit from any other superclass,
+then it usually makes sense to inherit from one of the abstract classes
+in the applib, either org.apache.isis.applib.AbstractService or
+org.apache.isis.applib.AbstractRepositoryAndFactory. These already
+supports the DomainObjectContainer and have a number of convenience
+helper methods.</p>
+
+<p>The UML class diagram below shows the relationship between these types
+and the DomainObjectContainer.</p>
+
+<p><img src="images/AbstractContainedObject-hierarchy.png" alt="" /></p>
+
+<p>What this means is that <em>Apache Isis</em> treats factories and repositories
+as just another type of domain service.</p>
+
+
+
+ </div>
+
+ <div id="edit" class="modal hide fade in" style="display: none; ">
+ <div class="modal-header">
+ <a class="close" data-dismiss="modal">x</a>
+
+ <h3>Thank you for contributing to the documention!</h3>
+ </div>
+ <div class="modal-body">
+ <h4>Any help with the documentation is greatly appreciated.</h4>
+ <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+ <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+ <!--[if gt IE 6]>
+ <h4>Internet Explorer Users</h4>
+ <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+ <![endif]-->
+
+ </div>
+ <div class="modal-footer">
+ Do you have an Apache ID?
+ <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+ <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+ </div>
+ </div>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+
+ <footer>
+ <p>
+ Copyright © 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ <br/>
+ Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
+ </body>
+</html>
Added: websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-030-How-to-add-a-property-to-a-domain-entity.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-030-How-to-add-a-property-to-a-domain-entity.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-030-How-to-add-a-property-to-a-domain-entity.html Thu May 23 09:36:18 2013
@@ -0,0 +1,344 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../../bootstrap.css" rel="stylesheet">
+ <link href="./../../prettify.css" rel="stylesheet">
+ <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .edit-page {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/edit.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ .markdown-content {
+ min-height: 500px;
+ }
+ .book-image img {
+ border: 1px;
+ border-style: solid;
+ }
+ .release-matrix .heading {
+ background-color: #eeeeee;
+ }
+ .release-matrix .new {
+ color: #dd0000;
+ font-weight: bolder;
+ }
+ .stub,.note {
+ position: relative;
+ padding: 7px 15px;
+ margin-bottom: 18px;
+ color: #404040;
+ background-color: #eedc94;
+ background-repeat: repeat-x;
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+ background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+ background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+ background-image: linear-gradient(top, #fceec1, #eedc94);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ border-color: #eedc94 #eedc94 #e4c652;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+ border-width: 1px;
+ border-style: solid;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../../images/favicon.ico">
+ <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+ <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../../javascript/jquery-latest.js"></script>
+
+
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../../javascript/common.js"></script>
+ <script src="./../../javascript/prettyprint.js"></script>
+
+ <script src="./../../javascript/bootstrap-alert.js"></script>
+ <script src="./../../javascript/bootstrap-dropdown.js"></script>
+ <script src="./../../javascript/bootstrap-tooltip.js"></script>
+ <script src="./../../javascript/bootstrap-alerts.js"></script>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+ <script src="./../../javascript/bootstrap-transition.js"></script>
+ <script src="./../../javascript/bootstrap-button.js"></script>
+ <script src="./../../javascript/bootstrap-popover.js"></script>
+ <script src="./../../javascript/bootstrap-twipsy.js"></script>
+ <script src="./../../javascript/bootstrap-buttons.js"></script>
+ <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+ <script src="./../../javascript/bootstrap-typeahead.js"></script>
+ <script src="./../../javascript/bootstrap-carousel.js"></script>
+ <script src="./../../javascript/bootstrap-tab.js"></script>
+ <script src="./../../javascript/bootstrap-collapse.js"></script>
+ <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+
+
+
+
+ <script>
+ $(function () { prettyPrint() })
+ $().dropdown()
+ </script>
+
+ <!-- GAQ stuff removed here -->
+
+
+ </head>
+
+ <body>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../../index.html">Apache Isis™</a>
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li>
+ <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="./../../index.html">Home</a></li>
+ <li><a href="./../../download.html">Download</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+ <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+ <!--
+ <li><a href="#">Online Demo</a></li>
+ -->
+ </ul>
+ </li>
+ <li><a href="./../../documentation.html">Documentation</a></li>
+ <li><a href="./../../support.html">Support</a></li>
+
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <div style="float: right; position: relative; ">
+
+ <!--
+ <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+ <div>
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <input type="hidden" name="ie" value="UTF-8">
+ <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+ <input type="submit" name="sa" value="Search">
+ </div>
+ <input name="siteurl" type="hidden" value="isis.apache.org">
+ <input name="ref" type="hidden" value="">
+ <input name="ss" type="hidden" value="677j458329j2">
+ </form>
+ -->
+
+ <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+
+ </div>
+ <!-- Google CSE Search Box Ends -->
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div class="markdown-content">
+
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a> » <a href="./../../applib-guide/about.html">Applib Guide</a> » <a href="./../../applib-guide/how-tos/about.html">How Tos</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>How to add a property to a domain entity</h2>
+
+<p>A property is a scalar attribute or field of a domain entity. Its type
+can be either a value type (such as an int, Date or String), or a
+reference to another entity.</p>
+
+<p>Properties are specified using the JavaBean conventions, recognizing a
+standard accessor/mutator pair (<code>get</code> and <code>set</code>).</p>
+
+<p>The syntax is:</p>
+
+<pre><code>public PropertyType getPropertyName()
+
+public void setPropertyName(PropertyType param)
+</code></pre>
+
+<p>where <code>PropertyType</code> is a primitive, a value object or an entity object.</p>
+
+<p>Properties may either be for a value type or may reference another
+entity. Values include Java primitives, and JDK classes with value
+semantics (eg <code>java.lang.Strings</code> and <code>java.util.Dates</code>; see ? for the
+full list). It is also possible to write your own value types (see ?). A
+property referencing another domain object is sometimes called an
+association.</p>
+
+<p>For example, the following example contains both a value (<code>String</code>)
+property and a reference (<code>Organisation</code>) property:</p>
+
+<pre><code>public class Customer {
+
+ private String firstName;
+ public String getFirstName() {
+ return firstName;
+ }
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+
+ private Organisation organisation;
+ public Organisation getOrganisation() {
+ return organisation;
+ }
+ public void setOrganisation(Organisation organisation) {
+ this.organisation = organisation;
+ }
+
+ ...
+}
+</code></pre>
+
+
+
+ </div>
+
+ <div id="edit" class="modal hide fade in" style="display: none; ">
+ <div class="modal-header">
+ <a class="close" data-dismiss="modal">x</a>
+
+ <h3>Thank you for contributing to the documention!</h3>
+ </div>
+ <div class="modal-body">
+ <h4>Any help with the documentation is greatly appreciated.</h4>
+ <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+ <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+ <!--[if gt IE 6]>
+ <h4>Internet Explorer Users</h4>
+ <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+ <![endif]-->
+
+ </div>
+ <div class="modal-footer">
+ Do you have an Apache ID?
+ <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+ <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+ </div>
+ </div>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+
+ <footer>
+ <p>
+ Copyright © 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ <br/>
+ Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
+ </body>
+</html>
Added: websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-040-How-to-specify-a-title-for-a-domain-entity.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-040-How-to-specify-a-title-for-a-domain-entity.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-040-How-to-specify-a-title-for-a-domain-entity.html Thu May 23 09:36:18 2013
@@ -0,0 +1,345 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../../bootstrap.css" rel="stylesheet">
+ <link href="./../../prettify.css" rel="stylesheet">
+ <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .edit-page {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/edit.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ .markdown-content {
+ min-height: 500px;
+ }
+ .book-image img {
+ border: 1px;
+ border-style: solid;
+ }
+ .release-matrix .heading {
+ background-color: #eeeeee;
+ }
+ .release-matrix .new {
+ color: #dd0000;
+ font-weight: bolder;
+ }
+ .stub,.note {
+ position: relative;
+ padding: 7px 15px;
+ margin-bottom: 18px;
+ color: #404040;
+ background-color: #eedc94;
+ background-repeat: repeat-x;
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+ background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+ background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+ background-image: linear-gradient(top, #fceec1, #eedc94);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ border-color: #eedc94 #eedc94 #e4c652;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+ border-width: 1px;
+ border-style: solid;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../../images/favicon.ico">
+ <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+ <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../../javascript/jquery-latest.js"></script>
+
+
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../../javascript/common.js"></script>
+ <script src="./../../javascript/prettyprint.js"></script>
+
+ <script src="./../../javascript/bootstrap-alert.js"></script>
+ <script src="./../../javascript/bootstrap-dropdown.js"></script>
+ <script src="./../../javascript/bootstrap-tooltip.js"></script>
+ <script src="./../../javascript/bootstrap-alerts.js"></script>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+ <script src="./../../javascript/bootstrap-transition.js"></script>
+ <script src="./../../javascript/bootstrap-button.js"></script>
+ <script src="./../../javascript/bootstrap-popover.js"></script>
+ <script src="./../../javascript/bootstrap-twipsy.js"></script>
+ <script src="./../../javascript/bootstrap-buttons.js"></script>
+ <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+ <script src="./../../javascript/bootstrap-typeahead.js"></script>
+ <script src="./../../javascript/bootstrap-carousel.js"></script>
+ <script src="./../../javascript/bootstrap-tab.js"></script>
+ <script src="./../../javascript/bootstrap-collapse.js"></script>
+ <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+
+
+
+
+ <script>
+ $(function () { prettyPrint() })
+ $().dropdown()
+ </script>
+
+ <!-- GAQ stuff removed here -->
+
+
+ </head>
+
+ <body>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../../index.html">Apache Isis™</a>
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li>
+ <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="./../../index.html">Home</a></li>
+ <li><a href="./../../download.html">Download</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+ <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+ <!--
+ <li><a href="#">Online Demo</a></li>
+ -->
+ </ul>
+ </li>
+ <li><a href="./../../documentation.html">Documentation</a></li>
+ <li><a href="./../../support.html">Support</a></li>
+
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <div style="float: right; position: relative; ">
+
+ <!--
+ <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+ <div>
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <input type="hidden" name="ie" value="UTF-8">
+ <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+ <input type="submit" name="sa" value="Search">
+ </div>
+ <input name="siteurl" type="hidden" value="isis.apache.org">
+ <input name="ref" type="hidden" value="">
+ <input name="ss" type="hidden" value="677j458329j2">
+ </form>
+ -->
+
+ <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+
+ </div>
+ <!-- Google CSE Search Box Ends -->
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div class="markdown-content">
+
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a> » <a href="./../../applib-guide/about.html">Applib Guide</a> » <a href="./../../applib-guide/how-tos/about.html">How Tos</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>How to specify a title for a domain entity</h2>
+
+<p>A title is used to identify an object to the user in the user interface.
+For example, a Customer's title might be the organization's customer
+reference, or perhaps (more informally) their first and last names.</p>
+
+<p>By default, the framework will use the object's <code>toString()</code> method as
+the title. Most titles tend to be made up of the same set of elements:
+for example a Customer's name might be the concatenation of their
+customer first name and their ;ast name. For these the @Title annotation
+can be used:</p>
+
+<pre><code>public class Customer {
+ @Title
+ public String getFirstName() { ... }
+ @Title
+ public String getLastName() { ... }
+ ...
+}
+</code></pre>
+
+<p>For more control, the order of the title components can be specified
+using a sequence number (specified in Dewey decimal format):</p>
+
+<pre><code>public class Customer {
+ @Title("1.0")
+ public String getFirstName() { ... }
+ @Title("1.1")
+ public String getLastName() { ... }
+ ...
+}
+</code></pre>
+
+<p>For more control the title can be declared imperately using the
+<code>title()</code> method (returning a <code>String</code>). This leaves the programmer
+needs to make use of the <code>toString()</code> method for other purposes, such as
+for debugging. For example, to return the title for a customer which is
+their last name and then first initial of their first name, we could
+use:</p>
+
+<pre><code>public class Customer {
+ public String title() {
+ return getLastName() + ", " + getFirstName().substring(0,1);
+ }
+ ...
+}
+</code></pre>
+
+<p>The applib contains a class, <code>org.apache.isis.applib.util.TitleBuffer</code>,
+which you can use to help create title strings if you so wish. <!-- See ? for
+more details.--></p>
+
+
+
+ </div>
+
+ <div id="edit" class="modal hide fade in" style="display: none; ">
+ <div class="modal-header">
+ <a class="close" data-dismiss="modal">x</a>
+
+ <h3>Thank you for contributing to the documention!</h3>
+ </div>
+ <div class="modal-body">
+ <h4>Any help with the documentation is greatly appreciated.</h4>
+ <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+ <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+ <!--[if gt IE 6]>
+ <h4>Internet Explorer Users</h4>
+ <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+ <![endif]-->
+
+ </div>
+ <div class="modal-footer">
+ Do you have an Apache ID?
+ <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+ <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+ </div>
+ </div>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+
+ <footer>
+ <p>
+ Copyright © 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ <br/>
+ Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
+ </body>
+</html>
Added: websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-050-How-to-add-a-collection-to-a-domain-entity.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-050-How-to-add-a-collection-to-a-domain-entity.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-050-How-to-add-a-collection-to-a-domain-entity.html Thu May 23 09:36:18 2013
@@ -0,0 +1,357 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../../bootstrap.css" rel="stylesheet">
+ <link href="./../../prettify.css" rel="stylesheet">
+ <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .edit-page {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/edit.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ .markdown-content {
+ min-height: 500px;
+ }
+ .book-image img {
+ border: 1px;
+ border-style: solid;
+ }
+ .release-matrix .heading {
+ background-color: #eeeeee;
+ }
+ .release-matrix .new {
+ color: #dd0000;
+ font-weight: bolder;
+ }
+ .stub,.note {
+ position: relative;
+ padding: 7px 15px;
+ margin-bottom: 18px;
+ color: #404040;
+ background-color: #eedc94;
+ background-repeat: repeat-x;
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+ background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+ background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+ background-image: linear-gradient(top, #fceec1, #eedc94);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ border-color: #eedc94 #eedc94 #e4c652;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+ border-width: 1px;
+ border-style: solid;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../../images/favicon.ico">
+ <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+ <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../../javascript/jquery-latest.js"></script>
+
+
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../../javascript/common.js"></script>
+ <script src="./../../javascript/prettyprint.js"></script>
+
+ <script src="./../../javascript/bootstrap-alert.js"></script>
+ <script src="./../../javascript/bootstrap-dropdown.js"></script>
+ <script src="./../../javascript/bootstrap-tooltip.js"></script>
+ <script src="./../../javascript/bootstrap-alerts.js"></script>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+ <script src="./../../javascript/bootstrap-transition.js"></script>
+ <script src="./../../javascript/bootstrap-button.js"></script>
+ <script src="./../../javascript/bootstrap-popover.js"></script>
+ <script src="./../../javascript/bootstrap-twipsy.js"></script>
+ <script src="./../../javascript/bootstrap-buttons.js"></script>
+ <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+ <script src="./../../javascript/bootstrap-typeahead.js"></script>
+ <script src="./../../javascript/bootstrap-carousel.js"></script>
+ <script src="./../../javascript/bootstrap-tab.js"></script>
+ <script src="./../../javascript/bootstrap-collapse.js"></script>
+ <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+
+
+
+
+ <script>
+ $(function () { prettyPrint() })
+ $().dropdown()
+ </script>
+
+ <!-- GAQ stuff removed here -->
+
+
+ </head>
+
+ <body>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../../index.html">Apache Isis™</a>
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li>
+ <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="./../../index.html">Home</a></li>
+ <li><a href="./../../download.html">Download</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+ <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+ <!--
+ <li><a href="#">Online Demo</a></li>
+ -->
+ </ul>
+ </li>
+ <li><a href="./../../documentation.html">Documentation</a></li>
+ <li><a href="./../../support.html">Support</a></li>
+
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <div style="float: right; position: relative; ">
+
+ <!--
+ <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+ <div>
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <input type="hidden" name="ie" value="UTF-8">
+ <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+ <input type="submit" name="sa" value="Search">
+ </div>
+ <input name="siteurl" type="hidden" value="isis.apache.org">
+ <input name="ref" type="hidden" value="">
+ <input name="ss" type="hidden" value="677j458329j2">
+ </form>
+ -->
+
+ <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+
+ </div>
+ <!-- Google CSE Search Box Ends -->
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div class="markdown-content">
+
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a> » <a href="./../../applib-guide/about.html">Applib Guide</a> » <a href="./../../applib-guide/how-tos/about.html">How Tos</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>How to add a collection to a domain entity</h2>
+
+<p>A collection is a multi-valued attribute/field of a entity, in other
+words a <code>List</code> or a <code>Set</code>, containing references to other domain
+entities. <code>Map</code>s are not supported. Collections of value types are not
+supported.</p>
+
+<p>A collection is recognized via an accessor/mutator method pair (<code>get</code>
+and set) for any type of collection provided by the programming
+language.</p>
+
+<p>The syntax is either:</p>
+
+<pre><code>public Collection<EntityType> getCollectionName()
+private void setCollectionName(Collection<EntityType> param)
+</code></pre>
+
+<p>or:</p>
+
+<pre><code>public List<EntityType> getCollectionName()
+private void setCollectionName(List<EntityType> param)
+</code></pre>
+
+<p>or:</p>
+
+<pre><code>public Set<EntityType> getCollectionName()
+private void setCollectionName(Set<EntityType> param)
+</code></pre>
+
+<p>A mutator is required, but it need only have <code>private</code> visibility.</p>
+
+<p>Note:</p>
+
+<blockquote>
+ <p><strong>Note</strong></p>
+
+ <p>Maps cannot be used for collections.</p>
+</blockquote>
+
+<p>It is recommended that the collections be specified using generics (for
+example: <code>List<Customer></code> ). That way the framework will be able to
+display the collection based on that type definition. If a raw type is
+used then the framework will attempt to infer the type from the
+addToXxx() / removeFromXxx() supporting methods, if specified <!--(see ?)-->.
+If the framework is unable to determine the type of the collection, it
+will mean that some viewers will represent the collection is a less
+sophisticated manner (eg a simple list of titles rather than a table).</p>
+
+<p>For example:</p>
+
+<pre><code>public class Employee { ... }
+
+public class Department {
+ private List<Employee> employees = new ArrayList<Employee>();
+ public List <Employee> getEmployees() {
+ return employees;
+ }
+ private void setEmployees(List<Employee> employees) {
+ this.employees = employees;
+ }
+ ...
+}
+</code></pre>
+
+
+
+ </div>
+
+ <div id="edit" class="modal hide fade in" style="display: none; ">
+ <div class="modal-header">
+ <a class="close" data-dismiss="modal">x</a>
+
+ <h3>Thank you for contributing to the documention!</h3>
+ </div>
+ <div class="modal-body">
+ <h4>Any help with the documentation is greatly appreciated.</h4>
+ <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+ <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+ <!--[if gt IE 6]>
+ <h4>Internet Explorer Users</h4>
+ <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+ <![endif]-->
+
+ </div>
+ <div class="modal-footer">
+ Do you have an Apache ID?
+ <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+ <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+ </div>
+ </div>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+
+ <footer>
+ <p>
+ Copyright © 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ <br/>
+ Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
+ </body>
+</html>
Added: websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-060-How-to-add-an-action-to-a-domain-entity-or-service.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-060-How-to-add-an-action-to-a-domain-entity-or-service.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-060-How-to-add-an-action-to-a-domain-entity-or-service.html Thu May 23 09:36:18 2013
@@ -0,0 +1,356 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../../bootstrap.css" rel="stylesheet">
+ <link href="./../../prettify.css" rel="stylesheet">
+ <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .edit-page {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/edit.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ .markdown-content {
+ min-height: 500px;
+ }
+ .book-image img {
+ border: 1px;
+ border-style: solid;
+ }
+ .release-matrix .heading {
+ background-color: #eeeeee;
+ }
+ .release-matrix .new {
+ color: #dd0000;
+ font-weight: bolder;
+ }
+ .stub,.note {
+ position: relative;
+ padding: 7px 15px;
+ margin-bottom: 18px;
+ color: #404040;
+ background-color: #eedc94;
+ background-repeat: repeat-x;
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+ background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+ background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+ background-image: linear-gradient(top, #fceec1, #eedc94);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ border-color: #eedc94 #eedc94 #e4c652;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+ border-width: 1px;
+ border-style: solid;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../../images/favicon.ico">
+ <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+ <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../../javascript/jquery-latest.js"></script>
+
+
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../../javascript/common.js"></script>
+ <script src="./../../javascript/prettyprint.js"></script>
+
+ <script src="./../../javascript/bootstrap-alert.js"></script>
+ <script src="./../../javascript/bootstrap-dropdown.js"></script>
+ <script src="./../../javascript/bootstrap-tooltip.js"></script>
+ <script src="./../../javascript/bootstrap-alerts.js"></script>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+ <script src="./../../javascript/bootstrap-transition.js"></script>
+ <script src="./../../javascript/bootstrap-button.js"></script>
+ <script src="./../../javascript/bootstrap-popover.js"></script>
+ <script src="./../../javascript/bootstrap-twipsy.js"></script>
+ <script src="./../../javascript/bootstrap-buttons.js"></script>
+ <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+ <script src="./../../javascript/bootstrap-typeahead.js"></script>
+ <script src="./../../javascript/bootstrap-carousel.js"></script>
+ <script src="./../../javascript/bootstrap-tab.js"></script>
+ <script src="./../../javascript/bootstrap-collapse.js"></script>
+ <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+
+
+
+
+ <script>
+ $(function () { prettyPrint() })
+ $().dropdown()
+ </script>
+
+ <!-- GAQ stuff removed here -->
+
+
+ </head>
+
+ <body>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../../index.html">Apache Isis™</a>
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li>
+ <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="./../../index.html">Home</a></li>
+ <li><a href="./../../download.html">Download</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+ <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+ <!--
+ <li><a href="#">Online Demo</a></li>
+ -->
+ </ul>
+ </li>
+ <li><a href="./../../documentation.html">Documentation</a></li>
+ <li><a href="./../../support.html">Support</a></li>
+
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <div style="float: right; position: relative; ">
+
+ <!--
+ <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+ <div>
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <input type="hidden" name="ie" value="UTF-8">
+ <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+ <input type="submit" name="sa" value="Search">
+ </div>
+ <input name="siteurl" type="hidden" value="isis.apache.org">
+ <input name="ref" type="hidden" value="">
+ <input name="ss" type="hidden" value="677j458329j2">
+ </form>
+ -->
+
+ <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+
+ </div>
+ <!-- Google CSE Search Box Ends -->
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div class="markdown-content">
+
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a> » <a href="./../../applib-guide/about.html">Applib Guide</a> » <a href="./../../applib-guide/how-tos/about.html">How Tos</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>How to add an action (or bulk action) to a domain entity or service</h2>
+
+<p>An 'action' is a method that we expect the user to be able to invoke on
+a domain entity via the user interface, though it may also be invoked
+programmatically within the object model. The following conventions are
+used to determine when and how methods are made available to the user as
+actions, and the means by which a user can interact with those actions</p>
+
+<p>By default, any <code>public</code> instance method that you add to a class will be
+treated as a user action, unless it represents a property, collection,
+or another reserved method defined in this guide.</p>
+
+<p>The syntax is:</p>
+
+<pre><code>public void actionName([ValueOrEntityType param] ...)
+</code></pre>
+
+<p>or</p>
+
+<pre><code>public ReturnType actionName([ValueOrEntityType param] ...)
+</code></pre>
+
+<p>When a method returns a reference the viewer will attempt to display
+that object. If the return value is <code>null</code> then nothing is displayed.</p>
+
+<p>We refer to all methods that are intended to be invoked by users as
+'action methods'.</p>
+
+<p>If you have a method that you don't want to be made available as a
+user-action you can either:</p>
+
+<ul>
+<li>make it non-<code>public</code> (eg <code>protected</code> or <code>private</code>)</li>
+<li>annotate it with @Ignore</li>
+<li>annotate it with @Hidden (discussed further in ?)</li>
+</ul>
+
+<p>Note also that <code>static</code> methods are ignored: such functionality should
+reside in a service, such as a repository or factory (see ?).</p>
+
+<p>If the action is a bulk action - meaning that it should only be applied
+to a collection of instances of the entity - then annotate using @Bulk:</p>
+
+<pre><code>@Bulk
+public void actionName() { ... }
+</code></pre>
+
+<p>Note that bulk actions have a couple of important restrictions.</p>
+
+<ul>
+<li>entity actions cannot take any arguments, while contributed actions
+can take only a single parameter (the contributee)</p>
+
+<p>This restriction might be lifted in the future;</li>
+<li>any business rules for hiding, disabling or validating the action
+are ignored.</li>
+</ul>
+
+<p>See ? for more details on writing business rules.</p>
+
+<p>At the time of writing, only the Wicket viewer recognizes bulk actions;
+other viewers treat the action as a regular action.</p>
+
+
+
+ </div>
+
+ <div id="edit" class="modal hide fade in" style="display: none; ">
+ <div class="modal-header">
+ <a class="close" data-dismiss="modal">x</a>
+
+ <h3>Thank you for contributing to the documention!</h3>
+ </div>
+ <div class="modal-body">
+ <h4>Any help with the documentation is greatly appreciated.</h4>
+ <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+ <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+ <!--[if gt IE 6]>
+ <h4>Internet Explorer Users</h4>
+ <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+ <![endif]-->
+
+ </div>
+ <div class="modal-footer">
+ Do you have an Apache ID?
+ <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+ <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+ </div>
+ </div>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+
+ <footer>
+ <p>
+ Copyright © 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ <br/>
+ Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
+ </body>
+</html>
Added: websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-070-How-to-specify-the-icon-for-a-domain-entity.html
==============================================================================
--- websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-070-How-to-specify-the-icon-for-a-domain-entity.html (added)
+++ websites/staging/isis/trunk/content/applib-guide/how-tos/how-to-01-070-How-to-specify-the-icon-for-a-domain-entity.html Thu May 23 09:36:18 2013
@@ -0,0 +1,327 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="description" content="">
+ <meta name="author" content="">
+
+ <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <!-- Le styles -->
+ <link href="./../../bootstrap.css" rel="stylesheet">
+ <link href="./../../prettify.css" rel="stylesheet">
+ <link href="./../../bootstrap-mods.css" rel="stylesheet">
+
+ <style type="text/css">
+ body {
+ padding-top: 60px;
+ }
+ .sprite {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/sprites.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .edit-page {
+ display: inline-block;
+ height: 20px;
+ margin: 0 auto 4px;
+ outline: medium none;
+ text-indent: -999em;
+ width: 24px;
+ background-image: url('./../../images/edit.png');
+ background-repeat: no-repeat;
+ overflow: hidden;
+ cursor: pointer;
+ }
+ .fb-share {
+ background-position: 0px -40px;
+ }
+ .gp-share {
+ background-position: 0px 0px;
+ }
+ .tw-share {
+ background-position: 0px -80px;
+ }
+ .markdown-content {
+ min-height: 500px;
+ }
+ .book-image img {
+ border: 1px;
+ border-style: solid;
+ }
+ .release-matrix .heading {
+ background-color: #eeeeee;
+ }
+ .release-matrix .new {
+ color: #dd0000;
+ font-weight: bolder;
+ }
+ .stub,.note {
+ position: relative;
+ padding: 7px 15px;
+ margin-bottom: 18px;
+ color: #404040;
+ background-color: #eedc94;
+ background-repeat: repeat-x;
+ background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+ background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+ background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+ background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+ background-image: linear-gradient(top, #fceec1, #eedc94);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ border-color: #eedc94 #eedc94 #e4c652;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+ border-width: 1px;
+ border-style: solid;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+ }
+ </style>
+ <script type="text/javascript">
+ function fbshare () {
+ window.open(
+ "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+ 'Share on Facebook',
+ 'width=640,height=426');
+ };
+ function gpshare () {
+ window.open(
+ "https://plus.google.com/share?url="+document.URL,
+ 'Share on Google+',
+ 'width=584,height=385');
+ };
+ function twshare () {
+ window.open(
+ "https://twitter.com/intent/tweet?url="+document.URL+"&text=",
+ 'Share on Twitter',
+ 'width=800,height=526');
+ };
+ </script>
+
+ <!-- Le fav and touch icons -->
+ <link rel="shortcut icon" href="./../../images/favicon.ico">
+ <link rel="apple-touch-icon" href="./../../images/apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="./../../images/apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="./../../images/apple-touch-icon-114x114.png">
+
+ <script src="./../../javascript/prettify.js" type="text/javascript"></script>
+ <script src="./../../javascript/jquery-latest.js"></script>
+
+
+ <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+ <script src="./../../javascript/common.js"></script>
+ <script src="./../../javascript/prettyprint.js"></script>
+
+ <script src="./../../javascript/bootstrap-alert.js"></script>
+ <script src="./../../javascript/bootstrap-dropdown.js"></script>
+ <script src="./../../javascript/bootstrap-tooltip.js"></script>
+ <script src="./../../javascript/bootstrap-alerts.js"></script>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+ <script src="./../../javascript/bootstrap-transition.js"></script>
+ <script src="./../../javascript/bootstrap-button.js"></script>
+ <script src="./../../javascript/bootstrap-popover.js"></script>
+ <script src="./../../javascript/bootstrap-twipsy.js"></script>
+ <script src="./../../javascript/bootstrap-buttons.js"></script>
+ <script src="./../../javascript/bootstrap-scrollspy.js"></script>
+ <script src="./../../javascript/bootstrap-typeahead.js"></script>
+ <script src="./../../javascript/bootstrap-carousel.js"></script>
+ <script src="./../../javascript/bootstrap-tab.js"></script>
+ <script src="./../../javascript/bootstrap-collapse.js"></script>
+ <script src="./../../javascript/bootstrap-tabs.js"></script>
+
+
+
+
+
+ <script>
+ $(function () { prettyPrint() })
+ $().dropdown()
+ </script>
+
+ <!-- GAQ stuff removed here -->
+
+
+ </head>
+
+ <body>
+
+ <div class="topbar">
+ <div class="fill">
+ <div class="container">
+ <a class="brand" href="./../../index.html">Apache Isis™</a>
+ <ul class="nav">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li>
+ <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+ </li>
+ <li>
+ <a href="./../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+ </li>
+ </ul>
+ </li>
+ <li><a href="./../../index.html">Home</a></li>
+ <li><a href="./../../download.html">Download</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="./../../getting-started/screenshots.html">Screenshots</a></li>
+ <li><a href="./../../getting-started/screencasts.html">Screencasts</a></li>
+ <!--
+ <li><a href="#">Online Demo</a></li>
+ -->
+ </ul>
+ </li>
+ <li><a href="./../../documentation.html">Documentation</a></li>
+ <li><a href="./../../support.html">Support</a></li>
+
+ </ul>
+
+ <!-- Google CSE Search Box Begins -->
+ <div style="float: right; position: relative; ">
+
+ <!--
+ <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+ <div>
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <input type="hidden" name="ie" value="UTF-8">
+ <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+ <input type="submit" name="sa" value="Search">
+ </div>
+ <input name="siteurl" type="hidden" value="isis.apache.org">
+ <input name="ref" type="hidden" value="">
+ <input name="ss" type="hidden" value="677j458329j2">
+ </form>
+ -->
+
+ <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+ <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+ <INPUT type="hidden" name="cof" value="FORID:0">
+ <INPUT name="q" type="text" placeholder="Search">
+ </FORM>
+
+ </div>
+ <!-- Google CSE Search Box Ends -->
+
+ </div>
+ </div>
+ </div>
+
+ <div class="container">
+ <div class="markdown-content">
+
+
+<div class="page-header">
+<p><a href="./../../documentation.html">Docs</a> » <a href="./../../applib-guide/about.html">Applib Guide</a> » <a href="./../../applib-guide/how-tos/about.html">How Tos</a></p>
+<h1>
+
+</h1>
+</div>
+
+<h2>How to specify the icon for a domain entity</h2>
+
+<p>By default, the framework will look for an image in the <code>images</code>
+directory (either from the classpath or from the filesystem) that has
+the same name as the object class. Multiple file extensions are searched
+for, including <code>.png</code>, <code>.gif</code> and <code>.jpg</code> (in order of preference). For
+example, fan object of type Customer it will look for <code>Customer.png</code>,
+<code>Customer.gif</code>, <code>Customer.jpg</code> etc.</p>
+
+<p>If the framework finds no such file, then it will work up the
+inheritance hierarchy to see if there is an icon matching the name of
+any of the super-classes, and use that instead. If no matching icon is
+found then the framework will look for an image called <code>default.png</code>,
+<code>default.gif</code> or <code>default.jpg</code> in the images directory, and if this has
+not been specified, then the framework will use its own default image
+for an icon.</p>
+
+<p>We strongly recommend that you adopt 'pascal case' as the convention for
+icon file names: if you have a class called OrderLine, then call the
+icon <code>OrderLine.png</code>. Actually, the framework will also recognise
+<code>orderline.png</code>, but some operating systems and deployment environments
+are case sensitive, so it is good practice to adopt an unambiguous
+convention.</p>
+
+<p>Alternatively, you can use the <code>iconName</code>() method instead:</p>
+
+<pre><code>public String iconName() {
+ return "Person";
+}
+</code></pre>
+
+<p>This makes it easy for more than one class to use the same icon, without
+having to duplicate the image file.</p>
+
+
+
+ </div>
+
+ <div id="edit" class="modal hide fade in" style="display: none; ">
+ <div class="modal-header">
+ <a class="close" data-dismiss="modal">x</a>
+
+ <h3>Thank you for contributing to the documention!</h3>
+ </div>
+ <div class="modal-body">
+ <h4>Any help with the documentation is greatly appreciated.</h4>
+ <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links. If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it. Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+ <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+ <!--[if gt IE 6]>
+ <h4>Internet Explorer Users</h4>
+ <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+ <![endif]-->
+
+ </div>
+ <div class="modal-footer">
+ Do you have an Apache ID?
+ <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+ <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+ </div>
+ </div>
+ <script src="./../../javascript/bootstrap-modal.js"></script>
+
+ <footer>
+ <p>
+ Copyright © 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+ <br/>
+ Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+ </p>
+ </footer>
+
+ </div> <!-- /container -->
+
+ </body>
+</html>