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