You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/11/19 00:06:54 UTC
svn commit: r1640452 - /isis/site/trunk/content/tutorials/apacheconeu-2014.md
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