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/05/05 16:52:58 UTC

[1/3] git commit: ISIS-771: comments to indicate why upgrade broken

Repository: isis
Updated Branches:
  refs/heads/master 074d2c4e4 -> 3c4069f23


ISIS-771: comments to indicate why upgrade broken

... due to Wicket.Window.get() returning null in Wicket 6.12.0 and later.


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

Branch: refs/heads/master
Commit: 2aed22eca7e07201e0c382629e1a070080ba5eaa
Parents: 074d2c4
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon May 5 14:40:43 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon May 5 14:40:43 2014 +0100

----------------------------------------------------------------------
 component/viewer/wicket/pom.xml                                  | 2 ++
 .../ui/components/actionprompt/ActionPromptModalWindow.java      | 4 +++-
 .../wicket/ui/components/actions/ActionParametersFormPanel.java  | 4 +++-
 .../ui/components/widgets/zclip/SimpleClipboardModalWindow.java  | 4 +++-
 4 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/2aed22ec/component/viewer/wicket/pom.xml
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/pom.xml b/component/viewer/wicket/pom.xml
index d741c91..8fe3368 100644
--- a/component/viewer/wicket/pom.xml
+++ b/component/viewer/wicket/pom.xml
@@ -40,9 +40,11 @@
         <siteBaseDir>.</siteBaseDir>
         <relativeUrl />
 
+        <!-- blocked from upgrading until ISIS-771 is fixed -->
         <wicket.version>6.11.0</wicket.version>
         <wicket-jquery-ui.version>6.11.0</wicket-jquery-ui.version>
         <wicketstuff.version>6.11.0</wicketstuff.version>
+        
         <wicket-select2.version>2.2.2</wicket-select2.version>
     </properties>
 

http://git-wip-us.apache.org/repos/asf/isis/blob/2aed22ec/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java
index 9c4718a..9efb495 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java
@@ -111,7 +111,9 @@ public class ActionPromptModalWindow extends ModalWindow implements ActionPrompt
         // http://api.jqueryui.com/datepicker/#method-show
         //builder.append("$('.first-field input.hasDatepicker').datepicker('show');");
         
-        builder.append("Wicket.Window.get().autoSizeWindow();\n");
+        
+        // ISIS-771: in Wicket 6.12.0 the var ww returns null.
+        builder.append("var ww = Wicket.Window.get();\n ww.autoSizeWindow();\n");
         
         target.appendJavaScript(builder.toString());
 

http://git-wip-us.apache.org/repos/asf/isis/blob/2aed22ec/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 93990fc..32c4177 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
@@ -189,7 +189,9 @@ public class ActionParametersFormPanel extends PanelAbstract<ActionModel> {
                     super.onError(target, form);
                     if(actionPromptIfAny != null) {
                         // resize, to show any feedback messages.
-                        target.appendJavaScript("Wicket.Window.get().autoSizeWindow();");
+                        
+                        // ISIS-771: in Wicket 6.12.0 the var ww returns null.
+                        target.appendJavaScript("var ww = Wicket.Window.get();\n ww.autoSizeWindow();");
                     }
                     target.add(form);
                 }

http://git-wip-us.apache.org/repos/asf/isis/blob/2aed22ec/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java
index 71e0e90..7b72fc2 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java
@@ -101,7 +101,9 @@ public class SimpleClipboardModalWindow extends ModalWindow implements ActionPro
         
         StringBuilder builder = new StringBuilder();
         builder.append("$('.first-field input').focus();\n");
-        builder.append("Wicket.Window.get().autoSizeWindow();\n");
+        
+        // ISIS-771: in Wicket 6.12.0 the var ww returns null.
+        builder.append("var ww = Wicket.Window.get();\n ww.autoSizeWindow();\n");
         target.appendJavaScript(builder.toString());
     }
 


[3/3] git commit: ISIS-773: IntelliJ-style regions

Posted by da...@apache.org.
ISIS-773: IntelliJ-style regions

for example apps / archetypes.


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

Branch: refs/heads/master
Commit: 3c4069f232036c824a94bd39fc15c1ae956dd5f6
Parents: 7511d48
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri May 2 12:55:10 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon May 5 15:48:02 2014 +0100

----------------------------------------------------------------------
 core/applib/.gitignore                          |   1 +
 core/unittestsupport/.gitignore                 |   1 +
 .../dom/src/main/java/app/ToDoAppDashboard.java |  25 +-
 .../main/java/app/ToDoAppDashboardService.java  |  14 +-
 .../dom/src/main/java/app/ToDoItemAnalysis.java |  42 ++--
 .../java/app/ToDoItemAnalysisContributions.java |  11 +-
 .../java/app/ToDoItemsByCategoryViewModel.java  |  64 ++---
 .../java/app/ToDoItemsByDateRangeViewModel.java |  33 +--
 .../dom/src/main/java/dom/todo/ToDoItem.java    | 242 +++++++++----------
 .../java/dom/todo/ToDoItemContributions.java    |  49 ++--
 .../java/dom/todo/ToDoItemSubscriptions.java    |   8 +-
 .../dom/src/main/java/dom/todo/ToDoItems.java   |  66 ++---
 .../src/main/java/dom/simple/SimpleObject.java  |  28 +--
 .../src/main/java/dom/simple/SimpleObjects.java |  28 +--
 14 files changed, 274 insertions(+), 338 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/core/applib/.gitignore
----------------------------------------------------------------------
diff --git a/core/applib/.gitignore b/core/applib/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/applib/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/core/unittestsupport/.gitignore
----------------------------------------------------------------------
diff --git a/core/unittestsupport/.gitignore b/core/unittestsupport/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/unittestsupport/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboard.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboard.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboard.java
index 61141e5..93996ce 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboard.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboard.java
@@ -28,6 +28,8 @@ import org.apache.isis.applib.annotation.Render.Type;
 
 public class ToDoAppDashboard extends AbstractViewModel {
 
+    //region > identification in the UI
+    // //////////////////////////////////////
     public String title() {
         return "Dashboard";
     }
@@ -35,9 +37,9 @@ public class ToDoAppDashboard extends AbstractViewModel {
     public String iconName() {
         return "Dashboard";
     }
-    
-    // //////////////////////////////////////
-    // ViewModel contract
+    //endregion
+
+    //region > ViewModel contract
     // //////////////////////////////////////
 
     private String memento;
@@ -52,9 +54,9 @@ public class ToDoAppDashboard extends AbstractViewModel {
         this.memento = memento;
     }
 
+    //endregion
 
-    // //////////////////////////////////////
-    // getAnalysisByCategory
+    //region > getAnalysisByCategory (collection)
     // //////////////////////////////////////
 
     @Named("By Category")
@@ -63,9 +65,9 @@ public class ToDoAppDashboard extends AbstractViewModel {
     public List<ToDoItemsByCategoryViewModel> getAnalysisByCategory() {
         return toDoItemAnalysis.toDoItemsByCategory();
     }
-    
-    // //////////////////////////////////////
-    // getAnalysisByDateRange
+    //endregion
+
+    //region > getAnalysisByDateRange (collection)
     // //////////////////////////////////////
     
     @Named("By Date Range")
@@ -74,13 +76,14 @@ public class ToDoAppDashboard extends AbstractViewModel {
     public List<ToDoItemsByDateRangeViewModel> getAnalysisByDateRange() {
         return toDoItemAnalysis.toDoItemsByDateRange();
     }
-    
+    //endregion
 
-    // //////////////////////////////////////
-    // injected services
+    //region > injected services
     // //////////////////////////////////////
     
     @javax.inject.Inject
     private ToDoItemAnalysis toDoItemAnalysis;
 
+    //endregion
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboardService.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboardService.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboardService.java
index 95534dd..456feb0 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboardService.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoAppDashboardService.java
@@ -27,6 +27,9 @@ import org.apache.isis.applib.annotation.HomePage;
 @Hidden
 public class ToDoAppDashboardService  {
 
+    //region > identification in the UI
+    // //////////////////////////////////////
+
     private static final String ID = "dashboard";
 
     public String getId() {
@@ -36,21 +39,24 @@ public class ToDoAppDashboardService  {
     public String iconName() {
         return ID;
     }
+    //endregion
 
+    //region > lookup (action)
     // //////////////////////////////////////
-
     @ActionSemantics(Of.SAFE)
     @HomePage
     public ToDoAppDashboard lookup() {
         return container.newViewModelInstance(ToDoAppDashboard.class, ID);
     }
 
-    
-    // //////////////////////////////////////
-    // Injected services
+    //endregion
+
+    //region > injected services
     // //////////////////////////////////////
 
     @javax.inject.Inject
     private DomainObjectContainer container;
 
+    //endregion
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysis.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysis.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysis.java
index a102c48..2e81fb8 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysis.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysis.java
@@ -18,28 +18,22 @@
  */
 package app;
 
+import dom.todo.ToDoItem.Category;
+
 import java.util.Arrays;
 import java.util.List;
-
 import com.google.common.base.Function;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-
-import dom.todo.ToDoItem.Category;
-
 import org.apache.isis.applib.DomainObjectContainer;
-import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.*;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
-import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.Programmatic;
 
 @Named("Analysis")
 public class ToDoItemAnalysis {
 
-    // //////////////////////////////////////
-    // Identification in the UI
+
+    //region > identification in the UI
     // //////////////////////////////////////
 
     public String getId() {
@@ -49,11 +43,11 @@ public class ToDoItemAnalysis {
     public String iconName() {
         return "ToDoItem";
     }
+    //endregion
 
+    //region > byCategory (action)
     // //////////////////////////////////////
-    // ByCategory (action)
-    // //////////////////////////////////////
-    
+
     @Named("By Category")
     @Bookmarkable
     @ActionSemantics(Of.SAFE)
@@ -75,8 +69,9 @@ public class ToDoItemAnalysis {
          };
     }
 
-    // //////////////////////////////////////
-    // ByDateRange (action)
+    //endregion
+
+    //region > byDateRange (action)
     // //////////////////////////////////////
     
     public enum DateRange {
@@ -108,23 +103,24 @@ public class ToDoItemAnalysis {
              }
          };
     }
-    
-    
-    // //////////////////////////////////////
-    // ForCategory (programmatic)
+    //endregion
+
+    //region > forCategory (programmatic)
     // //////////////////////////////////////
 
     @Programmatic
     public ToDoItemsByCategoryViewModel toDoItemsForCategory(Category category) {
         return byCategory().apply(category);
     }
-    
 
-    // //////////////////////////////////////
-    // Injected services
+    //endregion
+
+    //region > injected services
     // //////////////////////////////////////
 
     @javax.inject.Inject
     private DomainObjectContainer container;
 
+    //endregion
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysisContributions.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysisContributions.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysisContributions.java
index c9b40a0..3767c00 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysisContributions.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemAnalysisContributions.java
@@ -31,8 +31,7 @@ import org.apache.isis.applib.annotation.NotInServiceMenu;
 public class ToDoItemAnalysisContributions {
 
 
-    // //////////////////////////////////////
-    // AnalyseCategory
+    //region > analyseCategory (action)
     // //////////////////////////////////////
 
     @NotInServiceMenu
@@ -41,12 +40,14 @@ public class ToDoItemAnalysisContributions {
     public ToDoItemsByCategoryViewModel analyseCategory(final ToDoItem item) {
         return toDoAppAnalysis.toDoItemsForCategory(item.getCategory());
     }
+    //endregion
 
-    
-    // //////////////////////////////////////
-    // injected services
+    //region > injected services
     // //////////////////////////////////////
 
     @javax.inject.Inject
     private ToDoItemAnalysis toDoAppAnalysis;
+
+    //endregion
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
index a4c5f90..1b6ee70 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByCategoryViewModel.java
@@ -18,26 +18,20 @@
  */
 package app;
 
+import dom.todo.ToDoItem;
+import dom.todo.ToDoItem.Category;
+import dom.todo.ToDoItem.Subcategory;
+import dom.todo.ToDoItems;
+
 import java.util.Arrays;
 import java.util.List;
-
 import com.google.common.base.Function;
 import com.google.common.base.Joiner;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-
-import dom.todo.ToDoItem;
-import dom.todo.ToDoItem.Category;
-import dom.todo.ToDoItem.Subcategory;
-import dom.todo.ToDoItems;
-
 import org.apache.isis.applib.AbstractViewModel;
-import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.MultiLine;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.Render;
+import org.apache.isis.applib.annotation.*;
 import org.apache.isis.applib.annotation.Render.Type;
-import org.apache.isis.applib.annotation.Title;
 import org.apache.isis.applib.util.ObjectContracts;
 
 @Named("By Category")
@@ -46,9 +40,7 @@ public class ToDoItemsByCategoryViewModel
         extends AbstractViewModel 
         implements Comparable<ToDoItemsByCategoryViewModel> {
 
-    
-    // //////////////////////////////////////
-    // ViewModel implementation
+    //region > viewModel implementation
     // //////////////////////////////////////
 
     @Override
@@ -61,8 +53,9 @@ public class ToDoItemsByCategoryViewModel
         setCategory(Category.valueOf(memento));
     }
 
-    // //////////////////////////////////////
-    // Category
+    //endregion
+
+    //region > category (property)
     // //////////////////////////////////////
 
     private Category category;
@@ -78,10 +71,9 @@ public class ToDoItemsByCategoryViewModel
     public void setCategory(final Category category) {
         this.category = category;
     }
+    //endregion
 
-
-    // //////////////////////////////////////
-    // NotYetComplete, Complete
+    //region > notYetComplete (property), complete (property)
     // //////////////////////////////////////
 
     @MultiLine(numberOfLines=5)
@@ -91,8 +83,6 @@ public class ToDoItemsByCategoryViewModel
             Iterables.transform(subcategories(), summarizeBySubcategory(notYetComplete)));
     }
 
-    // //////////////////////////////////////
-
     @MultiLine(numberOfLines=5)
     public String getComplete() {
         final List<ToDoItem> completeInCategory = getItemsComplete();
@@ -116,13 +106,12 @@ public class ToDoItemsByCategoryViewModel
     }
 
     private static int countIn(final Iterable<ToDoItem> items, final Subcategory subcategory) {
-        return Iterables.size(Iterables.filter(items, 
+        return Iterables.size(Iterables.filter(items,
                 ToDoItem.Predicates.thoseSubcategorised(subcategory)));
     }
+    //endregion
 
-    
-    // //////////////////////////////////////
-    // getItemsNotYetComplete, getItemsComplete
+    //region > getItemsNotYetComplete (collection), getItemsComplete (collection)
     // //////////////////////////////////////
 
     /**
@@ -134,8 +123,6 @@ public class ToDoItemsByCategoryViewModel
         return Lists.newArrayList(Iterables.filter(notYetComplete, ToDoItem.Predicates.thoseCategorised(getCategory())));
     }
 
-    // //////////////////////////////////////
-
     /**
      * All those items {@link ToDoItems#complete() complete}, for this {@link #getCategory() category}.
      */
@@ -145,9 +132,9 @@ public class ToDoItemsByCategoryViewModel
         return Lists.newArrayList(Iterables.filter(complete, ToDoItem.Predicates.thoseCategorised(getCategory())));
     }
 
-    
-    // //////////////////////////////////////
-    // DeleteCompleted (action)
+    //endregion
+
+    //region > deleteCompleted (action)
     // //////////////////////////////////////
 
     @Named("Delete")
@@ -158,24 +145,23 @@ public class ToDoItemsByCategoryViewModel
         // force reload of page
         return this;
     }
-    
-    
 
-    // //////////////////////////////////////
-    // compareTo
+    //endregion
+
+    //region > compareTo
     // //////////////////////////////////////
 
     @Override
     public int compareTo(ToDoItemsByCategoryViewModel other) {
         return ObjectContracts.compare(this, other, "category");
     }
+    //endregion
 
-    
-    // //////////////////////////////////////
-    // injected services
+    //region > injected services
     // //////////////////////////////////////
-    
+
     @javax.inject.Inject
     private ToDoItems toDoItems;
+    //endregion
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
index 49caf87..bccbff1 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/app/ToDoItemsByDateRangeViewModel.java
@@ -47,9 +47,7 @@ public class ToDoItemsByDateRangeViewModel
         extends AbstractViewModel 
         implements Comparable<ToDoItemsByDateRangeViewModel> {
 
-    
-    // //////////////////////////////////////
-    // ViewModel implementation
+    //region > viewModel implementation
     // //////////////////////////////////////
 
     @Override
@@ -62,8 +60,11 @@ public class ToDoItemsByDateRangeViewModel
         setDateRange(DateRange.valueOf(memento));
     }
 
+    //endregion
+
+    //region > dateRange (property)
     // //////////////////////////////////////
-    // DateRange
+    //
     // //////////////////////////////////////
 
     private DateRange dateRange;
@@ -79,18 +80,18 @@ public class ToDoItemsByDateRangeViewModel
     public void setDateRange(final DateRange dateRange) {
         this.dateRange = dateRange;
     }
+    //endregion
 
-
-    // //////////////////////////////////////
-    // Count
+    //region > count (derived property)
     // //////////////////////////////////////
 
     public int getCount() {
         return getItemsNotYetComplete().size();
     }
-    
-    // //////////////////////////////////////
-    // getItemsNotYetComplete
+
+    //endregion
+
+    //region > getItemsNotYetComplete (collection)
     // //////////////////////////////////////
 
     /**
@@ -132,20 +133,18 @@ public class ToDoItemsByDateRangeViewModel
         }
         return DateRange.Later;
     }
+    //endregion
 
-
-    // //////////////////////////////////////
-    // compareTo
+    //region > compareTo
     // //////////////////////////////////////
 
     @Override
     public int compareTo(ToDoItemsByDateRangeViewModel other) {
         return ObjectContracts.compare(this, other, "dateRange");
     }
+    //endregion
 
-    
-    // //////////////////////////////////////
-    // injected services
+    //region > injected services
     // //////////////////////////////////////
     
     @javax.inject.Inject
@@ -154,4 +153,6 @@ public class ToDoItemsByDateRangeViewModel
     @javax.inject.Inject
     private ClockService clockService;
 
+    //endregion
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/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 6e7aecb..c384a9c 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
@@ -21,54 +21,24 @@ package dom.todo;
 import java.math.BigDecimal;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
+import java.util.*;
 import javax.jdo.JDOHelper;
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.VersionStrategy;
-
 import com.google.common.base.Objects;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Ordering;
-
 import org.joda.time.LocalDate;
-
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.NonRecoverableException;
 import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.*;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
-import org.apache.isis.applib.annotation.Audited;
-import org.apache.isis.applib.annotation.AutoComplete;
-import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.Bulk;
 import org.apache.isis.applib.annotation.Bulk.AppliesTo;
 import org.apache.isis.applib.annotation.Bulk.InteractionContext.InvokedAs;
-import org.apache.isis.applib.annotation.Command;
 import org.apache.isis.applib.annotation.Command.ExecuteIn;
-import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.MinLength;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.ObjectType;
-import org.apache.isis.applib.annotation.Optional;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.annotation.Prototype;
-import org.apache.isis.applib.annotation.PublishedAction;
-import org.apache.isis.applib.annotation.PublishedObject;
-import org.apache.isis.applib.annotation.RegEx;
-import org.apache.isis.applib.annotation.SortedBy;
-import org.apache.isis.applib.annotation.TypicalLength;
 import org.apache.isis.applib.clock.Clock;
 import org.apache.isis.applib.services.background.BackgroundService;
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.applib.services.command.CommandContext;
 import org.apache.isis.applib.services.eventbus.EventBusService;
@@ -128,14 +98,15 @@ import org.apache.isis.applib.value.Blob;
 @Bookmarkable
 public class ToDoItem implements Comparable<ToDoItem> {
 
+    //region > LOG
     /**
      * It isn't common for entities to log, but they can if required.  
      * Isis uses slf4j API internally (with log4j as implementation), and is the recommended API to use. 
      */
     private final static org.slf4j.Logger LOG = org.slf4j.LoggerFactory.getLogger(ToDoItem.class);
-    
-    // //////////////////////////////////////
-    // Identification in the UI
+    //endregion
+
+    // region > title, icon
     // //////////////////////////////////////
 
     public String title() {
@@ -154,11 +125,11 @@ public class ToDoItem implements Comparable<ToDoItem> {
     public String iconName() {
         return "ToDoItem-" + (!isComplete() ? "todo" : "done");
     }
+    //endregion
 
+    //region > description (property)
     // //////////////////////////////////////
-    // Description (property)
-    // //////////////////////////////////////
-    
+
     private String description;
 
     @javax.jdo.annotations.Column(allowsNull="false", length=100)
@@ -177,12 +148,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
     public void clearDescription() {
         setDescription(null);
     }
-    
-
+    //endregion
 
-    
-    // //////////////////////////////////////
-    // DueBy (property)
+    //region > dueBy (property)
     // //////////////////////////////////////
 
     @javax.jdo.annotations.Persistent(defaultFetchGroup="true")
@@ -206,9 +174,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
         }
         return isMoreThanOneWeekInPast(dueBy) ? "Due by date cannot be more than one week old" : null;
     }
+    //endregion
 
-    // //////////////////////////////////////
-    // Category and Subcategory (property)
+    //region > category and subcategory (property)
     // //////////////////////////////////////
 
     public static enum Category {
@@ -266,7 +234,6 @@ public class ToDoItem implements Comparable<ToDoItem> {
 
     // //////////////////////////////////////
 
-
     private Category category;
 
     @javax.jdo.annotations.Column(allowsNull="false")
@@ -291,8 +258,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
     }
 
 
-    // //////////////////////////////////////
-    // OwnedBy (property)
+    //endregion
+
+    //region > ownedBy (property)
     // //////////////////////////////////////
     
     private String ownedBy;
@@ -307,9 +275,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
     }
 
 
-    // //////////////////////////////////////
-    // Complete (property), 
-    // Done (action), Undo (action)
+    //endregion
+
+    //region > complete (property), completed (action), notYetCompleted (action)
     // //////////////////////////////////////
 
     private boolean complete;
@@ -369,6 +337,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
         return !complete ? "Not yet completed" : null;
     }
 
+    //endregion
+
+    //region > completeSlowly (property)
     // //////////////////////////////////////
     // completeSlowly
     // //////////////////////////////////////
@@ -383,8 +354,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
     }
 
 
-    // //////////////////////////////////////
-    // Cost (property), UpdateCost (action)
+    //endregion
+
+    //region > cost (property), updateCost (action)
     // //////////////////////////////////////
 
     private BigDecimal cost;
@@ -428,6 +400,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
         return proposedCost.compareTo(BigDecimal.ZERO) < 0? "Cost must be positive": null;
     }
 
+    //endregion
+
+    //region > notes (property)
     // //////////////////////////////////////
     // Notes (property)
     // //////////////////////////////////////
@@ -443,8 +418,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
         this.notes = notes;
     }
 
-    // //////////////////////////////////////
-    // Attachment (property)
+    //endregion
+
+    //region > attachment (property)
     // //////////////////////////////////////
 
     private Blob attachment;
@@ -476,9 +452,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
         return !(this instanceof javax.jdo.spi.PersistenceCapable);
     }
 
-    // //////////////////////////////////////
-    // Dependencies (collection), 
-    // Add (action), Remove (action)
+    //endregion
+
+    //region > dependencies (property), add (action), remove (action)
     // //////////////////////////////////////
 
     // overrides the natural ordering
@@ -568,10 +544,11 @@ public class ToDoItem implements Comparable<ToDoItem> {
     public Collection<ToDoItem> choices0Remove() {
         return getDependencies();
     }
-    
 
-    // //////////////////////////////////////
-    // Clone (action)
+
+    //endregion
+
+    //region > clone (action)
     // //////////////////////////////////////
 
     // the name of the action in the UI
@@ -609,8 +586,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
         return toDoItems.validateNewToDo(description, category, subcategory, dueBy, cost);
     }
 
-    // //////////////////////////////////////
-    // Delete (action)
+    //endregion
+
+    //region > delete (action)
     // //////////////////////////////////////
 
     @Bulk
@@ -626,9 +604,10 @@ public class ToDoItem implements Comparable<ToDoItem> {
         return toDoItems.notYetComplete(); 
     }
 
-    
-    // //////////////////////////////////////
-    // totalCost
+
+    //endregion
+
+    //region > totalCost (property)
     // //////////////////////////////////////
 
     @ActionSemantics(Of.SAFE)
@@ -642,11 +621,11 @@ public class ToDoItem implements Comparable<ToDoItem> {
         return total.setScale(2);
     }
 
-    
 
-    // //////////////////////////////////////
-    // scheduleExplicitly
-    // scheduleImplicitly
+
+    //endregion
+
+    //region > scheduleExplicitly (action), scheduleImplicitly (background action)
     // //////////////////////////////////////
     
     @ActionSemantics(Of.IDEMPOTENT)
@@ -666,22 +645,22 @@ public class ToDoItem implements Comparable<ToDoItem> {
         completeSlowly(3000);
         return this;
     }
-    
-    
-    
-    // //////////////////////////////////////
-    // OpenSourceCodeOnGithub (action)
+
+
+
+    //endregion
+
+    //region > openSourceCodeOnGithub (action)
     // //////////////////////////////////////
-    
+
     @Prototype
     @ActionSemantics(Of.SAFE)
     public URL openSourceCodeOnGithub() throws MalformedURLException {
         return new URL("https://github.com/apache/isis/tree/master/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java");
     }
+    //endregion
 
-
-    // //////////////////////////////////////
-    // Throw exception
+    //region > demoException (action)
     // //////////////////////////////////////
     
     static enum DemoExceptionType {
@@ -711,9 +690,10 @@ public class ToDoItem implements Comparable<ToDoItem> {
         }
     }
 
-    
-    // //////////////////////////////////////
-    // Object-level validation
+
+    //endregion
+
+    //region > object-level validation
     // //////////////////////////////////////
 
     /**
@@ -746,8 +726,49 @@ public class ToDoItem implements Comparable<ToDoItem> {
         return dueBy.toDateTimeAtStartOfDay().getMillis() < Clock.getTime() - ONE_WEEK_IN_MILLIS;
     }
 
+    //endregion
+
+    //region > events
     // //////////////////////////////////////
-    // Predicates
+    // Events
+    // //////////////////////////////////////
+
+    public static abstract class AbstractEvent {
+        private final String eventDescription;
+        private final ToDoItem toDoItem;
+        public AbstractEvent(String eventDescription, ToDoItem toDoItem) {
+            this.eventDescription = eventDescription;
+            this.toDoItem = toDoItem;
+        }
+        public String getEventDescription() {
+            return eventDescription;
+        }
+        public ToDoItem getToDoItem() {
+            return toDoItem;
+        }
+    }
+
+    public static class CompletedEvent extends AbstractEvent {
+
+        public CompletedEvent(ToDoItem toDoItem) {
+            super("completed", toDoItem);
+        }
+    }
+
+    public static class NoLongerCompletedEvent extends AbstractEvent {
+        public NoLongerCompletedEvent(ToDoItem toDoItem) {
+            super("no longer completed", toDoItem);
+        }
+    }
+
+    public static class DeletedEvent extends AbstractEvent {
+        public DeletedEvent(ToDoItem toDoItem) {
+            super("deleted", toDoItem);
+        }
+    }
+    //endregion
+
+    //region > predicates
     // //////////////////////////////////////
 
     public static class Predicates {
@@ -824,19 +845,16 @@ public class ToDoItem implements Comparable<ToDoItem> {
         }
 
     }
-    
-    // //////////////////////////////////////
-    // toString
+
+    //endregion
+
+    //region > toString, compareTo
     // //////////////////////////////////////
 
     @Override
     public String toString() {
         return ObjectContracts.toString(this, "description,complete,dueBy,ownedBy");
     }
-        
-    // //////////////////////////////////////
-    // compareTo
-    // //////////////////////////////////////
 
     /**
      * Required so can store in {@link SortedSet sorted set}s (eg {@link #getDependencies()}). 
@@ -846,47 +864,9 @@ public class ToDoItem implements Comparable<ToDoItem> {
         return ObjectContracts.compare(this, other, "complete,dueBy,description");
     }
 
-    // //////////////////////////////////////
-    // Events
-    // //////////////////////////////////////
-
-    public static abstract class AbstractEvent {
-        private final String eventDescription;
-        private final ToDoItem toDoItem;
-        public AbstractEvent(String eventDescription, ToDoItem toDoItem) {
-            this.eventDescription = eventDescription;
-            this.toDoItem = toDoItem;
-        }
-        public String getEventDescription() {
-            return eventDescription;
-        }
-        public ToDoItem getToDoItem() {
-            return toDoItem;
-        }
-    }
-
-    public static class CompletedEvent extends AbstractEvent {
-
-        public CompletedEvent(ToDoItem toDoItem) {
-            super("completed", toDoItem);
-        }
-    }
-
-    public static class NoLongerCompletedEvent extends AbstractEvent {
-        public NoLongerCompletedEvent(ToDoItem toDoItem) {
-            super("no longer completed", toDoItem);
-        }
-    }
-    
-    public static class DeletedEvent extends AbstractEvent {
-        public DeletedEvent(ToDoItem toDoItem) {
-            super("deleted", toDoItem);
-        }
-    }
-    
+    //endregion
 
-    // //////////////////////////////////////
-    // Injected Services
+    //region > injected services
     // //////////////////////////////////////
 
     @javax.inject.Inject
@@ -919,4 +899,6 @@ public class ToDoItem implements Comparable<ToDoItem> {
         this.eventBusService = eventBusService;
     }
 
+    //endregion
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemContributions.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemContributions.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemContributions.java
index ec52206..b4678e7 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemContributions.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemContributions.java
@@ -18,40 +18,27 @@
  */
 package dom.todo;
 
+import dom.todo.ToDoItem.Category;
+import dom.todo.ToDoItem.Subcategory;
+
 import java.util.List;
 import java.util.concurrent.Callable;
-
 import com.google.common.base.Function;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Ordering;
-
-import dom.todo.ToDoItem.Category;
-import dom.todo.ToDoItem.Subcategory;
-
 import org.joda.time.LocalDate;
-
 import org.apache.isis.applib.AbstractFactoryAndRepository;
-import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.*;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
-import org.apache.isis.applib.annotation.DescribedAs;
-import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.NotContributed;
 import org.apache.isis.applib.annotation.NotContributed.As;
-import org.apache.isis.applib.annotation.NotInServiceMenu;
-import org.apache.isis.applib.annotation.Optional;
-import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.query.QueryDefault;
 import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
 
 public class ToDoItemContributions extends AbstractFactoryAndRepository {
 
-    
-    // //////////////////////////////////////
-    // priority (contributed property)
+    //region > priority (contributed property)
     // //////////////////////////////////////
     
     @DescribedAs("The relative priority of this item compared to others not yet complete (using 'due by' date)")
@@ -104,8 +91,9 @@ public class ToDoItemContributions extends AbstractFactoryAndRepository {
         });
 
 
-    // //////////////////////////////////////
-    // Next, Previous (contributed actions)
+    //endregion
+
+    //region >  next, previous (contributed actions)
     // //////////////////////////////////////
 
     @DescribedAs("The next item not yet completed")
@@ -169,9 +157,9 @@ public class ToDoItemContributions extends AbstractFactoryAndRepository {
         }
         return priority>=0 && items.size()>=priority? items.get(priority-1): itemElse;
     }
+    //endregion
 
-    // //////////////////////////////////////
-    // SimilarTo (contributed collection)
+    //region > similarTo (contributed collection)
     // //////////////////////////////////////
     
     @NotInServiceMenu
@@ -195,10 +183,9 @@ public class ToDoItemContributions extends AbstractFactoryAndRepository {
             }
         };
     }
+    //endregion
 
-    
-    // //////////////////////////////////////
-    // UpdateCategory (contributed action)
+    //region > updateCategory (contributed action)
     // //////////////////////////////////////
 
     @DescribedAs("Update category and subcategory")
@@ -231,25 +218,25 @@ public class ToDoItemContributions extends AbstractFactoryAndRepository {
             final ToDoItem item, final Category category, final Subcategory subcategory) {
         return Subcategory.validate(category, subcategory);
     }
+    //endregion
 
-    
-    // //////////////////////////////////////
-    // helpers
+    //region > helpers
     // //////////////////////////////////////
     
     protected String currentUserName() {
         return getContainer().getUser().getName();
     }
 
+    //endregion
 
-    // //////////////////////////////////////
-    // Injected services
+    //region > injected services
     // //////////////////////////////////////
 
     @javax.inject.Inject
     private ToDoItems toDoItems;
-    
+
     @javax.inject.Inject
     private QueryResultsCache queryResultsCache;
+    //endregion
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
index aec6ed9..c748e18 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItemSubscriptions.java
@@ -26,16 +26,17 @@ import org.apache.isis.applib.services.eventbus.EventBusService;
 
 public class ToDoItemSubscriptions {
 
+    //region > LOG
     private final static org.slf4j.Logger LOG = org.slf4j.LoggerFactory.getLogger(ToDoItemSubscriptions.class);
+    //endregion
 
     @Programmatic
     @Subscribe
     public void on(ToDoItem.AbstractEvent ev) {
         LOG.info(ev.getEventDescription() + ": " + container.titleOf(ev.getToDoItem()));
     }
-    
-    // //////////////////////////////////////
-    // Injected Services
+
+    //region > injected services
     // //////////////////////////////////////
     
     @javax.inject.Inject
@@ -46,5 +47,6 @@ public class ToDoItemSubscriptions {
     public final void injectEventBusService(EventBusService eventBusService) {
         eventBusService.register(this);
     }
+    //endregion
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/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 b527b4e..4f2e771 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
@@ -18,38 +18,23 @@
  */
 package dom.todo;
 
-import java.math.BigDecimal;
-import java.util.List;
-
-import com.google.common.base.Predicates;
-import com.google.common.eventbus.Subscribe;
-
 import dom.todo.ToDoItem.Category;
 import dom.todo.ToDoItem.Subcategory;
 
+import java.math.BigDecimal;
+import java.util.List;
+import com.google.common.base.Predicates;
 import org.joda.time.LocalDate;
-
 import org.apache.isis.applib.DomainObjectContainer;
-import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.*;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
-import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.Optional;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.annotation.RegEx;
 import org.apache.isis.applib.query.QueryDefault;
 import org.apache.isis.applib.services.clock.ClockService;
-import org.apache.isis.applib.services.eventbus.EventBusService;
 
 @Named("ToDos")
 public class ToDoItems {
 
-    public ToDoItems() {
-    }
-    
-    // //////////////////////////////////////
-    // Identification in the UI
+    //region > identification in the UI
     // //////////////////////////////////////
 
     public String getId() {
@@ -59,9 +44,9 @@ public class ToDoItems {
     public String iconName() {
         return "ToDoItem";
     }
+    //endregion
 
-    // //////////////////////////////////////
-    // NotYetComplete (action)
+    //region > notYetComplete (action)
     // //////////////////////////////////////
 
     @Bookmarkable
@@ -82,10 +67,9 @@ public class ToDoItems {
                         "findByOwnedByAndCompleteIsFalse", 
                         "ownedBy", currentUserName()));
     }
+    //endregion
 
-
-    // //////////////////////////////////////
-    // Complete (action)
+    //region > complete (action)
     // //////////////////////////////////////
     
     @ActionSemantics(Of.SAFE)
@@ -105,10 +89,9 @@ public class ToDoItems {
                     "findByOwnedByAndCompleteIsTrue", 
                     "ownedBy", currentUserName()));
     }
+    //endregion
 
-
-    // //////////////////////////////////////
-    // categorized (action)
+    //region > categorized (action)
     // //////////////////////////////////////
 
 	@SuppressWarnings("unchecked")
@@ -145,10 +128,9 @@ public class ToDoItems {
             final boolean completed) {
         return Subcategory.validate(category, subcategory);
     }
+    //endregion
 
-
-    // //////////////////////////////////////
-    // NewToDo (action)
+    //region > newToDo (action)
     // //////////////////////////////////////
 
     @MemberOrder(sequence = "40")
@@ -179,13 +161,11 @@ public class ToDoItems {
             final LocalDate dueBy, final BigDecimal cost) {
         return Subcategory.validate(category, subcategory);
     }
+    //endregion
 
-    // //////////////////////////////////////
-    // AllToDos (action)
+    //region > allToDos (action)
     // //////////////////////////////////////
 
-    // findByOwnedBy
-    
     @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence = "50")
     public List<ToDoItem> allToDos() {
@@ -198,10 +178,9 @@ public class ToDoItems {
         }
         return items;
     }
+    //endregion
 
-
-    // //////////////////////////////////////
-    // AutoComplete
+    //region > autoComplete (programmatic)
     // //////////////////////////////////////
 
     @Programmatic // not part of metamodel
@@ -212,9 +191,9 @@ public class ToDoItems {
                         "ownedBy", currentUserName(), 
                         "description", description));
     }
+    //endregion
 
-    // //////////////////////////////////////
-    // Programmatic Helpers
+    //region > helpers
     // //////////////////////////////////////
 
     @Programmatic // for use by fixtures
@@ -242,9 +221,9 @@ public class ToDoItems {
         return container.getUser().getName();
     }
 
-    
-    // //////////////////////////////////////
-    // Injected Services
+    //endregion
+
+    //region > injected services
     // //////////////////////////////////////
     
     @javax.inject.Inject
@@ -252,5 +231,6 @@ public class ToDoItems {
 
     @javax.inject.Inject
     private ClockService clockService;
+    //endregion
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObject.java
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObject.java b/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObject.java
index 903a0ab..9d7e156 100644
--- a/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObject.java
+++ b/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObject.java
@@ -18,18 +18,12 @@
  */
 package dom.simple;
 
-import javax.jdo.annotations.Column;
 import javax.jdo.annotations.IdentityType;
 import javax.jdo.annotations.VersionStrategy;
-
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
 import org.apache.isis.applib.annotation.ObjectType;
-import org.apache.isis.applib.annotation.Optional;
 import org.apache.isis.applib.annotation.Title;
 import org.apache.isis.applib.util.ObjectContracts;
 
@@ -44,8 +38,7 @@ import org.apache.isis.applib.util.ObjectContracts;
 @Bookmarkable
 public class SimpleObject implements Comparable<SimpleObject> {
 
-    // //////////////////////////////////////
-    // Name (property)
+    //region > name (property)
     // //////////////////////////////////////
     
     private String name;
@@ -60,11 +53,11 @@ public class SimpleObject implements Comparable<SimpleObject> {
     public void setName(final String name) {
         this.name = name;
     }
-    
-    
 
-    // //////////////////////////////////////
-    // compareTo
+    //endregion
+
+
+    //region > compareTo
     // //////////////////////////////////////
 
     @Override
@@ -72,14 +65,15 @@ public class SimpleObject implements Comparable<SimpleObject> {
         return ObjectContracts.compare(this, other, "name");
     }
 
-    
-    // //////////////////////////////////////
-    // Injected
-    // //////////////////////////////////////
+    //endregion
 
+    //region > injected services
+    // //////////////////////////////////////
 
     @javax.inject.Inject
     @SuppressWarnings("unused")
     private DomainObjectContainer container;
-    
+
+    //endregion
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/3c4069f2/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObjects.java
----------------------------------------------------------------------
diff --git a/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObjects.java b/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObjects.java
index 3d16e78..832f4d9 100644
--- a/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObjects.java
+++ b/example/application/simple_wicket_restful_jdo/dom/src/main/java/dom/simple/SimpleObjects.java
@@ -19,24 +19,16 @@
 package dom.simple;
 
 import java.util.List;
-import java.util.Map;
-
-import javax.annotation.PostConstruct;
-
 import org.apache.isis.applib.DomainObjectContainer;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.ActionSemantics.Of;
 import org.apache.isis.applib.annotation.Bookmarkable;
-import org.apache.isis.applib.annotation.Hidden;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.Programmatic;
 
 public class SimpleObjects {
 
-
-    // //////////////////////////////////////
-    // Identification in the UI
+    //region > identification in the UI
     // //////////////////////////////////////
 
     public String getId() {
@@ -47,10 +39,11 @@ public class SimpleObjects {
         return "SimpleObject";
     }
 
+    //endregion
+
+    //region > listAll (action)
     // //////////////////////////////////////
-    // List (action)
-    // //////////////////////////////////////
-    
+
     @Bookmarkable
     @ActionSemantics(Of.SAFE)
     @MemberOrder(sequence = "1")
@@ -58,9 +51,9 @@ public class SimpleObjects {
         return container.allInstances(SimpleObject.class);
     }
 
+    //endregion
 
-    // //////////////////////////////////////
-    // Create (action)
+    //region > create (action)
     // //////////////////////////////////////
     
     @MemberOrder(sequence = "2")
@@ -72,11 +65,14 @@ public class SimpleObjects {
         return obj;
     }
 
-    // //////////////////////////////////////
-    // Injected services
+    //endregion
+
+    //region > injected services
     // //////////////////////////////////////
 
     @javax.inject.Inject 
     DomainObjectContainer container;
 
+    //endregion
+
 }


[2/3] git commit: ISIS-771: updated to Wicket 6.15.0

Posted by da...@apache.org.
ISIS-771: updated to Wicket 6.15.0

including Martin Grigorov's fix/workaround to handle change to Wicket behaviour as result of WICKET-5101.

In addition:
- fix to Isis' internals of reflectively invoking methods to ensure that any primitive parameters always get a non-null default value if not specified.


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

Branch: refs/heads/master
Commit: 7511d485ef978d1b9d92a4a4ee3ab168fc7f3197
Parents: 2aed22e
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon May 5 15:44:09 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon May 5 15:44:09 2014 +0100

----------------------------------------------------------------------
 component/viewer/wicket/pom.xml                 |  7 +++--
 .../actionprompt/ActionPromptModalWindow.java   |  9 ++++---
 .../zclip/SimpleClipboardModalWindow.java       |  6 ++++-
 .../core/commons/lang/MethodExtensions.java     | 28 ++++++++++++++++++--
 4 files changed, 40 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/7511d485/component/viewer/wicket/pom.xml
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/pom.xml b/component/viewer/wicket/pom.xml
index 8fe3368..e3c88de 100644
--- a/component/viewer/wicket/pom.xml
+++ b/component/viewer/wicket/pom.xml
@@ -40,10 +40,9 @@
         <siteBaseDir>.</siteBaseDir>
         <relativeUrl />
 
-        <!-- blocked from upgrading until ISIS-771 is fixed -->
-        <wicket.version>6.11.0</wicket.version>
-        <wicket-jquery-ui.version>6.11.0</wicket-jquery-ui.version>
-        <wicketstuff.version>6.11.0</wicketstuff.version>
+        <wicket.version>6.15.0</wicket.version>
+        <wicket-jquery-ui.version>6.15.0</wicket-jquery-ui.version>
+        <wicketstuff.version>6.15.0</wicketstuff.version>
         
         <wicket-select2.version>2.2.2</wicket-select2.version>
     </properties>

http://git-wip-us.apache.org/repos/asf/isis/blob/7511d485/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java
index 9efb495..111739b 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionprompt/ActionPromptModalWindow.java
@@ -111,9 +111,12 @@ public class ActionPromptModalWindow extends ModalWindow implements ActionPrompt
         // http://api.jqueryui.com/datepicker/#method-show
         //builder.append("$('.first-field input.hasDatepicker').datepicker('show');");
         
-        
-        // ISIS-771: in Wicket 6.12.0 the var ww returns null.
-        builder.append("var ww = Wicket.Window.get();\n ww.autoSizeWindow();\n");
+
+        // ISIS-771, WICKET-5101
+        builder.append("window.setTimeout("
+                + "function() {\n "
+                + "var ww = Wicket.Window.get();\n ww.autoSizeWindow();\n "
+                + "}\n, 0);\n");
         
         target.appendJavaScript(builder.toString());
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7511d485/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java
index 7b72fc2..630dde1 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/zclip/SimpleClipboardModalWindow.java
@@ -103,7 +103,11 @@ public class SimpleClipboardModalWindow extends ModalWindow implements ActionPro
         builder.append("$('.first-field input').focus();\n");
         
         // ISIS-771: in Wicket 6.12.0 the var ww returns null.
-        builder.append("var ww = Wicket.Window.get();\n ww.autoSizeWindow();\n");
+        builder.append("window.setTimeout("
+                + "function() {\n "
+                + "var ww = Wicket.Window.get();\n ww.autoSizeWindow();\n "
+                + "}\n, 0);\n");
+
         target.appendJavaScript(builder.toString());
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7511d485/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodExtensions.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodExtensions.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodExtensions.java
index a2807e7..2bed5dd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodExtensions.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/MethodExtensions.java
@@ -23,6 +23,8 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 
+import com.google.common.primitives.Primitives;
+
 import org.apache.isis.core.metamodel.exceptions.MetaModelException;
 
 public class MethodExtensions {
@@ -45,9 +47,10 @@ public class MethodExtensions {
         return MethodExtensions.invoke(method, object, parameters);
     }
 
-    public static Object invoke(final Method method, final Object object, final Object[] parameters) {
+    public static Object invoke(final Method method, final Object object, final Object[] arguments) {
         try {
-            return method.invoke(object, parameters);
+            Object[] defaultAnyPrimitive = defaultAnyPrimitive(method.getParameterTypes(), arguments);
+            return method.invoke(object, defaultAnyPrimitive);
         } catch (final IllegalArgumentException e) {
             throw e;
         } catch (final InvocationTargetException e) {
@@ -58,6 +61,27 @@ public class MethodExtensions {
         }
     }
 
+    private static Object[] defaultAnyPrimitive(Class<?>[] parameterTypes, Object[] arguments) {
+        if(parameterTypes == null || arguments == null || parameterTypes.length != arguments.length) {
+            return arguments;
+        }
+        final Object[] argumentsWithPrimitivesDefaulted = new Object[arguments.length];
+        for(int i=0; i<argumentsWithPrimitivesDefaulted.length; i++) {
+            argumentsWithPrimitivesDefaulted[i] = valueIfPrimitiveThenDefaulted(parameterTypes[i], arguments[i]);
+        }
+        return argumentsWithPrimitivesDefaulted;
+    }
+
+    private static Object valueIfPrimitiveThenDefaulted(Class<?> cls, Object argument) {
+        if(argument != null) {
+            return argument;
+        }
+        if(!cls.isPrimitive()) {
+            return argument;
+        }
+        return ClassUtil.defaultByPrimitiveClass.get(cls);
+    }
+
     public static Object invokeStatic(final Method method, final Object[] parameters) {
         return invoke(method, null, parameters);
     }