Author: danhaywood
Date: Tue Nov 18 23:06:53 2014
New Revision: 1640452
URL: http://svn.apache.org/r1640452
Log:
tutorial
Modified:
isis/site/trunk/content/tutorials/apacheconeu-2014.md
Modified: isis/site/trunk/content/tutorials/apacheconeu-2014.md
URL:
http://svn.apache.org/viewvc/isis/site/trunk/content/tutorials/apacheconeu-2014.md?rev=1640452&r1=1640451&r2=1640452&view=diff
==============================================================================
--- isis/site/trunk/content/tutorials/apacheconeu-2014.md (original)
+++ isis/site/trunk/content/tutorials/apacheconeu-2014.md Tue Nov 18 23:06:53
2014
@@ -165,7 +165,7 @@ Fixture scripts are used to setup the ap
## Actions
-Most business functionality is implemented using actions... basically a
`public` method accepting domain classes and primitives as its parameter types.
+Most business functionality is implemented using actions... basically a
`public` method accepting domain classes and primitives as its parameter types.
The action can return a domain entity, or a collection of entities, or a
primitive/String/value, or void. If a domain entity is returned then that
object is rendered immediately; if a collection is returned then the Wicket
viewer renders a table. Such collections are sometimes called "standalone"
collections.
* write an action to update the domain property (originally called
`SimpleObject#name`, though renamed by now)
* use the
[@Named](http://isis.apache.org/reference/recognized-annotations/Named.html)
annotation to specify the name of action parameters
@@ -200,6 +200,8 @@ The semantics of an action (whether it i
## Value properties
+Domain entities have state: either values (primitives, strings) or references
to other entities. In this section we explore adding some value properties
+
* add some [value
properties](http://isis.apache.org/how-tos/how-to-01-030-How-to-add-a-property-to-a-domain-entity.html);
also:
- for string properties
- use the
[@Multiline](http://isis.apache.org/reference/recognized-annotations/MultiLine.html)
annotation to render a text area instead of a text box
@@ -208,7 +210,7 @@ The semantics of an action (whether it i
- use
[bigdecimals](http://isis.apache.org/components/objectstores/jdo/mapping-bigdecimals.html)
properties
- use
[blob/clobs](http://isis.apache.org/components/objectstores/jdo/mapping-blobs.html)
properties
- specify whether [optional or
mandatory](http://isis.apache.org/components/objectstores/jdo/mapping-mandatory-and-optional-properties.html)
-* TODO: enums
+ - enums (eg as used in the example Todo app, see
[here](https://github.com/apache/isis/blob/b3e936c9aae28754fb46c2df52b1cb9b023f9ab8/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java#L207)
and
[here](https://github.com/apache/isis/blob/b3e936c9aae28754fb46c2df52b1cb9b023f9ab8/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.java#L266)
* update the corresponding domain service for creating new instances
- for all non-optional properties will either need to prompt for a value, or
calculate some suitable default
* change the implementation of title, if need be
@@ -219,6 +221,8 @@ The semantics of an action (whether it i
## Reference properties
+Domain entities can also reference other domain entities. These references
may be either scalar (single-valued) or vector (multi-valued). In this section
we focus on scalar reference properties.
+
* add some [reference
properties](http://isis.apache.org/how-tos/how-to-01-030-How-to-add-a-property-to-a-domain-entity.html)
* update the corresponding domain service
* use different techniques to obtain references (shown in drop-down list box)
@@ -230,11 +234,15 @@ The semantics of an action (whether it i
## Usability: Defaults
+Quick detour: often we want to set up defaults to go with choices. A sensible
default can really improve the usability of the app.
+
* Add
[defaults](http://isis.apache.org/how-tos/how-to-03-050-How-to-specify-default-values-for-an-action-parameter.html)
for action parameters
## Collections
+Returning back to references, Isis also supports vector (multi-valued)
references to another object instances... in other words collections. We
sometimes called these "parented" collections (to distinguish from a
"standalone" collection as returned from an action)
+
* Ensure that all domain classes implement `java.lang.Comparable`
* use the [ObjectContracts](http://isis.apache.org/reference/Utility.html)
utility class to help implement `Comparable` (also `equals()`, `hashCode()`,
`toString()`)
* Add a
[one-to-many-collection](http://isis.apache.org/components/objectstores/jdo/managed-1-to-m-relationships.html)
to one of the entities