Repository: isis
Updated Branches:
  refs/heads/master 647ad2cd7 -> 321e06e9b


ISIS-776: fixture result shows the fixture script that created each entry.


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

Branch: refs/heads/master
Commit: 321e06e9bd0ca457604115b0db313b0b8928aa3b
Parents: 647ad2c
Author: Dan Haywood <[email protected]>
Authored: Mon Jun 2 08:04:12 2014 +0100
Committer: Dan Haywood <[email protected]>
Committed: Mon Jun 2 08:04:12 2014 +0100

----------------------------------------------------------------------
 .../viewer/wicket/ui/pages/PageAbstract.css     | 10 ++++++-
 .../applib/fixturescripts/FixtureResult.java    | 31 ++++++++++++++------
 .../fixturescripts/FixtureResultList.java       | 16 ++++++----
 .../applib/fixturescripts/FixtureScripts.java   | 19 ++++++++----
 .../core/commons/matchers/IsisMatchers.java     | 13 ++------
 .../src/main/java/webapp/admin/Admin.java       | 11 ++-----
 6 files changed, 59 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/321e06e9/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 a6557f6..6e53e6b 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
@@ -977,4 +977,12 @@ for some reason the containedToggleboxPanel.css is not 
being picked up...
 */
 .containedToggleboxPanel .containedToggleboxPanelForm {
     display: inline;
-}
\ No newline at end of file
+}
+
+
+
+
+.collectionContentsAsAjaxTablePanel table.contents tbody td 
div.FixtureResult-className label,
+.collectionContentsAsAjaxTablePanel table.contents tbody td 
div.FixtureResult-fixtureScriptClassName label {
+    text-transform: none;
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/321e06e9/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java
----------------------------------------------------------------------
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java
 
b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java
index 552ff8b..8fa2056 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResult.java
@@ -19,10 +19,7 @@
 package org.apache.isis.applib.fixturescripts;
 
 import org.apache.isis.applib.AbstractViewModel;
-import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.Named;
-import org.apache.isis.applib.annotation.Paged;
-import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.*;
 
 @Paged(500)
 public class FixtureResult extends AbstractViewModel {
@@ -39,8 +36,23 @@ public class FixtureResult extends AbstractViewModel {
 
     // //////////////////////////////////////
 
-    private String key;
+    private String fixtureScriptClassName;
+
+    @Named("Fixture script")
+    @Optional
+    @MemberOrder(sequence="1")
+    public String getFixtureScriptClassName() {
+        return fixtureScriptClassName;
+    }
+    public void setFixtureScriptClassName(String fixtureScriptClassName) {
+        this.fixtureScriptClassName = fixtureScriptClassName;
+    }
     
+    // //////////////////////////////////////
+
+    private String key;
+
+    @Named("Result key")
     @Title(sequence="1", append=": ")
     @MemberOrder(sequence="1")
     public String getKey() {
@@ -49,11 +61,12 @@ public class FixtureResult extends AbstractViewModel {
     public void setKey(String key) {
         this.key = key;
     }
-    
+
     // //////////////////////////////////////
-    
+
     private Object object;
-    
+
+    @Named("Result")
     @Title(sequence="2")
     @MemberOrder(sequence="1")
     public Object getObject() {
@@ -65,7 +78,7 @@ public class FixtureResult extends AbstractViewModel {
     
     // //////////////////////////////////////
 
-    @Named("Class")
+    @Named("Result class")
     @MemberOrder(sequence="3")
     public String getClassName() {
         return object != null? object.getClass().getName(): null;

http://git-wip-us.apache.org/repos/asf/isis/blob/321e06e9/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResultList.java
----------------------------------------------------------------------
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResultList.java
 
b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResultList.java
index ed0237d..aa28049 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResultList.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureResultList.java
@@ -18,11 +18,9 @@
  */
 package org.apache.isis.applib.fixturescripts;
 
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
-
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
@@ -35,6 +33,10 @@ import com.google.common.collect.Maps;
 public class FixtureResultList {
 
     private final FixtureScripts fixtureScripts;
+    /**
+     * {@link org.apache.isis.applib.fixturescripts.FixtureScript}s used to 
generate this result list.
+     */
+    private final List<FixtureScript> fixtureScriptList = Lists.newArrayList();
 
     FixtureResultList(FixtureScripts fixtureScripts) {
         this.fixtureScripts = fixtureScripts;
@@ -57,16 +59,18 @@ public class FixtureResultList {
      *     or simply {@link 
org.apache.isis.applib.fixturescripts.FixtureScripts.NonPersistedObjectsStrategy#IGNORE
 ignored}.
      * </P>
      */
-    public <T> T add(final FixtureScript script, final String key, final T 
object) {
-        final FixtureResult fr = fixtureScripts.newFixtureResult(script, key, 
object);
+    public <T> T add(final FixtureScript fixtureScript, final String key, 
final T object) {
+        final boolean firstTime = !fixtureScriptList.contains(fixtureScript);
+        final FixtureResult fr = 
fixtureScripts.newFixtureResult(fixtureScript, key, object, firstTime);
         if(fr != null) {
             list.add(fr);
+            if(firstTime) {
+                fixtureScriptList.add(fixtureScript);
+            }
         }
         return object;
     }
 
-
-
     public List<FixtureResult> getResults() {
         return list;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/321e06e9/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
----------------------------------------------------------------------
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
 
b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
index acb4d7c..3da28ff 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScripts.java
@@ -51,7 +51,7 @@ public abstract class FixtureScripts extends AbstractService {
 
     /**
      * How to handle objects that are to be
-     * {@link 
org.apache.isis.applib.fixturescripts.FixtureScripts#newFixtureResult(FixtureScript,
 String, Object) added}
+     * {@link FixtureScripts#newFixtureResult(FixtureScript, String, Object, 
boolean) added}
      * into a {@link org.apache.isis.applib.fixturescripts.FixtureResult} but 
which are not yet persisted.
      */
     public enum NonPersistedObjectsStrategy {
@@ -64,7 +64,7 @@ public abstract class FixtureScripts extends AbstractService {
 
     /**
      * Defaults to {@link 
org.apache.isis.applib.fixturescripts.FixtureScripts.NonPersistedObjectsStrategy#PERSIST
 persist}
-     * strategy if non-persisted objects are {@link 
#newFixtureResult(FixtureScript, String, Object) added} to a {@link 
org.apache.isis.applib.fixturescripts.FixtureResultList}.
+     * strategy if non-persisted objects are {@link 
#newFixtureResult(FixtureScript, String, Object, boolean) added} to a {@link 
org.apache.isis.applib.fixturescripts.FixtureResultList}.
      *
      * @param packagePrefix - to search for fixture script implementations, eg 
"com.mycompany"
      */
@@ -74,7 +74,7 @@ public abstract class FixtureScripts extends AbstractService {
 
     /**
      * @param packagePrefix  - to search for fixture script implementations, 
eg "com.mycompany"
-     * @param nonPersistedObjectsStrategy - how to handle any non-persisted 
objects that are {@link #newFixtureResult(FixtureScript, String, Object) added} 
to a {@link org.apache.isis.applib.fixturescripts.FixtureResultList}.
+     * @param nonPersistedObjectsStrategy - how to handle any non-persisted 
objects that are {@link #newFixtureResult(FixtureScript, String, Object, 
boolean) added} to a {@link 
org.apache.isis.applib.fixturescripts.FixtureResultList}.
      */
     public FixtureScripts(String packagePrefix, NonPersistedObjectsStrategy 
nonPersistedObjectsStrategy) {
         this.packagePrefix = packagePrefix;
@@ -218,17 +218,19 @@ public abstract class FixtureScripts extends 
AbstractService {
 
     String mementoFor(FixtureResult fr) {
         return mementoService.create()
+                .set("fixtureScriptClassName", fr.getFixtureScriptClassName())
                 .set("key", fr.getKey())
                 .set("object", bookmarkService.bookmarkFor(fr.getObject()))
                 .asString();
     }
     void initOf(String mementoStr, FixtureResult fr) {
         Memento memento = mementoService.parse(mementoStr);
+        fr.setFixtureScriptClassName(memento.get("fixtureScriptClassName", 
String.class));
         fr.setKey(memento.get("key", String.class));
         fr.setObject(bookmarkService.lookup(memento.get("object", 
Bookmark.class)));
     }
 
-    FixtureResult newFixtureResult(FixtureScript script, String subkey, Object 
object) {
+    FixtureResult newFixtureResult(FixtureScript script, String subkey, Object 
object, boolean firstTime) {
         if(object == null) {
             return null;
         }
@@ -243,12 +245,17 @@ public abstract class FixtureScripts extends 
AbstractService {
                     return null;
             }
         }
-        String mementoFor = mementoFor(script, subkey, object);
+        String mementoFor = mementoFor(script, subkey, object, firstTime);
         return getContainer().newViewModelInstance(FixtureResult.class, 
mementoFor);
     }
 
-    private String mementoFor(FixtureScript script, String subkey, Object 
object) {
+    private String mementoFor(
+            final FixtureScript script,
+            final String subkey,
+            final Object object,
+            final boolean firstTime) {
         final FixtureResult template = new FixtureResult();
+        template.setFixtureScriptClassName(firstTime? 
script.getClass().getName(): null);
         template.setKey(script.pathWith(subkey));
         template.setObject(object);
         return mementoFor(template);

http://git-wip-us.apache.org/repos/asf/isis/blob/321e06e9/core/metamodel/src/main/java/org/apache/isis/core/commons/matchers/IsisMatchers.java
----------------------------------------------------------------------
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/commons/matchers/IsisMatchers.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/commons/matchers/IsisMatchers.java
index bca5178..73b18d7 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/commons/matchers/IsisMatchers.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/commons/matchers/IsisMatchers.java
@@ -19,26 +19,19 @@
 
 package org.apache.isis.core.commons.matchers;
 
-import static org.hamcrest.CoreMatchers.nullValue;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
-
-import org.hamcrest.CoreMatchers;
-import org.hamcrest.Description;
-import org.hamcrest.Factory;
-import org.hamcrest.Matcher;
-import org.hamcrest.Matchers;
-import org.hamcrest.TypeSafeMatcher;
+import org.hamcrest.*;
 import org.hamcrest.core.IsEqual;
 import org.hamcrest.core.StringContains;
 import org.hamcrest.core.StringEndsWith;
 import org.hamcrest.core.StringStartsWith;
-
 import org.apache.isis.core.commons.lang.StringExtensions;
 
+import static org.hamcrest.CoreMatchers.nullValue;
+
 /**
  * Hamcrest {@link Matcher} implementations.
  * 

http://git-wip-us.apache.org/repos/asf/isis/blob/321e06e9/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/admin/Admin.java
----------------------------------------------------------------------
diff --git 
a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/admin/Admin.java
 
b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/admin/Admin.java
index ef8a86b..e1811f4 100644
--- 
a/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/admin/Admin.java
+++ 
b/example/application/quickstart_wicket_restful_jdo/webapp/src/main/java/webapp/admin/Admin.java
@@ -18,17 +18,10 @@ package webapp.admin;
 
 import java.util.List;
 import java.util.UUID;
-
 import org.joda.time.LocalDate;
-
 import org.apache.isis.applib.AbstractService;
-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.Prototype;
 import org.apache.isis.applib.services.clock.ClockService;
 import org.apache.isis.objectstore.jdo.applib.service.audit.AuditEntryJdo;
 import 
org.apache.isis.objectstore.jdo.applib.service.audit.AuditingServiceJdoRepository;
@@ -39,7 +32,7 @@ import 
org.apache.isis.objectstore.jdo.applib.service.publish.PublishingServiceJ
 
 public class Admin extends AbstractService {
 
-    
+
     @ActionSemantics(Of.SAFE)
     @Bookmarkable
     @MemberOrder(sequence="10.1")

Reply via email to