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/01/09 13:18:35 UTC

git commit: ISIS-618: bookmarked actions were broken...

Updated Branches:
  refs/heads/master 716ea4a00 -> 97478ce9f


ISIS-618: bookmarked actions were broken...

post previous refactoring, the PageParameters held in the BookmarkTreeNode
were incomplete for action prompts (issue ultimately primarily to do with
using mounted pages for action prompt)

In addition:
- update to todo app, new 'categorized' action.


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

Branch: refs/heads/master
Commit: 97478ce9f175727b4e474b1c162cbc19c0606dab
Parents: 716ea4a
Author: Dan Haywood <da...@apache.org>
Authored: Thu Jan 9 12:17:48 2014 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Jan 9 12:17:48 2014 +0000

----------------------------------------------------------------------
 KEYS                                            | 329 ------------------
 .../wicket/viewer/IsisWicketApplication.java    |   9 +-
 .../viewer/wicket/model/models/ActionModel.java |  46 ++-
 .../wicket/model/models/BookmarkTreeNode.java   | 333 +++++++++++--------
 .../wicket/model/models/BookmarkableModel.java  |   7 -
 .../model/models/BookmarkedPagesModel.java      |   2 +-
 .../viewer/wicket/model/models/EntityModel.java |   8 +-
 .../actions/ActionParametersFormPanel.java      |  19 +-
 .../bookmarkedpages/BookmarkedPagesPanel.java   |  35 +-
 .../widgets/breadcrumbs/BreadcrumbPanel.java    |   3 +-
 .../viewer/wicket/ui/pages/PageAbstract.css     |   4 +-
 .../viewer/wicket/ui/pages/PageAbstract.html    |   6 +-
 .../wicket/ui/pages/entity/EntityPage.java      |  46 +--
 .../dom/src/main/java/dom/todo/ToDoItem.java    |  15 +-
 .../dom/src/main/java/dom/todo/ToDoItems.java   |  91 +++--
 .../src/main/java/webapp/ToDoApplication.java   |   1 -
 .../webapp/src/main/webapp/about/index.html     |  14 +-
 17 files changed, 359 insertions(+), 609 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/KEYS
----------------------------------------------------------------------
diff --git a/KEYS b/KEYS
deleted file mode 100644
index 43b522d..0000000
--- a/KEYS
+++ /dev/null
@@ -1,329 +0,0 @@
-This file contains the PGP keys of various developers.
-
-Users: pgp < KEYS
-       gpg --import KEYS
-Developers: 
-        pgp -kxa <key id> and append it to this file.
-        (pgpk -ll <key id> && pgpk -xa <key id>) >> this file.
-        (gpg --list-sigs <key id>
-             && gpg --armor --export <key id>) >> this file.
-
-
-----------------------------
-pub   4096R/2FDB81B1 2010-02-01
-uid                  Mark Struberg (Apache) <st...@apache.org>
-sub   4096R/F24C5214 2010-02-01
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.9 (GNU/Linux)
-
-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
-zxrmkygs1IMB6Q==
-=8P8F
------END PGP PUBLIC KEY BLOCK-----
-
-
-pub   4096R/77AD2E23 2011-02-01
-uid                  Dan Haywood (CODE SIGNING KEY) <da...@apache.org>
-sub   4096R/B754DEC0 2011-02-01
-sub   4096R/72986CB7 2011-05-16 [expires: 2012-05-15]
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.11 (MingW32)
-
-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
-3IjqH5+f2wCtxw==
-=7Zft
------END PGP PUBLIC KEY BLOCK-----
-
-
-pub   4096R/61459F7A 2011-05-29
-uid                  Mohammad Nour (Personal GMail) <no...@gmail.com>
-sig 3        61459F7A 2011-05-29  Mohammad Nour (Personal GMail) <no...@gmail.com>
-uid                  Mohammad Nour (KEYS AND RELEASES SIGNING) <mn...@apache.org>
-sig 3        61459F7A 2011-05-29  Mohammad Nour (Personal GMail) <no...@gmail.com>
-sig          CFAE78A8 2011-05-29  Kevin Meyer (CODE SIGNING KEY) <ke...@apache.org>
-sub   4096R/BF08B2E1 2011-05-29
-sig          61459F7A 2011-05-29  Mohammad Nour (Personal GMail) <no...@gmail.com>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-
-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
-dm5dyxzXIMYjDMygZzDtnHQE6dV3Rtu1Gal+xq0=
-=FeV/
------END PGP PUBLIC KEY BLOCK-----
-
-
-pub   4096R/5124D1AB 2012-12-03
-uid                  Jeroen Christiaan van der Wal (CODE SIGNING KEY) <jc...@apache.org>
-sig 3        5124D1AB 2012-12-03  Jeroen Christiaan van der Wal (CODE SIGNING KEY) <jc...@apache.org>
-sub   4096R/8FF7A2C4 2012-12-03
-sig          5124D1AB 2012-12-03  Jeroen Christiaan van der Wal (CODE SIGNING KEY) <jc...@apache.org>
-sub   4096R/29517D66 2012-12-03 [expires: 2013-12-03]
-sig          5124D1AB 2012-12-03  Jeroen Christiaan van der Wal (CODE SIGNING KEY) <jc...@apache.org>
-
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
-Comment: GPGTools - http://gpgtools.org
-
-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
-+YzdA73KKiYwxZJ5+gSE
-=5AI8
------END PGP PUBLIC KEY BLOCK-----

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 3a6f6ca..cdc2481 100644
--- a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -256,9 +256,14 @@ public class IsisWicketApplication extends AuthenticatedWebApplication implement
                 }
             });
 
-            // prettier URLs
+            // 
+            // map entity and action to provide prettier URLs
+            //
+            // nb: action mount cannot contain {actionArgs}, because the default 
+            // parameters encoder doesn't seem to be able to handle multiple args
+            //
             mountPage("/entity/${objectOid}", PageType.ENTITY);
-            mountPage("/action/${objectOid}/${actionOwningSpec}/${actionId}/${actionType}/~{actionArgs}", PageType.ACTION_PROMPT);
+            mountPage("/action/${objectOid}/${actionOwningSpec}/${actionId}/${actionType}", PageType.ACTION_PROMPT);
             
             SharedResources sharedResources = getSharedResources();
             ZeroClipboardLink.addSharedResourceTo(sharedResources);

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index c7480f6..19575e9 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -25,10 +25,10 @@ import java.util.Map.Entry;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.BookmarkPolicy;
@@ -206,11 +206,6 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         return true;
     }
 
-    @Override
-    public boolean hasAsChildPolicy() {
-        return false;
-    }
-    
     //////////////////////////////////////////////////
     // helpers
     //////////////////////////////////////////////////
@@ -350,7 +345,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
             return encodeable.toEncodedString(adapter);
         }
         
-        return adapter.getOid().enString(getOidMarshaller());
+        return adapter.getOid().enStringNoVersion(getOidMarshaller());
     }
 
     private ObjectAdapter decodeArg(ObjectSpecification objSpec, String encoded) {
@@ -381,7 +376,8 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
 
 
     public ScalarModel getArgumentModel(final ActionParameterMemento apm) {
-        ScalarModel scalarModel = arguments.get(apm.getNumber());
+        int i = apm.getNumber();
+		ScalarModel scalarModel = arguments.get(i);
         if (scalarModel == null) {
             scalarModel = new ScalarModel(targetAdapterMemento, apm);
             final int number = scalarModel.getParameterMemento().getNumber();
@@ -414,8 +410,6 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         
         return results;
     }
-
-    
     
     private ObjectAdapter executeAction() {
         final ObjectAdapter targetAdapter = getTargetAdapter();
@@ -442,6 +436,10 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
     }
 
     public ObjectAdapter[] getArgumentsAsArray() {
+    	if(this.arguments.size() < this.getActionMemento().getAction().getParameterCount()) {
+    		primeArgumentModels();
+    	}
+    	
         final ObjectAction objectAction = getActionMemento().getAction();
         final ObjectAdapter[] arguments = new ObjectAdapter[objectAction.getParameterCount()];
         for (int i = 0; i < arguments.length; i++) {
@@ -450,8 +448,6 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         }
         return arguments;
     }
-
-
     
     public ActionExecutor getExecutor() {
         return executor;
@@ -485,7 +481,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
 
     
     // //////////////////////////////////////
-
+    
     private ActionPrompt actionPrompt;
 
     public void setActionPrompt(ActionPrompt actionPrompt) {
@@ -495,7 +491,8 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
     public ActionPrompt getActionPrompt() {
         return actionPrompt;
     }
-    
+
+
     //////////////////////////////////////////////////
     // Dependencies (from context)
     //////////////////////////////////////////////////
@@ -504,4 +501,25 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         return IsisContext.getOidMarshaller();
     }
 
+	public List<ActionParameterMemento> primeArgumentModels() {
+        final ObjectAction objectAction = getActionMemento().getAction();
+
+        final List<ObjectActionParameter> parameters = objectAction.getParameters();
+        final List<ActionParameterMemento> mementos = buildParameterMementos(parameters);
+        for (final ActionParameterMemento apm : mementos) {
+            getArgumentModel(apm);
+        }
+		
+        return mementos;
+	}
+
+    
+    private static List<ActionParameterMemento> buildParameterMementos(final List<ObjectActionParameter> parameters) {
+        final List<ActionParameterMemento> parameterMementoList = Lists.transform(parameters, ObjectAdapterMemento.Functions.fromActionParameter());
+        // we copy into a new array list otherwise we get lazy evaluation =
+        // reference to a non-serializable object
+        return Lists.newArrayList(parameterMementoList);
+    }
+
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
index ad2cd9b..089eb88 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
@@ -27,7 +27,6 @@ import com.google.common.base.Objects;
 import com.google.common.collect.Lists;
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
@@ -39,167 +38,233 @@ import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
 
 public class BookmarkTreeNode implements Serializable {
     
-        private static final long serialVersionUID = 1L;
-        
-        private final List<BookmarkTreeNode> children = Lists.newArrayList();
-        private final int depth;
+    private static final long serialVersionUID = 1L;
+    
+    private final List<BookmarkTreeNode> children = Lists.newArrayList();
+    private final int depth;
+
+    private final RootOid oidNoVer;
+    private final String oidNoVerStr;
+    private final PageType pageType;
+    
+    private String title;
+    private PageParameters pageParameters;
 
-        private final RootOid oidNoVer;
-        private final String oidNoVerStr;
-        private final PageType pageType;
+    public static BookmarkTreeNode newRoot(
+            BookmarkableModel<?> bookmarkableModel) {
+        return new BookmarkTreeNode(bookmarkableModel, 0);
+    }
+
+    private BookmarkTreeNode(
+            final BookmarkableModel<?> bookmarkableModel, 
+            final int depth) {
+        pageParameters = bookmarkableModel.getPageParameters();
+        RootOid oid = oidFrom(pageParameters);
+        this.oidNoVerStr = getOidMarshaller().marshalNoVersion(oid);
+        this.oidNoVer = getOidMarshaller().unmarshal(oidNoVerStr, RootOid.class);
+        
+        // replace oid with the noVer equivalent.
+        PageParameterNames.OBJECT_OID.removeFrom(pageParameters);
+        PageParameterNames.OBJECT_OID.addStringTo(pageParameters, getOidNoVerStr());
+        
+        this.title = bookmarkableModel.getTitle();
+        this.pageType = bookmarkableModel instanceof EntityModel ? PageType.ENTITY : PageType.ACTION_PROMPT;
+        this.depth = depth;
         
-        private String title;
+    }
 
+    public RootOid getOidNoVer() {
+        return oidNoVer;
+    }
 
-        public static BookmarkTreeNode newRoot(
-                BookmarkableModel<?> bookmarkableModel) {
-            return new BookmarkTreeNode(bookmarkableModel, 0);
-        }
+    public String getOidNoVerStr() {
+        return oidNoVerStr;
+    }
 
-        private BookmarkTreeNode(
-                final BookmarkableModel<?> bookmarkableModel, 
-                final int depth) {
-            PageParameters pageParameters = bookmarkableModel.getPageParameters();
-            RootOid oid = oidFrom(pageParameters);
-            this.oidNoVerStr = getOidMarshaller().marshalNoVersion(oid);
-            this.oidNoVer = getOidMarshaller().unmarshal(oidNoVerStr, RootOid.class); 
-            this.title = bookmarkableModel.getTitle();
-            this.pageType = bookmarkableModel instanceof EntityModel ? PageType.ENTITY : PageType.ACTION_PROMPT;
-            this.depth = depth;
-        }
+    public String getTitle() {
+        return title;
+    }
+    private void setTitle(String title) {
+        this.title = title;
+    }
 
-        public RootOid getOidNoVer() {
-            return oidNoVer;
-        }
+    public PageType getPageType() {
+        return pageType;
+    }
+
+    public List<BookmarkTreeNode> getChildren() {
+        return children;
+    }
+    public BookmarkTreeNode addChild(BookmarkableModel<?> childModel) {
+        final BookmarkTreeNode childNode = new BookmarkTreeNode(childModel, depth+1);
+        children.add(childNode);
+        return childNode;
+    }
+    
+    /**
+     * Whether or not the provided {@link BookmarkableModel} matches that contained
+     * within this node, or any of its children.
+     * 
+     * <p>
+     * If it does, then the matched node's title is updated to that of the provided
+     * {@link BookmarkableModel}.
+     * 
+     * <p>
+     * The {@link PageParameters} (used for matching) is 
+     * {@link BookmarkableModel#getPageParameters() obtained} from the {@link BookmarkableModel}.
+     * 
+     * @return - whether the provided candidate is found or was added to this node's tree.
+     */
+    public boolean matches(BookmarkableModel<?> candidateBookmarkableModel) {
+    	if(candidateBookmarkableModel instanceof EntityModel) {
+    		if(this.pageType != PageType.ENTITY) { 
+    			return false; 
+			}
+			return matchAndUpdateTitleFor((EntityModel) candidateBookmarkableModel);
+    	} else if(candidateBookmarkableModel instanceof ActionModel) {
+    		if(this.pageType != PageType.ACTION_PROMPT) { 
+    			return false; 
+			}
+			return matchFor((ActionModel) candidateBookmarkableModel);
+    	} else {
+    		return false;
+    	}
+    }
 
-        public String getOidNoVerStr() {
-            return oidNoVerStr;
+    /**
+     * Whether or not the provided {@link EntityModel} matches that contained
+     * within this node, or any of its children.
+     * 
+     * <p>
+     * If it does match, then the matched node's title is updated to that of the provided
+     * {@link EntityModel}.
+     * 
+     * @return - whether the provided candidate is found or was added to this node's tree.
+     */
+	private boolean matchAndUpdateTitleFor(final EntityModel candidateEntityModel) {
+		
+		// match only on the oid string
+		final String candidateOidStr = oidStrFrom(candidateEntityModel);
+        boolean inGraph = Objects.equal(this.oidNoVerStr, candidateOidStr);
+        if(inGraph) {
+            this.setTitle(candidateEntityModel.getTitle());
         }
 
-        public String getTitle() {
-            return title;
+        // and also match recursively down to all children and grandchildren.
+        if(candidateEntityModel.hasAsChildPolicy()) {
+            for(BookmarkTreeNode childNode: this.getChildren()) {
+                inGraph = childNode.matches(candidateEntityModel) || inGraph; // evaluate each
+            }
+            
+            if(!inGraph) {
+                inGraph = addToGraphIfParented(candidateEntityModel);
+            }
         }
-        private void setTitle(String title) {
-            this.title = title;
+        return inGraph;
+	}
+	
+    /**
+     * Whether or not the provided {@link ActionModel} matches that contained
+     * within this node (taking into account the action's arguments).
+     * 
+     * If it does match, then the matched node's title is updated to that of the provided
+     * {@link ActionModel}.
+     * <p>
+     * 
+     * @return - whether the provided candidate is found or was added to this node's tree.
+     */
+	private boolean matchFor(final ActionModel candidateActionModel) {
+		
+		// check if target object of the action is the same (the oid str)
+		final String candidateOidStr = oidStrFrom(candidateActionModel);
+		if(!Objects.equal(this.oidNoVerStr, candidateOidStr)) {
+			return false;
+		}
+		
+		// check if args same
+        List<String> thisArgs = PageParameterNames.ACTION_ARGS.getListFrom(pageParameters);
+        PageParameters candidatePageParameters = candidateActionModel.getPageParameters();
+        List<String> candidateArgs = PageParameterNames.ACTION_ARGS.getListFrom(candidatePageParameters);
+        if(!Objects.equal(thisArgs, candidateArgs)) {
+        	return false;
         }
 
-        public PageType getPageType() {
-            return pageType;
-        }
+        // ok, a match
+		return true;
+	}
 
-        public List<BookmarkTreeNode> getChildren() {
-            return children;
-        }
-        public BookmarkTreeNode addChild(BookmarkableModel<?> childModel) {
-            final BookmarkTreeNode childNode = new BookmarkTreeNode(childModel, depth+1);
-            children.add(childNode);
-            return childNode;
-        }
+    private boolean addToGraphIfParented(BookmarkableModel<?> candidateBookmarkableModel) {
         
-        /**
-         * Whether or not the provided {@link BookmarkableModel} matches that contained
-         * within this node, or any of its children.
-         * 
-         * <p>
-         * If it does, then the matched node's title is updated to that of the provided
-         * {@link BookmarkableModel}.
-         * 
-         * <p>
-         * The {@link PageParameters} (used for matching) is 
-         * {@link BookmarkableModel#getPageParameters() obtained} from the {@link BookmarkableModel}.
-         * 
-         * <p>
-         * The convoluted logic in this method is because we temporarily remove the title 
-         * in order to do the check.
-         * 
-         * @return - whether the provided candidate is found or was added to this node's tree.
-         */
-        public boolean matchAndUpdateTitle(BookmarkableModel<?> candidateBookmarkableModel) {
-
-            final String candidateOidStr = oidStrFrom(candidateBookmarkableModel);
-            boolean inGraph = Objects.equal(this.oidNoVerStr, candidateOidStr);
-            if(inGraph) {
-                this.setTitle(candidateBookmarkableModel.getTitle());
-            }
-
-            // and also match recursively down to all children and grandchildren.
-            if(candidateBookmarkableModel.hasAsChildPolicy()) {
-                for(BookmarkTreeNode childNode: this.getChildren()) {
-                    inGraph = childNode.matchAndUpdateTitle(candidateBookmarkableModel) || inGraph; // evaluate each
-                }
-                
-                if(!inGraph) {
-                    inGraph = addToGraphIfParented(candidateBookmarkableModel);
+        boolean whetherAdded = false;
+        // TODO: this ought to be move into a responsibility of BookmarkableModel, perhaps, rather than downcasting
+        if(candidateBookmarkableModel instanceof EntityModel) {
+            EntityModel entityModel = (EntityModel) candidateBookmarkableModel;
+            final ObjectAdapter candidateAdapter = entityModel.getObject();
+            final List<ObjectAssociation> properties = candidateAdapter.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.REFERENCE_PROPERTIES);
+            for (ObjectAssociation objectAssoc : properties) {
+                final ObjectAdapter possibleParentAdapter = objectAssoc.get(candidateAdapter);
+                if(possibleParentAdapter == null) {
+                    continue;
+                } 
+                final Oid possibleParentOid = possibleParentAdapter.getOid();
+                if(possibleParentOid == null) {
+                    continue;
+                } 
+                final String possibleParentOidStr = possibleParentOid.enStringNoVersion(getOidMarshaller());
+                if(Objects.equal(this.oidNoVerStr, possibleParentOidStr)) {
+                    this.addChild(candidateBookmarkableModel);
+                    whetherAdded = true;
                 }
             }
-            return inGraph;
         }
+        return whetherAdded;
+    }
 
-        private boolean addToGraphIfParented(BookmarkableModel<?> candidateBookmarkableModel) {
-            
-            boolean whetherAdded = false;
-            // TODO: this ought to be move into a responsibility of BookmarkableModel, perhaps, rather than downcasting
-            if(candidateBookmarkableModel instanceof EntityModel) {
-                EntityModel entityModel = (EntityModel) candidateBookmarkableModel;
-                final ObjectAdapter candidateAdapter = entityModel.getObject();
-                final List<ObjectAssociation> properties = candidateAdapter.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.REFERENCE_PROPERTIES);
-                for (ObjectAssociation objectAssoc : properties) {
-                    final ObjectAdapter possibleParentAdapter = objectAssoc.get(candidateAdapter);
-                    if(possibleParentAdapter == null) {
-                        continue;
-                    } 
-                    final Oid possibleParentOid = possibleParentAdapter.getOid();
-                    if(possibleParentOid == null) {
-                        continue;
-                    } 
-                    final String possibleParentOidStr = possibleParentOid.enStringNoVersion(getOidMarshaller());
-                    if(Objects.equal(this.oidNoVerStr, possibleParentOidStr)) {
-                        this.addChild(candidateBookmarkableModel);
-                        whetherAdded = true;
-                    }
-                }
-            }
-            return whetherAdded;
+    public void appendGraphTo(List<BookmarkTreeNode> list) {
+        list.add(this);
+        for (BookmarkTreeNode childNode : children) {
+            childNode.appendGraphTo(list);
         }
+    }
 
-        public void appendGraphTo(List<BookmarkTreeNode> list) {
-            list.add(this);
-            for (BookmarkTreeNode childNode : children) {
-                childNode.appendGraphTo(list);
-            }
-        }
+    public int getDepth() {
+        return depth;
+    }
 
-        public int getDepth() {
-            return depth;
-        }
+    
+    // //////////////////////////////////////
 
-        
-        // //////////////////////////////////////
+    public PageParameters getPageParameters() {
+        return pageParameters;
+    }
+    
+    // //////////////////////////////////////
 
-        public static RootOid oidFrom(final PageParameters pageParameters) {
-            String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
-            if(oidStr == null) {
-                return null;
-            }
-            try {
-                return getOidMarshaller().unmarshal(oidStr, RootOid.class);
-            } catch(Exception ex) {
-                return null;
-            }
+    public static RootOid oidFrom(final PageParameters pageParameters) {
+        String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
+        if(oidStr == null) {
+            return null;
         }
-
-        public static String oidStrFrom(BookmarkableModel<?> candidateBookmarkableModel) {
-            final RootOid oid = oidFrom(candidateBookmarkableModel.getPageParameters());
-            return oid != null? getOidMarshaller().marshalNoVersion(oid): null;
+        try {
+            return getOidMarshaller().unmarshal(oidStr, RootOid.class);
+        } catch(Exception ex) {
+            return null;
         }
+    }
 
+    public static String oidStrFrom(BookmarkableModel<?> candidateBookmarkableModel) {
+        final RootOid oid = oidFrom(candidateBookmarkableModel.getPageParameters());
+        return oid != null? getOidMarshaller().marshalNoVersion(oid): null;
+    }
 
-        // //////////////////////////////////////
 
-        protected static OidMarshaller getOidMarshaller() {
-            return IsisContext.getOidMarshaller();
-        }
+    // //////////////////////////////////////
+
+    protected static OidMarshaller getOidMarshaller() {
+        return IsisContext.getOidMarshaller();
+    }
+
 
 
 
-    }
\ No newline at end of file
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkableModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkableModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkableModel.java
index f53f0cd..1dfa2ec 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkableModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkableModel.java
@@ -21,9 +21,6 @@ package org.apache.isis.viewer.wicket.model.models;
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-
 public abstract class BookmarkableModel<T> extends ModelAbstract<T>  {
 
     private static final long serialVersionUID = 1L;
@@ -44,10 +41,6 @@ public abstract class BookmarkableModel<T> extends ModelAbstract<T>  {
     
     public abstract boolean hasAsRootPolicy();
     
-    public abstract boolean hasAsChildPolicy();
-
     public abstract String getTitle();
 
-    
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
index 0b4fa7d..e378d39 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkedPagesModel.java
@@ -55,7 +55,7 @@ public class BookmarkedPagesModel extends ModelAbstract<List<? extends BookmarkT
 
         boolean foundInGraph = false;
         for (BookmarkTreeNode eachNode : rootNodes) {
-            if(eachNode.matchAndUpdateTitle(bookmarkableModel)) {
+            if(eachNode.matches(bookmarkableModel)) {
                 current = candidatePP;
                 foundInGraph = true;
             }

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 7b07217..5943709 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -32,7 +32,6 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.PrependingStringBuffer;
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.Strings;
-
 import org.apache.isis.applib.annotation.BookmarkPolicy;
 import org.apache.isis.applib.services.viewmodelsupport.ViewModelSupport.Memento;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -489,7 +488,6 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiH
         }
         String hintKey = hintKey(component, key);
         String value = hints.get(hintKey);
-        System.err.println("GET " + hintKey + "=" + value) ;
         return value;
     }
     
@@ -500,7 +498,6 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiH
         }
         String hintKey = hintKey(component, key);
         if(value != null) {
-            System.err.println("PUT " + hintKey + "=" + value) ;
             hints.put(hintKey, value);
         } else {
             clearHint(component, hintKey);
@@ -513,7 +510,6 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiH
             return;
         }
         String hintKey = hintKey(component, key);
-        System.err.println("CLEAR " + hintKey) ;
         hints.remove(hintKey);
     }
 
@@ -705,8 +701,10 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiH
         } else if (!adapterMemento.equals(other.adapterMemento))
             return false;
         return true;
+
     }
     
+
     // //////////////////////////////////////////////////////////
     // Dependencies (from context)
     // //////////////////////////////////////////////////////////
@@ -715,8 +713,6 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> implements UiH
 		return IsisContext.getOidMarshaller();
 	}
 
-
-
     protected SpecificationLoaderSpi getSpecificationLoader() {
         return IsisContext.getSpecificationLoader();
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
index baf7be1..8542120 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.java
@@ -120,20 +120,13 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
 
         private void addParameters() {
             final ActionModel actionModel = getActionModel();
-            final ObjectAction objectAction = actionModel.getActionMemento().getAction();
-            
-            final List<ObjectActionParameter> parameters = objectAction.getParameters();
-            
-            final List<ActionParameterMemento> mementos = buildParameterMementos(parameters);
-            for (final ActionParameterMemento apm1 : mementos) {
-                actionModel.getArgumentModel(apm1);
-            }
+            List<ActionParameterMemento> parameterMementos = actionModel.primeArgumentModels();
             
             final RepeatingView rv = new RepeatingView(ID_ACTION_PARAMETERS);
             add(rv);
             
             paramPanels.clear();
-            for (final ActionParameterMemento apm : mementos) {
+            for (final ActionParameterMemento apm : parameterMementos) {
                 final WebMarkupContainer container = new WebMarkupContainer(rv.newChildId());
                 rv.add(container);
 
@@ -224,13 +217,6 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
             }
         }
 
-        private List<ActionParameterMemento> buildParameterMementos(final List<ObjectActionParameter> parameters) {
-            final List<ActionParameterMemento> parameterMementoList = Lists.transform(parameters, ObjectAdapterMemento.Functions.fromActionParameter());
-            // we copy into a new array list otherwise we get lazy evaluation =
-            // reference to a non-serializable object
-            return Lists.newArrayList(parameterMementoList);
-        }
-
         @Override
         public void onUpdate(AjaxRequestTarget target, ScalarModelProvider provider) {
 
@@ -278,4 +264,5 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
         }
 
     }
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
index 36bf531..43ed67f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/bookmarkedpages/BookmarkedPagesPanel.java
@@ -19,8 +19,20 @@
 
 package org.apache.isis.viewer.wicket.ui.components.bookmarkedpages;
 
-import com.google.inject.Inject;
-
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
+import org.apache.isis.core.runtime.persistence.ObjectNotFoundException;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.apache.isis.viewer.wicket.model.models.BookmarkTreeNode;
+import org.apache.isis.viewer.wicket.model.models.BookmarkedPagesModel;
+import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
+import org.apache.isis.viewer.wicket.model.models.PageType;
+import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
+import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
+import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
+import org.apache.isis.viewer.wicket.ui.util.Links;
 import org.apache.wicket.Page;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
@@ -36,21 +48,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
 
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
-import org.apache.isis.core.runtime.persistence.ObjectNotFoundException;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
-import org.apache.isis.viewer.wicket.model.models.BookmarkTreeNode;
-import org.apache.isis.viewer.wicket.model.models.BookmarkedPagesModel;
-import org.apache.isis.viewer.wicket.model.models.ImageResourceCache;
-import org.apache.isis.viewer.wicket.model.models.PageType;
-import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
-import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
-import org.apache.isis.viewer.wicket.ui.util.CssClassAppender;
-import org.apache.isis.viewer.wicket.ui.util.Links;
+import com.google.inject.Inject;
 
 public class BookmarkedPagesPanel extends PanelAbstract<BookmarkedPagesModel> {
 
@@ -143,8 +141,7 @@ public class BookmarkedPagesPanel extends PanelAbstract<BookmarkedPagesModel> {
                     }
                     item.add(clearBookmarkLink);
                     
-                    PageParameters pageParameters = new PageParameters();
-                    PageParameterNames.OBJECT_OID.addStringTo(pageParameters, node.getOidNoVerStr());
+                    PageParameters pageParameters = node.getPageParameters();
                     final AbstractLink link = Links.newBookmarkablePageLink(ID_BOOKMARKED_PAGE_LINK, pageParameters, pageClass);
 
                     ObjectSpecification objectSpec = null;

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index 67550db..1f7d07b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -18,6 +18,7 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs;
 
 import java.util.Collection;
 
+import com.google.common.base.Strings;
 import com.vaynberg.wicket.select2.Response;
 import com.vaynberg.wicket.select2.Select2Choice;
 import com.vaynberg.wicket.select2.Settings;
@@ -75,7 +76,7 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
         
         final Settings settings = breadcrumbChoice.getSettings();
         settings.setMinimumInputLength(0);
-        settings.setWidth("90%");
+        settings.setWidth("100%");
         
         breadcrumbChoice.setProvider(new TextChoiceProvider<EntityModel>() {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
index ccc1ccb..ad09e87 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
@@ -127,12 +127,12 @@ colors
 }
 
 #tertiaryMenu {
-    width: 4%;
+    width: 3%;
     float: right;
     padding-right: 20px;
 }
 #breadcrumbsMenu {
-    width: 10%;
+    width: 18%;
     float: right;
 }
 #tertiaryMenu .imgLinks {

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
index 327d46f..8c0b9bb 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.html
@@ -54,14 +54,14 @@
 			<div class="clear"/>
 
 			<div wicket:id="applicationActions" id="applicationActions"/>
-            <div id="breadcrumbsMenu">
-                <span wicket:id="breadcrumbs"/>
-            </div>
             <div id="tertiaryMenu">
                 <a wicket:id="copyLink" href="#">
                     <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
                 </a>
             </div>
+            <div id="breadcrumbsMenu">
+                <span wicket:id="breadcrumbs"/>
+            </div>
 
 		</div>
 

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index bb03392..5c77efc 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -93,8 +93,8 @@ public class EntityPage extends PageAbstract {
         this.model = entityModel;
         addChildComponents(model);
         
-        final ObjectAndAction objectAndAction =lookupHomePageAction();
-        final ActionModel actionModel = ActionModel.create(objectAndAction.objectAdapter, objectAndAction.action);
+//        final ObjectAndAction objectAndAction =lookupHomePageAction();
+//        final ActionModel actionModel = ActionModel.create(objectAndAction.objectAdapter, objectAndAction.action);
         
         bookmarkPage(model);
         addBookmarkedPages();
@@ -105,28 +105,28 @@ public class EntityPage extends PageAbstract {
         breadcrumbModel.visited(entityModel);
     }
 
-    private static class ObjectAndAction {
-        ObjectAndAction(final ObjectAdapter serviceAdapter, final ObjectAction objectAction) {
-            this.objectAdapter = serviceAdapter;
-            action = objectAction;
-        }
-        ObjectAdapter objectAdapter;
-        ObjectAction action;
-    }
+//    private static class ObjectAndAction {
+//        ObjectAndAction(final ObjectAdapter serviceAdapter, final ObjectAction objectAction) {
+//            this.objectAdapter = serviceAdapter;
+//            action = objectAction;
+//        }
+//        ObjectAdapter objectAdapter;
+//        ObjectAction action;
+//    }
     
-    private ObjectAndAction lookupHomePageAction() {
-        List<ObjectAdapter> serviceAdapters = getPersistenceSession().getServices();
-        for (ObjectAdapter serviceAdapter : serviceAdapters) {
-            final ObjectSpecification serviceSpec = serviceAdapter.getSpecification();
-            List<ObjectAction> objectActions = serviceSpec.getObjectActions(Contributed.EXCLUDED);
-            for (ObjectAction objectAction : objectActions) {
-                if(objectAction.containsFacet(HomePageFacet.class)) {
-                    return new ObjectAndAction(serviceAdapter, objectAction);
-                }
-            }
-        }
-        return null;
-    }
+//    private ObjectAndAction lookupHomePageAction() {
+//        List<ObjectAdapter> serviceAdapters = getPersistenceSession().getServices();
+//        for (ObjectAdapter serviceAdapter : serviceAdapters) {
+//            final ObjectSpecification serviceSpec = serviceAdapter.getSpecification();
+//            List<ObjectAction> objectActions = serviceSpec.getObjectActions(Contributed.EXCLUDED);
+//            for (ObjectAction objectAction : objectActions) {
+//                if(objectAction.containsFacet(HomePageFacet.class)) {
+//                    return new ObjectAndAction(serviceAdapter, objectAction);
+//                }
+//            }
+//        }
+//        return null;
+//    }
 
 
     /**

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index b942bc8..ac98db4 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -38,8 +38,9 @@ import com.google.common.base.Objects;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Ordering;
 
-import org.joda.time.LocalDate;
+import dom.todo.ToDoItem.Category;
 
+import org.joda.time.LocalDate;
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
@@ -610,18 +611,15 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
             };
         }
 
-        public static Predicate<ToDoItem> thoseNotYetComplete() {
-            return com.google.common.base.Predicates.not(thoseComplete());
-        }
-
-        public static Predicate<ToDoItem> thoseComplete() {
+		public static Predicate<ToDoItem> thoseCompleted(
+				final boolean completed) {
             return new Predicate<ToDoItem>() {
                 @Override
                 public boolean apply(final ToDoItem t) {
-                    return t.isComplete();
+                    return Objects.equal(t.isComplete(), completed);
                 }
             };
-        }
+		}
 
         public static Predicate<ToDoItem> thoseWithSimilarDescription(final String description) {
             return new Predicate<ToDoItem>() {
@@ -674,6 +672,7 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
                     thoseCategorised(category), 
                     thoseSubcategorised(subcategory)); 
         }
+
     }
     
     // //////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
index a81430c..214d81d 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItems.java
@@ -24,13 +24,14 @@ import java.net.URL;
 import java.util.Collections;
 import java.util.List;
 
+import com.google.common.base.Objects;
+import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 
 import dom.todo.ToDoItem.Category;
 import dom.todo.ToDoItem.Subcategory;
 
 import org.joda.time.LocalDate;
-
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
@@ -62,7 +63,7 @@ public class ToDoItems {
     // //////////////////////////////////////
     // NotYetComplete (action)
     // //////////////////////////////////////
-    
+
     @Bookmarkable
     @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence = "1")
@@ -76,30 +77,19 @@ public class ToDoItems {
 
     @Programmatic
     public List<ToDoItem> notYetCompleteNoUi() {
-        final List<ToDoItem> items;
-        if(false) {
-            // the naive implementation ...
-            items = container.allMatches(ToDoItem.class, 
-                    Predicates.and(
-                        ToDoItem.Predicates.thoseOwnedBy(currentUserName()), 
-                        ToDoItem.Predicates.thoseNotYetComplete()));
-        } else {
-            // the JDO implementation ...
-            items = container.allMatches(
-                    new QueryDefault<ToDoItem>(ToDoItem.class, 
-                            "todo_notYetComplete", 
-                            "ownedBy", currentUserName()));
-        }
-        return items;
+        return container.allMatches(
+                new QueryDefault<ToDoItem>(ToDoItem.class, 
+                        "todo_notYetComplete", 
+                        "ownedBy", currentUserName()));
     }
 
-    
+
     // //////////////////////////////////////
     // Complete (action)
     // //////////////////////////////////////
     
     @ActionSemantics(Of.SAFE)
-    @MemberOrder(sequence = "2")
+    @MemberOrder(sequence = "3")
     public List<ToDoItem> complete() {
         final List<ToDoItem> items = completeNoUi();
         if(items.isEmpty()) {
@@ -110,21 +100,50 @@ public class ToDoItems {
 
     @Programmatic
     public List<ToDoItem> completeNoUi() {
-        final List<ToDoItem> items;
-        if(false) {
-            // the naive implementation ...
-            items = container.allMatches(ToDoItem.class, 
-                    Predicates.and(
-                        ToDoItem.Predicates.thoseOwnedBy(currentUserName()), 
-                        ToDoItem.Predicates.thoseComplete()));
-        } else {
-            // the JDO implementation ...
-            items = container.allMatches(
-                    new QueryDefault<ToDoItem>(ToDoItem.class, 
-                            "todo_complete", 
-                            "ownedBy", currentUserName()));
-        }
-        return items;
+        return container.allMatches(
+            new QueryDefault<ToDoItem>(ToDoItem.class, 
+                    "todo_complete", 
+                    "ownedBy", currentUserName()));
+    }
+
+
+    // //////////////////////////////////////
+    // categorized (action)
+    // //////////////////////////////////////
+
+	@SuppressWarnings("unchecked")
+	@Bookmarkable
+    @ActionSemantics(Of.SAFE)
+    @MemberOrder(sequence = "30")
+    public List<ToDoItem> categorized(
+    		@Named("Category") final Category category,
+    		@Named("Subcategory") final Subcategory subcategory,
+    		@Named("Completed?") final boolean completed) {
+    	// a naive implementation
+        return container.allMatches(ToDoItem.class, 
+                Predicates.and(
+                    ToDoItem.Predicates.thoseOwnedBy(currentUserName()), 
+                    ToDoItem.Predicates.thoseCompleted(completed),
+                    ToDoItem.Predicates.thoseCategorised(category, subcategory)));
+    }
+    public Category default0Categorized() {
+        return Category.Professional;
+    }
+    public Subcategory default1Categorized() {
+        return default0Categorized().subcategories().get(0);
+    }
+    public boolean default2Categorized() {
+    	return false;
+    }
+    public List<Subcategory> choices1Categorized(
+            final Category category) {
+        return Subcategory.listFor(category);
+    }
+    public String validateCategorized(
+            final Category category, 
+            final Subcategory subcategory, 
+            final boolean completed) {
+        return Subcategory.validate(category, subcategory);
     }
 
 
@@ -132,7 +151,7 @@ public class ToDoItems {
     // NewToDo (action)
     // //////////////////////////////////////
 
-    @MemberOrder(sequence = "3")
+    @MemberOrder(sequence = "40")
     public ToDoItem newToDo(
             final @RegEx(validation = "\\w[@&:\\-\\,\\.\\+ \\w]*") @Named("Description") String description, 
             final @Named("Category") Category category,
@@ -167,7 +186,7 @@ public class ToDoItems {
     // //////////////////////////////////////
 
     @ActionSemantics(Of.SAFE)
-    @MemberOrder(sequence = "4")
+    @MemberOrder(sequence = "50")
     public List<ToDoItem> allToDos() {
         final String currentUser = currentUserName();
         final List<ToDoItem> items = container.allMatches(ToDoItem.class, ToDoItem.Predicates.thoseOwnedBy(currentUser));

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/ToDoApplication.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/ToDoApplication.java b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/ToDoApplication.java
index 9c01579..08c60e3 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/ToDoApplication.java
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/ToDoApplication.java
@@ -42,7 +42,6 @@ import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
 import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
 import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
 import org.apache.isis.viewer.wicket.viewer.integration.wicket.AuthenticatedWebSessionForIsis;
-import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassListDefault;
 
 
 /**

http://git-wip-us.apache.org/repos/asf/isis/blob/97478ce9/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/about/index.html
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/about/index.html b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/about/index.html
index d71aa2b..4339904 100644
--- a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/about/index.html
+++ b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/webapp/about/index.html
@@ -120,7 +120,7 @@ th, td {
             <p>The key files in this &quot;todo&quot; app are:</p>
             <!-- the hrefs below are partially URL encoded to prevent them from being modified when the archetype is created -->
             <ul>
-              <li>Domain classes (todo functionality) (in <tt>dom</tt> module)</a>
+              <li>Domain classes (todo functionality) (in <tt>dom</tt> module)
                   <ul>
                   <li><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java"><tt>ToDoItem</tt></a> domain entity
                   </li>
@@ -132,7 +132,7 @@ th, td {
                   </li>
                   </ul>
               </li>
-              <li>Fixture classes (in <tt>fixture</tt> module and <tt>webapp</tt> module)</a>
+              <li>Fixture classes (in <tt>fixture</tt> module and <tt>webapp</tt> module)
                 <ul>
                   <li><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/fixture/src/main/java/fixture/todo/ToDoItemsFixture.java"><tt>ToDoItemsFixture</tt></a> example fixture data (since configured for in-memory HSQLDB)
                   </li>
@@ -140,7 +140,7 @@ th, td {
                   </li>
                 </ul>
               </li>
-              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/web.xml">WEB-INF/web.xml</a></tt> (in <tt>webapp</tt> module)</a>
+              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/web.xml">WEB-INF/web.xml</a></tt> (in <tt>webapp</tt> module)
                 <ul>
                   <li><tt>AboutPageFilter</tt> - filter that redirects to this page 
                   </li>
@@ -154,7 +154,7 @@ th, td {
                   </li>
                 </ul>
               </li>
-              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties">WEB-INF/isis.properties</a></tt> (in <tt>webapp</tt> module)</a>
+              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/isis.properties">WEB-INF/isis.properties</a></tt> (in <tt>webapp</tt> module)
                 <ul>
                   <li><tt>isis.services</tt> - specifies the two domain services described above (<tt>ToDoItems</tt> and <tt>ToDoItemsFixtureService</tt>), appearing on the menu bar in the Wicket viewer, 
                   along with a number of hidden framework-provided domain services demonstrating Isis' support for publishing, auditing and customizable error handling 
@@ -165,19 +165,19 @@ th, td {
                   </li>
                 </ul>
               </li>
-              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties">WEB-INF/persistor_datanucleus.properties</a></tt> (in <tt>webapp</tt> module)</a>
+              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/persistor_datanucleus.properties">WEB-INF/persistor_datanucleus.properties</a></tt> (in <tt>webapp</tt> module)
                 <ul>
                   <li>configuration for JDO object store 
                   </li>
                 </ul>
               </li>
-              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/persistor.properties">WEB-INF/persistor.properties</a></tt> (in <tt>webapp</tt> module)</a>
+              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/persistor.properties">WEB-INF/persistor.properties</a></tt> (in <tt>webapp</tt> module)
                 <ul>
                   <li>JDBC URL for JDO object store 
                   </li>
                 </ul>
               </li>
-              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/shiro.ini">WEB-INF/shiro.ini</a></tt> (in <tt>webapp</tt> module)</a>
+              <li><tt><a href="https://github.com/apache/isis/blob/master/example/application/quickstart%5Fwicket_restful_jdo/webapp/src/main/webapp/WEB-INF/shiro.ini">WEB-INF/shiro.ini</a></tt> (in <tt>webapp</tt> module)
                 <ul>
                   <li>configuration for Shiro security
                   </li>