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 2017/06/01 10:14:12 UTC

[1/4] isis git commit: ISIS-1394: updates docs for optional fieldset

Repository: isis
Updated Branches:
  refs/heads/master 1faaa5120 -> 72bab9389


ISIS-1394: updates docs for optional fieldset


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ff816bbe
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ff816bbe
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ff816bbe

Branch: refs/heads/master
Commit: ff816bbea7e32dd12fdbcdcd817221a569756933
Parents: 1faaa51
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jun 1 10:14:48 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jun 1 10:14:48 2017 +0100

----------------------------------------------------------------------
 .../guides/ugvw/_ugvw_layout_file-based.adoc    | 26 ++++++++++++++++----
 1 file changed, 21 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/ff816bbe/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
index 90899b9..7cd762d 100644
--- a/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_layout_file-based.adoc
@@ -8,16 +8,23 @@
 
 Metadata providing UI hints can be specified either xref:../ugvw/ugvw.adoc#_ugvw_layout_annotation-based[using annotations], or using an `Xxx.layout.xml` file (where `Xxx` is the entity or view model object to be rendered).
 
-Using a file-based layout has the huge benefit that the layout can be updated without requiring a recompile of the code and redeploy of the app.
-Many developers also find it easier to rationalize about layout when all the hints are collated together in a single place (rather than scattered across the class members as annotations).
+File-based layouts offer a number of benefits:
 
-Another benefit of file-based layout is that UI hints can be provided for xref:../ugfun/ugfun.adoc#_ugfun_how-tos_contributed-members[contributed associations and actions] that are synthesised at runtime.
+* Probably most significantly, the layout can be updated without requiring a recompile of the code and redeploy of the app; fine-tuning the layout with your end users is easy to do
+
+* Many developers also find it easier to rationalize about layout when all the hints are collated together in a single place (rather than scattered across the class members as annotations).
+
+* UI hints can be provided for xref:../ugfun/ugfun.adoc#_ugfun_how-tos_contributed-members[contributed associations and actions] that are synthesised at runtime.
 
 It is also possible to download an initial `.layout.xml` - capturing any existing layout metadata - using the xref:../rgsvc/rgsvc.adoc#_rgsvc_metadata-api_LayoutService[`LayoutService`] (exposed on the prototyping menu) or using a xref:../rgcms/rgcms.adoc#_rgcms_classes_mixins_Object[mixin action] contributed to every domain object.
 
-The main downsides of using file-based layouts are a lack of typesafety (a typo will result in the metadata not being picked up for the element) and syntactic fragility (an invalid XML document will result in no metadata for the entire class).
+There are some downsides, though:
+
+* file-based layouts are not type: a typo will result in the metadata not being picked up for the element.
+They also suffer from syntactic fragility: an invalid XML document will result in no metadata for the entire class.
 
-Also, file-based layouts have no notion of inheritance, whereas the dewey-decimal format `@MemberOrder` annotation allows the metadata of the subclass its superclasses to fit together relatively seamlessly.
+* there is no notion of inheritance, so a `.layout.xml` is required for all concrete classes and also for any abstract classes (if used as a collection type)
+In contrast, the dewey-decimal format `@MemberOrder` annotation allows the metadata of the subclass its superclasses to fit together relatively seamlessly.
 
 The `Xxx.layout.xml` file is just the serialized form of a xref:../rgcms/rgcms.adoc#_rgcms_classes_layout[`Grid`] layout class defined within Apache Isis' applib.  These are JAXB-annotated classes with corresponding XSD schemas; the upshot of that
 is that IDEs such as IntelliJ and Eclipse can provide "intellisense", making iteasy to author such layout files.
@@ -162,6 +169,15 @@ Thereafter the fieldset lists the properties in order.  Actions can be associate
 
 Note also the `unreferencedProperties` attribute for the fieldset; this topic is discussed in more detail xref:../ugfun/ugfun.adoc#__ugvw_layout_file-based_unreferenced[below].
 
+[NOTE]
+====
+As of `1.15.0-SNAPSHOT`, the ``<fieldset>``'s "name" attribute is optional.
+If omitted, then the title panel is suppressed, freeing more real estate.
+
+Do be aware though that if there are any actions that have been placed on the fieldset's panel, then these _will *not* be displayed_.
+====
+
+
 
 === Collections
 


[4/4] isis git commit: ISIS-1613: uses small checkboxes for table view (large for regular form view)

Posted by da...@apache.org.
ISIS-1613: uses small checkboxes for table view (large for regular form view)


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/72bab938
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/72bab938
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/72bab938

Branch: refs/heads/master
Commit: 72bab93897364d54758211efa3ef819c9007c671
Parents: 6f39447
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jun 1 11:14:00 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jun 1 11:14:00 2017 +0100

----------------------------------------------------------------------
 .../ui/components/scalars/primitive/BooleanPanel.java   | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/72bab938/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
index d52abeb..d7eefd1 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
@@ -58,7 +58,7 @@ public class BooleanPanel extends ScalarPanelAbstract2 {
     protected MarkupContainer createComponentForRegular() {
         final String name = getModel().getName();
 
-        checkBox = createCheckBox(ID_SCALAR_VALUE);
+        checkBox = createCheckBox(ID_SCALAR_VALUE, CheckBoxXConfig.Sizes.lg);
 
         checkBox.setLabel(Model.of(name));
 
@@ -92,7 +92,7 @@ public class BooleanPanel extends ScalarPanelAbstract2 {
      */
     @Override
     protected Component createComponentForCompact() {
-        return createCheckBox(ID_SCALAR_IF_COMPACT);
+        return createCheckBox(ID_SCALAR_IF_COMPACT, CheckBoxXConfig.Sizes.sm);
     }
 
 
@@ -121,9 +121,9 @@ public class BooleanPanel extends ScalarPanelAbstract2 {
         };
     }
 
-    private CheckBoxX createCheckBox(final String id) {
+    private CheckBoxX createCheckBox(final String id, final CheckBoxXConfig.Sizes size) {
 
-        final CheckBoxXConfig config = configFor(getModel().isRequired());
+        final CheckBoxXConfig config = configFor(getModel().isRequired(), size);
 
         final CheckBoxX checkBox = new CheckBoxX(id, new Model<Boolean>() {
             private static final long serialVersionUID = 1L;
@@ -180,7 +180,7 @@ public class BooleanPanel extends ScalarPanelAbstract2 {
         return checkBox;
     }
 
-    private static CheckBoxXConfig configFor(final boolean required) {
+    private static CheckBoxXConfig configFor(final boolean required, final CheckBoxXConfig.Sizes size) {
         final CheckBoxXConfig config = new CheckBoxXConfig() {
             {
                 // so can tab to the checkbox
@@ -189,7 +189,7 @@ public class BooleanPanel extends ScalarPanelAbstract2 {
             }
         };
         return config
-                .withSize(CheckBoxXConfig.Sizes.lg)
+                .withSize(size)
                 .withEnclosedLabel(false)
                 .withIconChecked("<i class='fa fa-fw fa-check'></i>")
                 .withIconNull("<i class='fa fa-fw fa-square'></i>")


[3/4] isis git commit: ISIS-1613: standardizes the 'mandatory' CSS for fields by various types (move up to ScalarPanelAbstract2 superclass)

Posted by da...@apache.org.
ISIS-1613: standardizes the 'mandatory' CSS for fields by various types (move up to ScalarPanelAbstract2 superclass)


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/6f39447d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/6f39447d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/6f39447d

Branch: refs/heads/master
Commit: 6f39447d7e463b007cc42a5007c164dd074f3f43
Parents: b740aca
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jun 1 11:09:26 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jun 1 11:09:26 2017 +0100

----------------------------------------------------------------------
 .../scalars/ScalarPanelAbstract2.java           | 16 +++++++++++++++
 .../scalars/ScalarPanelSelect2Abstract.java     | 21 ++++----------------
 .../scalars/ScalarPanelTextFieldAbstract.java   | 18 ++---------------
 .../isisapplib/IsisBlobOrClobPanelAbstract.java |  1 -
 .../scalars/primitive/BooleanPanel.java         | 14 ++++++-------
 5 files changed, 28 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/6f39447d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index f1575ea..0d610c8 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 
 import java.util.List;
 
+import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
 
 import org.apache.wicket.Component;
@@ -44,6 +45,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
 import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -484,6 +486,20 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
      */
     protected abstract Component createComponentForCompact();
 
+    protected Label createScalarName(final String id, final String labelCaption) {
+        final Label scalarName = new Label(id, labelCaption);
+        if(getModel().isRequired()) {
+            final String label = scalarName.getDefaultModelObjectAsString();
+            if(!Strings.isNullOrEmpty(label)) {
+                scalarName.add(new CssClassAppender("mandatory"));
+            }
+        }
+        NamedFacet namedFacet = getModel().getFacet(NamedFacet.class);
+        if (namedFacet != null) {
+            scalarName.setEscapeModelStrings(namedFacet.escaped());
+        }
+        return scalarName;
+    }
 
     /**
      * Returns a container holding an empty form.  This can be switched out using {@link #switchFormForInlinePrompt(AjaxRequestTarget)}.

http://git-wip-us.apache.org/repos/asf/isis/blob/6f39447d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
index c4022a5..a7f4aa9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelSelect2Abstract.java
@@ -21,8 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 
 import java.util.List;
 
-import com.google.common.base.Strings;
-
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -32,13 +30,11 @@ import org.apache.wicket.model.Model;
 import org.wicketstuff.select2.ChoiceProvider;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.Select2;
 import org.apache.isis.viewer.wicket.ui.components.widgets.select2.providers.ObjectAdapterMementoProviderForChoices;
-import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 
 public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
 
@@ -59,18 +55,8 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
     }
 
     private Label createScalarName(final String id) {
-        final Label scalarName = new Label(id, getRendering().getLabelCaption(select2.component()));
-        if(getModel().isRequired()) {
-            final String label = scalarName.getDefaultModelObjectAsString();
-            if(!Strings.isNullOrEmpty(label)) {
-                scalarName.add(new CssClassAppender("mandatory"));
-            }
-        }
-        NamedFacet namedFacet = getModel().getFacet(NamedFacet.class);
-        if (namedFacet != null) {
-            scalarName.setEscapeModelStrings(namedFacet.escaped());
-        }
-        return scalarName;
+        final String labelCaption = getRendering().getLabelCaption(select2.component());
+        return createScalarName(id, labelCaption);
     }
 
     protected FormGroup createFormGroupAndName(
@@ -83,7 +69,8 @@ public abstract class ScalarPanelSelect2Abstract extends ScalarPanelAbstract2 {
         }
         formGroup.add(component);
 
-        final Label scalarName = createScalarName(nameId);
+        final String labelCaption = getRendering().getLabelCaption(select2.component());
+        final Label scalarName = createScalarName(nameId, labelCaption);
         formGroup.addOrReplace(scalarName);
         return formGroup;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f39447d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index c92a5e4..40cda67 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -21,8 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 
 import java.io.Serializable;
 
-import com.google.common.base.Strings;
-
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
@@ -41,14 +39,12 @@ import org.apache.wicket.validation.ValidationError;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.maxlen.MaxLengthFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
 import org.apache.isis.viewer.wicket.model.isis.WicketViewerSettings;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
 import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
 
 /**
  * Adapter for {@link PanelAbstract panel}s that use a {@link ScalarModel} as
@@ -167,18 +163,8 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         textFieldFragment.add(this.textField);
         formGroup.add(textFieldFragment);
 
-        final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(textField));
-        NamedFacet namedFacet = getModel().getFacet(NamedFacet.class);
-        if (namedFacet != null) {
-            scalarName.setEscapeModelStrings(namedFacet.escaped());
-        }
-
-        if(getModel().isRequired()) {
-            final String label = scalarName.getDefaultModelObjectAsString();
-            if(!Strings.isNullOrEmpty(label)) {
-                scalarName.add(new CssClassAppender("mandatory"));
-            }
-        }
+        final String labelCaption = getRendering().getLabelCaption(textField);
+        final Label scalarName = createScalarName(ID_SCALAR_NAME, labelCaption);
 
         formGroup.add(scalarName);
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6f39447d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
index e3d56a1..fc8d527 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/isisapplib/IsisBlobOrClobPanelAbstract.java
@@ -107,7 +107,6 @@ public abstract class IsisBlobOrClobPanelAbstract<T extends NamedWithMimeType> e
         updateFileNameLabel(ID_FILE_NAME, scalarIfRegularFormGroup);
         updateDownloadLink(ID_SCALAR_IF_REGULAR_DOWNLOAD, scalarIfRegularFormGroup);
 
-
         return scalarIfRegularFormGroup;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6f39447d/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
index af136f4..d52abeb 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/primitive/BooleanPanel.java
@@ -29,7 +29,6 @@ import org.apache.wicket.model.Model;
 
 import org.apache.isis.applib.annotation.LabelPosition;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.viewer.wicket.model.models.EntityModel;
@@ -69,17 +68,16 @@ public class BooleanPanel extends ScalarPanelAbstract2 {
             scalarIfRegularFormGroup.add(new CssClassAppender("mandatory"));
         }
 
+        final String labelCaption = getRendering().getLabelCaption(checkBox);
+        final Label scalarName = createScalarName(ID_SCALAR_NAME, labelCaption);
+
+        scalarIfRegularFormGroup.add(scalarName);
+
         final String describedAs = getModel().getDescribedAs();
         if(describedAs != null) {
             scalarIfRegularFormGroup.add(new AttributeModifier("title", Model.of(describedAs)));
         }
-        
-        final Label scalarName = new Label(ID_SCALAR_NAME, getRendering().getLabelCaption(checkBox));
-        scalarIfRegularFormGroup.add(scalarName);
-        NamedFacet namedFacet = getModel().getFacet(NamedFacet.class);
-        if (namedFacet != null) {
-            scalarName.setEscapeModelStrings(namedFacet.escaped());
-        }
+
 
         return scalarIfRegularFormGroup;
     }


[2/4] isis git commit: ISIS-1592: updates docs

Posted by da...@apache.org.
ISIS-1592: updates docs


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/b740aca6
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b740aca6
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b740aca6

Branch: refs/heads/master
Commit: b740aca68f98cc698bb9675be26f95751ebc92ba
Parents: ff816bb
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Jun 1 10:46:08 2017 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Jun 1 10:46:08 2017 +0100

----------------------------------------------------------------------
 .../guides/rgcms/_rgcms_schema-cmd.adoc         | 22 +++--
 .../guides/rgcms/_rgcms_schema-common.adoc      | 66 ++++++--------
 .../guides/rgcms/_rgcms_schema-ixn.adoc         | 94 ++++++++++----------
 .../src/main/asciidoc/guides/rgcms/rgcms.adoc   |  8 +-
 4 files changed, 90 insertions(+), 100 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/b740aca6/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-cmd.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-cmd.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-cmd.adoc
index 4af6e86..90a9a0f 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-cmd.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-cmd.adoc
@@ -79,13 +79,15 @@ property.  The `actionDto` and `propertyDto` are the concrete subtypes:
 <xs:schema targetNamespace="http://isis.apache.org/schema/cmd" ...>
     ...
     <xs:complexType name="memberDto" abstract="true">                       <!--1-->
+        </xs:element>
         <xs:sequence>
-            <xs:element name="memberIdentifier" type="xs:string"/>
+            <xs:element name="memberIdentifier" type="xs:string"/>          <!--2-->
+            <xs:element name="logicalMemberIdentifier" type="xs:string">    <!--3-->
         </xs:sequence>
-        <xs:attribute  name="interactionType" type="com:interactionType"/>  <!--2-->
+        <xs:attribute  name="interactionType" type="com:interactionType"/>  <!--4-->
     </xs:complexType>
 
-    <xs:complexType name="actionDto">                                       <!--3-->
+    <xs:complexType name="actionDto">                                       <!--5-->
         <xs:complexContent>
             <xs:extension base="memberDto">
                 <xs:sequence>
@@ -95,7 +97,7 @@ property.  The `actionDto` and `propertyDto` are the concrete subtypes:
         </xs:complexContent>
     </xs:complexType>
 
-    <xs:complexType name="propertyDto">                                     <!--4-->
+    <xs:complexType name="propertyDto">                                     <!--6-->
         <xs:complexContent>
             <xs:extension base="memberDto">
                 <xs:sequence>
@@ -108,15 +110,17 @@ property.  The `actionDto` and `propertyDto` are the concrete subtypes:
 ----
 <1> the `memberDto` is an abstract type.   Its primary responsibility is simply to identify the member (action or
 property).
-<2> the `interactionType` attribute indicates whether the member is an action or a property.
-<3> the `actionDto` complex type captures the set of parameters (also including the argument values) with which to
+<2> the formal identifier (fully qualified class name + member name) of the member being interacted with (action or property).
+<3> (`1.15.0-SNAPSHOT`) the "logical" formal identifier (object type, as per `@DomainObject(objectType=)`, + member name) of the member being interacted with (action or property).
+<4> the `interactionType` attribute indicates whether the member is an action or a property.
+<5> the `actionDto` complex type captures the set of parameters (also including the argument values) with which to
 invoke the action.  The `paramsDto` type is defined xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_ancillary[below].
-<4> the `propertyDto` complex type captures the new value (possibly `null`) to set the property to.
+<6> the `propertyDto` complex type captures the new value (possibly `null`) to set the property to.
 
+In general the `logicalMemberIdentifier` (`1.15.0-SNAPSHOT`) should be used in preference to the `memberIdentifier` because will not (necessarily) have to change if the class is moved during a refactoring.
 
 Note also that there is a corresponding xref:../rgcms/rgcms.adoc#__rgcms_schema-ixn_memberExecutionDto[`memberExecutionDto`]
-complex type in the "ixn" schema that is for the actual execution (capturing metrics about its execution and also the
-return value if an action invocation).
+complex type in the "ixn" schema that is for the actual execution (capturing metrics about its execution and also the return value if an action invocation).
 
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/b740aca6/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-common.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-common.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-common.adoc
index 9157558..9e2a9dc 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-common.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-common.adoc
@@ -11,12 +11,11 @@ The "common" schema defines a number of complex types that are used by other hig
 [[__rgcms_schema-common_oidDto]]
 == `oidDto`
 
-The `oidDto` complex type captures an object's type and its identifier.  This is basically a formal XML equivalent to
-the `Bookmark` object obtained from the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_BookmarkService[`BookmarkService`].
+The `oidDto` complex type captures an object's type and its identifier.
+This is basically a formal XML equivalent to the `Bookmark` object obtained from the xref:../rgsvc/rgsvc.adoc#_rgsvc_integration-api_BookmarkService[`BookmarkService`].
 
-Although simple, this is an enormously powerful concept, in that it represents a URI to any domain object managed by
-a given Apache Isis application.  With it, we have the ability to lookup any arbitrary object.  Further discussion and
-examples can be found xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_identifiers_oid[here].
+Although simple, this is an enormously powerful concept, in that it represents a URI to any domain object managed by a given Apache Isis application.
+With it, we have the ability to lookup any arbitrary object.  Further discussion and examples can be found xref:../ugfun/ugfun.adoc#_ugfun_building-blocks_identifiers_oid[here].
 
 The `oidDto` complex type is defined as:
 
@@ -50,24 +49,21 @@ The `oidDto` complex type is defined as:
     ...
 </xs:schema>
 ----
-<1> the common schema has a namespace URI of "http://isis.apache.org/schema/common".  Although URIs are not the same as
-URLs, you will find that the schemas are also downloadable from this location.
-<2> the `oidDto` complex type defines the unique identifier for any domain object: its type, and an identifier.  The
-`objectState` attribute can usually be omitted (indicating a persistent object)
-<3> the object type, corresponding to either the
-xref:../rgant/rgant.adoc#_rgant-DomainObject_objectType[`@DomainObject#objectType()`] attribute, or to the (JDO)
-xref:../rgant/rgant.adoc#_rgant-PersistenceCapable[`@PersistenceCapable`] annotation (`schema` and/or `table`
-attributes), or to the (JDO) xref:../rgant/rgant.adoc#_rgant-Discriminator[`@Discriminator`] annotation.  If none
-is specified, then the fully qualified class name will be used.
+<1> the common schema has a namespace URI of "http://isis.apache.org/schema/common".
+Although URIs are not the same as URLs, you will find that the schemas are also downloadable from this location.
+<2> the `oidDto` complex type defines the unique identifier for any domain object: its type, and an identifier.
+The `objectState` attribute can usually be omitted (indicating a persistent object)
+<3> the object type, corresponding to either the xref:../rgant/rgant.adoc#_rgant-DomainObject_objectType[`@DomainObject#objectType()`] attribute, or to the (JDO)
+xref:../rgant/rgant.adoc#_rgant-PersistenceCapable[`@PersistenceCapable`] annotation (`schema` and/or `table` attributes), or to the (JDO) xref:../rgant/rgant.adoc#_rgant-Discriminator[`@Discriminator`] annotation.
+If none is specified, then the fully qualified class name will be used.
 <4> the object identifier (aka primary key), converted to string form.
-<5> the `bookmarkObjectState` enumerates the possible persistence states of the referenced object.  In previous versions
-of the schema the attribute was defaulted to "persistent"; the "persistent" state is assumed
-if the attribute is omitted.
-<6> Models a list of OIDs.  This is used by the xref:../rgcms/rgcms.adoc#_rgcms_schema_cmd["cmd" schema] to represent the
+<5> the `bookmarkObjectState` enumerates the possible persistence states of the referenced object.  In previous versions of the schema the attribute was defaulted to "persistent"; the "persistent" state is assumed if the attribute is omitted.
+<6> Models a list of OIDs.
+This is used by the xref:../rgcms/rgcms.adoc#_rgcms_schema_cmd["cmd" schema] to represent the
 intention to perform a bulk actions (against a number of selected objects).
 
-In previous versions of the schema the object type and object identifers of `oidDto` were
-modelled as an element rather than an attribute.  The element form can still be used, but is deprecated.
+In previous versions of the schema the object type and object identifers of `oidDto` were modelled as an element rather than an attribute.
+The element form can still be used, but is deprecated.
 
 The `oidDto` complex type is used in a number of places by the framework:
 
@@ -76,20 +72,17 @@ xref:../rgant/rgant.adoc#_rgant-XmlRootElement[`@XmlRootElement`]), that referen
 +
 These references are serialized instead into OIDs
 
-* second, as references to the target of a command representing the _intention_ to invoke an action or edit a property,
-as described by the xref:../rgcms/rgcms.adoc#_rgcms_schema-cmd["cmd" (command)] schema. +
+* second, as references to the target of a command representing the _intention_ to invoke an action or edit a property, as described by the xref:../rgcms/rgcms.adoc#_rgcms_schema-cmd["cmd" (command)] schema. +
 +
 They are also used to represent references to any action arguments/properties that take domain object entities/view models.
 
-* third, as references to the target of an interaction capturing the actual execution of an action invocation or
-property edit, as described by the xref:../rgcms/rgcms.adoc#_rgcms_schema-ixn["ixn" (interaction)] schema.
+* third, as references to the target of an interaction capturing the actual execution of an action invocation or property edit, as described by the xref:../rgcms/rgcms.adoc#_rgcms_schema-ixn["ixn" (interaction)] schema.
 
 
 [[__rgcms_schema-common_valueDto]]
 == `valueDto` etc
 
-The common schema also defines two types representing values: the `valueDto` complex type, the `valueType` simple type
-and the `valueWithTypeDto` complex type:
+The common schema also defines two types representing values: the `valueDto` complex type, the `valueType` simple type and the `valueWithTypeDto` complex type:
 
 [source,xml]
 ----
@@ -131,15 +124,14 @@ and the `valueWithTypeDto` complex type:
 </xs:schema>
 ----
 <1> Intended to hold any valid value, eg of an argument to an action or a new value of a property.
-<2> Enumerates the full set of types understood by the framework; note that these also include references to entities
-or view models, and to enums.
+<2> Enumerates the full set of types understood by the framework; note that these also include references to entities or view models, and to enums.
 <3> Not valid to be used as the parameter type of an action; can be used as its return type.
-<4> Inherits from `valueDto`, capturing both a value and its corresponding type.  Used for the return value of action
-invocations, and for the new value in property edits.
+<4> Inherits from `valueDto`, capturing both a value and its corresponding type.
+Used for the return value of action invocations, and for the new value in property edits.
 
 
-These type definitions are just building blocks, also used within the
-xref:../rgcms/rgcms.adoc#_rgcms_schema-aim[action iInvocation memento] schema.  The first, `valueDto` is The second, `valueType`, enumerates the different types of vales, eg of a
+These type definitions are just building blocks, also used within the xref:../rgcms/rgcms.adoc#_rgcms_schema-aim[action iInvocation memento] schema.
+The first, `valueDto` is The second, `valueType`, enumerates the different types of vales, eg of a
 formal parameter to an action.
 
 
@@ -147,8 +139,7 @@ formal parameter to an action.
 [[__rgcms_schema-common_ancillary]]
 == Ancillary types
 
-The common schema also defines a number of ancillary types, used either by the common schema itself (see above) or by
-the xref:../rgcms/rgcms.adoc#_rgcms_schema_cmd["cmd"] and xref:../rgcms/rgcms.adoc#_rgcms_schema_ixn["ixn"] schemas.
+The common schema also defines a number of ancillary types, used either by the common schema itself (see above) or by the xref:../rgcms/rgcms.adoc#_rgcms_schema_cmd["cmd"] and xref:../rgcms/rgcms.adoc#_rgcms_schema_ixn["ixn"] schemas.
 
 [source,xml]
 ----
@@ -185,7 +176,8 @@ the xref:../rgcms/rgcms.adoc#_rgcms_schema_cmd["cmd"] and xref:../rgcms/rgcms.ad
 ----
 <1> Models an instance member of an enum (eg `Color.RED`).
 <2> Captures a period of time, eg for capturing metrics/timings.
-<3> Captures a pair of numbers representing a difference.  Used for example to capture metrics (number objects modified before and after).
-<4> Whether this command/interaction with a member is invoking an action, or editing a property.  Used by both the
-xref:../rgcms/rgcms.adoc#_rgcms_schema_cmd["cmd"] and xref:../rgcms/rgcms.adoc#_rgcms_schema_ixn["ixn"] schemas.
+<3> Captures a pair of numbers representing a difference.
+Used for example to capture metrics (number objects modified before and after).
+<4> Whether this command/interaction with a member is invoking an action, or editing a property.
+Used by both the xref:../rgcms/rgcms.adoc#_rgcms_schema_cmd["cmd"] and xref:../rgcms/rgcms.adoc#_rgcms_schema_ixn["ixn"] schemas.
 

http://git-wip-us.apache.org/repos/asf/isis/blob/b740aca6/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-ixn.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-ixn.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-ixn.adoc
index a77b037..2b8a404 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-ixn.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/_rgcms_schema-ixn.adoc
@@ -7,16 +7,17 @@
 
 
 The interaction ("ixn") schema defines the serialized form of an action invocation or a property
-edit.  In fact, it actually defines a call-graph of such executions for those cases where the
+edit.
+In fact, it actually defines a call-graph of such executions for those cases where the
 xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`] is used to execute sub-actions/property edits.
 
-Each execution identifies the target object, the member to invoke, and the arguments.  It also captures metrics about
-the execution, and the result of the execution (eg return value of an action invocation).
+Each execution identifies the target object, the member to invoke, and the arguments.
+It also captures metrics about the execution, and the result of the execution (eg return value of an action invocation).
 
 [NOTE]
 ====
-Mixin actions are represented as regular actions on the mixed-in object.  In other words, the fact that the actual
-implementation of the action is defined by a mixin is an implementation detail only.
+Mixin actions are represented as regular actions on the mixed-in object.
+In other words, the fact that the actual implementation of the action is defined by a mixin is an implementation detail only.
 ====
 
 
@@ -55,29 +56,25 @@ The `interactionDto` root element is defined as:
 
 </xs:schema>
 ----
-<1> the interaction schema has a namespace URI of "http://isis.apache.org/schema/ixn".  Although URIs are not the same as
-URLs, you will find that the schemas are also downloadable from this location.
-<2> uses complex types defined in the xref:../rgcms/rgcms.adoc#_rgcms_schema_common["common" schema] and also the
-xref:../rgcms/rgcms.adoc#_rgcms_schema_cmd["cmd" schema]
-<3> definition of the `interactionDto` root element.  The corresponding XML will use this as its top-level element.
+<1> the interaction schema has a namespace URI of "http://isis.apache.org/schema/ixn".
+Although URIs are not the same as URLs, you will find that the schemas are also downloadable from this location.
+<2> uses complex types defined in the xref:../rgcms/rgcms.adoc#_rgcms_schema_common["common" schema] and also the xref:../rgcms/rgcms.adoc#_rgcms_schema_cmd["cmd" schema]
+<3> definition of the `interactionDto` root element.
+The corresponding XML will use this as its top-level element.
 <4> each instance of this schema indicates the version of the schema it is compatible with (following semantic versioning)
-<5> unique identifier for the transaction in which this interaction is being executed.  The transaction Id is used to
-correlate back to the xref:../rgcms/rgcms.adoc#_rgcms_schema_command[command] that represented the intention to perform this
-execution, as well as to any xref:../rgcms/rgcms.adoc#_rgcms_schema_changes[changes] to domain objects that occur as a side-effect
-of the interaction.
+<5> unique identifier for the transaction in which this interaction is being executed.
+The transaction Id is used to correlate back to the xref:../rgcms/rgcms.adoc#_rgcms_schema_command[command] that represented the intention to perform this execution, as well as to any xref:../rgcms/rgcms.adoc#_rgcms_schema_changes[changes] to domain objects that occur as a side-effect of the interaction.
 <6> the top-level `memberExecutionDto`, defined below, either an action invocation or edit of a property.
 
-The `InteractionDto` DTO corresponding to the `interactionDto` root element can be marshalled to/from XML using the
-`InteractionDtoUtils` class.
+The `InteractionDto` DTO corresponding to the `interactionDto` root element can be marshalled to/from XML using the `InteractionDtoUtils` class.
 
 
 
 [[__rgcms_schema-ixn_memberExecutionDto]]
 == `memberExecutionDto`
 
-The `memberExecutionDto` complex type is an abstract type representing either the invocation an action or the editing
-of a property.  It corresponds to the xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`memberDto`] of the "cmd" schema;
-some elements are copied directly:
+The `memberExecutionDto` complex type is an abstract type representing either the invocation an action or the editing of a property.
+It corresponds to the xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`memberDto`] of the "cmd" schema; some elements are copied directly:
 
 [source,xml]
 ----
@@ -88,12 +85,13 @@ some elements are copied directly:
             <xs:element name="sequence" type="xs:int"/>                     <!--2-->
             <xs:element name="target" type="com:oidDto"/>                   <!--3-->
             <xs:element name="memberIdentifier" type="xs:string"/>          <!--4-->
-            <xs:element name="user" type="xs:string"/>                      <!--5-->
-            <xs:element name="title" type="xs:string"/>                     <!--6-->
-            <xs:element name="metrics" type="metricsDto"/>                  <!--7-->
-            <xs:element name="threw" type="exceptionDto"                    <!--8-->
+            <xs:element name="logicalMemberIdentifier" type="xs:string"/>   <!--5-->
+            <xs:element name="user" type="xs:string"/>                      <!--6-->
+            <xs:element name="title" type="xs:string"/>                     <!--7-->
+            <xs:element name="metrics" type="metricsDto"/>                  <!--8-->
+            <xs:element name="threw" type="exceptionDto"                    <!--9-->
                         minOccurs="0" maxOccurs="1"/>
-            <xs:element name="childExecutions" minOccurs="0" maxOccurs="1"> <!--9-->
+            <xs:element name="childExecutions" minOccurs="0" maxOccurs="1"> <!--10-->
                 <xs:complexType>
                     <xs:sequence>
                         <xs:element name="execution" type="memberExecutionDto"
@@ -102,24 +100,25 @@ some elements are copied directly:
                 </xs:complexType>
             </xs:element>
         </xs:sequence>
-        <xs:attribute  name="interactionType" type="com:interactionType"/>  <!--10-->
+        <xs:attribute  name="interactionType" type="com:interactionType"/>  <!--11-->
     </xs:complexType>
     ...
 </xs:schema>
 ----
 <1> the `memberExecutionDto` is an abstract type
-<2> uniquely identifies this execution within the transaction.  Can be combined with `transactionId` to create a unique
-identifier (across all other interaction executions and also changed objects events) of this particular interaction
-execution.
+<2> uniquely identifies this execution within the transaction.
+Can be combined with `transactionId` to create a unique identifier (across all other interaction executions and also changed objects events) of this particular interaction execution.
 <3> the target object, corresponding to one of the elements of the `targets` element of the xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`memberDto`]
 <4> the member identifier; corresponds to `memberIdentifier` of the `member` element of the xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`memberDto`]
-<5> the user executing the action invocation/property edit; corresponds to the `user` element of the xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`memberDto`]
-<6> the current "human-friendly" title of the target object
-<7> the set of metrics captured for this execution, of type `metricsDto` defined xref:../rgcms/rgcms.adoc#__rgcms_schema-ixn_ancillary[below].
-<8> if the action invocation/property edit threw an exception, then this is captured here.
-<9> if any sub-actions or sub-edits were performed via the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`], then these are captured in the `childExecutions` element.
-<10> the `interactionType` attribute indicates whether the member is an action or a property (similar attribute exists for the "cmd" schema).
+<5> (`1.15.0-SNAPSHOT`) the _logical_ member identifier; corresponds to `logicalMemberIdentifier` of the `member` element of the xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`memberDto`]
+<6> the user executing the action invocation/property edit; corresponds to the `user` element of the xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`memberDto`]
+<7> the current "human-friendly" title of the target object
+<8> the set of metrics captured for this execution, of type `metricsDto` defined xref:../rgcms/rgcms.adoc#__rgcms_schema-ixn_ancillary[below].
+<9> if the action invocation/property edit threw an exception, then this is captured here.
+<10> if any sub-actions or sub-edits were performed via the xref:../rgsvc/rgsvc.adoc#_rgsvc_application-layer-api_WrapperFactory[`WrapperFactory`], then these are captured in the `childExecutions` element.
+<11> the `interactionType` attribute indicates whether the member is an action or a property (similar attribute exists for the "cmd" schema).
 
+In general the `logicalMemberIdentifier` (`1.15.0-SNAPSHOT`) should be used in preference to the `memberIdentifier` because will not (necessarily) have to change if the class is moved during a refactoring.
 
 The `actionInvocationDto` and `propertyEditDto` are the concrete subtypes:
 
@@ -153,14 +152,14 @@ The `actionInvocationDto` and `propertyEditDto` are the concrete subtypes:
     ...
 </xs:schema>
 ----
-<1> the `actionInvocationDto` inherits from `memberExecutionDto`.  It corresponds to the similar
+<1> the `actionInvocationDto` inherits from `memberExecutionDto`.
+It corresponds to the similar
 xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`actionDto`] complex type of the "cmd" schema
-<2> the `parameters` element captures the parameter and argument values; for the top-level execution it is a direct
-copy of the corresponding `parameters` element of the `actionDto` complex type of the "cmd" schema.
-<3> the `returned` element captures the returned value (if not void).  It is not valid for both this element and the
-inherited `threw` element to both be populated.
-<4> the `propertyEditDto` inherits from `memberExecutionDto`.  It corresponds to the similar
-xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`propertyDto`] complex type of the "cmd" schema
+<2> the `parameters` element captures the parameter and argument values; for the top-level execution it is a direct copy of the corresponding `parameters` element of the `actionDto` complex type of the "cmd" schema.
+<3> the `returned` element captures the returned value (if not void).
+It is not valid for both this element and the inherited `threw` element to both be populated.
+<4> the `propertyEditDto` inherits from `memberExecutionDto`.
+It corresponds to the similar xref:../rgcms/rgcms.adoc#__rgcms_schema-cmd_memberDto[`propertyDto`] complex type of the "cmd" schema
 <5> the `newValue` element captures the new value; for the top-level execution it is a direct
 copy of the corresponding `newValue` element of the `propertyDto` complex type of the "cmd" schema.
 
@@ -198,11 +197,8 @@ The schema also defines a small number of supporting types:
 </xs:schema>
 ----
 <1> the `metricsDto` captures the time to perform an execution, and also the differences in various object counts.
-<2> the `objectCountsDto` complex type is the set of before/after differences, one for each execution; the framework
-tracks number of objects loaded (read from) the database and the number of objects dirtied (will need to be saved back
-to the database).  Together these metrics give an idea of the "size" of this  particular execution.
-<3> the `exceptionDto` complex type defines a structure for capturing the stack trace of any exception that might occur
-in the course of invoking an action or editing a property.
-
-The xref:../rgcms/rgcms.adoc#_rgcms_schema_changes[changes] schema also provides metrics on the number of objects loaded/changed,
-but relates to the entire interaction rather than just one (sub)execution of an interaction.
\ No newline at end of file
+<2> the `objectCountsDto` complex type is the set of before/after differences, one for each execution; the framework tracks number of objects loaded (read from) the database and the number of objects dirtied (will need to be saved back to the database).
+Together these metrics give an idea of the "size" of this  particular execution.
+<3> the `exceptionDto` complex type defines a structure for capturing the stack trace of any exception that might occur in the course of invoking an action or editing a property.
+
+The xref:../rgcms/rgcms.adoc#_rgcms_schema_changes[changes] schema also provides metrics on the number of objects loaded/changed, but relates to the entire interaction rather than just one (sub)execution of an interaction.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/b740aca6/adocs/documentation/src/main/asciidoc/guides/rgcms/rgcms.adoc
----------------------------------------------------------------------
diff --git a/adocs/documentation/src/main/asciidoc/guides/rgcms/rgcms.adoc b/adocs/documentation/src/main/asciidoc/guides/rgcms/rgcms.adoc
index c093ab5..ebc4322 100644
--- a/adocs/documentation/src/main/asciidoc/guides/rgcms/rgcms.adoc
+++ b/adocs/documentation/src/main/asciidoc/guides/rgcms/rgcms.adoc
@@ -10,12 +10,10 @@
 [[_rgcms]]
 == Classes, Methods and Schema
 
-This reference guide lists and describes various elements of the the Apache Isis Programming Model, specifically
-reserved and prefix xref:../rgcms/rgcms.adoc#_rgcms_methods[methods] (such as `title()` and `validate...()`) and various utility and
-supporting xref:../rgcms/rgcms.adoc#_rgcms_classes[classes].
+This reference guide lists and describes various elements of the the Apache Isis Programming Model, specifically reserved and prefix xref:../rgcms/rgcms.adoc#_rgcms_methods[methods] (such as `title()` and `validate...()`) and various utility and supporting xref:../rgcms/rgcms.adoc#_rgcms_classes[classes].
 
-It also describes the xref:../rgcms/rgcms.adoc#_rgcms_schema[XSD schema] defined by Apache Isis.  One use case is for the
-JAXB serialization of view models.
+It also describes the xref:../rgcms/rgcms.adoc#_rgcms_schema[XSD schema] defined by Apache Isis.
+One use case is for the JAXB serialization of view models.
 
 === Other Guides