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 2015/11/11 00:08:05 UTC
[1/6] isis git commit: ISIS-1232: resurrecting support for
x-ro-follow-links (for table grids, at least)
Repository: isis
Updated Branches:
refs/heads/master 06630df77 -> a7d82eb38
ISIS-1232: resurrecting support for x-ro-follow-links (for table grids, at least)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/0df5504a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/0df5504a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/0df5504a
Branch: refs/heads/master
Commit: 0df5504adca6539b36f57fc3fff615e2c0bd84b5
Parents: de21335
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Nov 7 10:20:40 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Nov 7 10:20:40 2015 +0000
----------------------------------------------------------------------
.../domainobjects/DomainObjectReprRenderer.java | 17 ++++++++++-------
.../ObjectCollectionReprRenderer.java | 12 +++++++-----
.../domainobjects/ObjectPropertyReprRenderer.java | 12 ++++++++----
.../rendering/LinkFollowSpecsTest_follow.java | 14 ++++++++++++++
.../restfulobjects/server/ResourceContext.java | 8 +++++---
5 files changed, 44 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/0df5504a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
index d96a01e..e1d0ac2 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/DomainObjectReprRenderer.java
@@ -152,7 +152,9 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
// members
- withMembers(objectAdapter);
+ if(!mode.isUpdatePropertiesLinkArgs()) {
+ withMembers(objectAdapter);
+ }
// described by
if (mode.includeDescribedBy() && !rendererContext.suppressDescribedByLinks()) {
@@ -225,7 +227,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
addProperties(objectAdapter, appendTo, associations);
if(!rendererContext.objectPropertyValuesOnly()) {
- if (!mode.isArgs()) {
+ if (!mode.isArgs() ) {
addCollections(objectAdapter, appendTo, associations);
}
@@ -241,7 +243,6 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
private void addProperties(final ObjectAdapter objectAdapter, final JsonRepresentation members, final List<ObjectAssociation> associations) {
- final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("members");
for (final ObjectAssociation assoc : associations) {
if (mode.checkVisibility()) {
@@ -255,7 +256,8 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
final OneToOneAssociation property = (OneToOneAssociation) assoc;
- final ObjectPropertyReprRenderer renderer = new ObjectPropertyReprRenderer(getRendererContext(), linkFollower, property.getId(), JsonRepresentation.newMap());
+ final LinkFollowSpecs linkFollowerForProp = getLinkFollowSpecs().follow("members[" + property.getId() + "]");
+ final ObjectPropertyReprRenderer renderer = new ObjectPropertyReprRenderer(getRendererContext(), linkFollowerForProp, property.getId(), JsonRepresentation.newMap());
renderer.with(new ObjectAndProperty(objectAdapter, property)).usingLinkTo(linkToBuilder);
if (mode.isArgs()) {
@@ -274,7 +276,6 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
}
private void addCollections(final ObjectAdapter objectAdapter, final JsonRepresentation members, final List<ObjectAssociation> associations) {
- final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("members");
for (final ObjectAssociation assoc : associations) {
if (mode.checkVisibility()) {
@@ -290,7 +291,9 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
final OneToManyAssociation collection = (OneToManyAssociation) assoc;
- final ObjectCollectionReprRenderer renderer = new ObjectCollectionReprRenderer(getRendererContext(), linkFollower, collection.getId(), JsonRepresentation.newMap());
+ final LinkFollowSpecs linkFollowerForColl = getLinkFollowSpecs().follow(
+ "members[" + collection.getId() + "]");
+ final ObjectCollectionReprRenderer renderer = new ObjectCollectionReprRenderer(getRendererContext(), linkFollowerForColl, collection.getId(), JsonRepresentation.newMap());
renderer.with(new ObjectAndCollection(objectAdapter, collection)).usingLinkTo(linkToBuilder);
if(mode.isEventSerialization()) {
@@ -364,7 +367,7 @@ public class DomainObjectReprRenderer extends ReprRendererAbstract<DomainObjectR
final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getRendererContext(), null, JsonRepresentation.newMap());
final JsonRepresentation domainObjectRepr = renderer.with(objectAdapter).asUpdatePropertiesLinkArguments().render();
- if(!rendererContext.suppressUpdateLink()) {
+ if(!getRendererContext().suppressUpdateLink()) {
final LinkBuilder updateLinkBuilder = LinkBuilder.newBuilder(getRendererContext(), Rel.UPDATE.getName(), RepresentationType.DOMAIN_OBJECT, "objects/%s/%s", getDomainType(), getInstanceId()).withHttpMethod(RestfulHttpMethod.PUT).withArguments(domainObjectRepr);
getLinks().arrayAdd(updateLinkBuilder.build());
}
http://git-wip-us.apache.org/repos/asf/isis/blob/0df5504a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
index 09a9214..22de842 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectCollectionReprRenderer.java
@@ -54,10 +54,11 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
renderMemberContent();
- boolean eagerlyRender = rendererContext.honorUiHints() && renderEagerly();
+ final LinkFollowSpecs followValue = getLinkFollowSpecs().follow("value");
+ boolean eagerlyRender = rendererContext.honorUiHints() && renderEagerly() || !followValue.isTerminated();
if ((mode.isInline() && eagerlyRender) || mode.isStandalone() || mode.isMutated() || mode.isEventSerialization() || !objectAdapter.representsPersistent()) {
- addValue();
+ addValue(followValue);
}
if(!mode.isEventSerialization()) {
putDisabledReasonIfDisabled();
@@ -79,13 +80,14 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
// value
// ///////////////////////////////////////////////////
- private void addValue() {
+ private void addValue(final LinkFollowSpecs linkFollower) {
final ObjectAdapter valueAdapter = objectMember.get(objectAdapter, getInteractionInitiatedBy());
if (valueAdapter == null) {
return;
}
- boolean eagerlyRender = rendererContext.honorUiHints() && renderEagerly(valueAdapter);
+ final LinkFollowSpecs followHref = linkFollower.follow("href");
+ boolean eagerlyRender = rendererContext.honorUiHints() && renderEagerly(valueAdapter) || !followHref.isTerminated();
final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(valueAdapter);
final List<JsonRepresentation> list = Lists.newArrayList();
@@ -93,7 +95,7 @@ public class ObjectCollectionReprRenderer extends AbstractObjectMemberReprRender
final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer.newLinkToBuilder(rendererContext, Rel.VALUE, elementAdapter);
if(eagerlyRender) {
- final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getRendererContext(), getLinkFollowSpecs(), JsonRepresentation.newMap());
+ final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getRendererContext(), followHref, JsonRepresentation.newMap());
renderer.with(elementAdapter);
if(mode.isEventSerialization()) {
renderer.asEventSerialization();
http://git-wip-us.apache.org/repos/asf/isis/blob/0df5504a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
index 72fcc07..8e77441 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/ObjectPropertyReprRenderer.java
@@ -61,7 +61,10 @@ public class ObjectPropertyReprRenderer extends AbstractObjectMemberReprRenderer
public JsonRepresentation render() {
renderMemberContent();
- addValue();
+
+ final LinkFollowSpecs followValue = getLinkFollowSpecs().follow("value");
+
+ addValue(followValue);
putDisabledReasonIfDisabled();
@@ -77,7 +80,7 @@ public class ObjectPropertyReprRenderer extends AbstractObjectMemberReprRenderer
// value
// ///////////////////////////////////////////////////
- private Object addValue() {
+ private Object addValue(final LinkFollowSpecs linkFollower) {
final ObjectAdapter valueAdapter = objectMember.get(objectAdapter, getInteractionInitiatedBy());
// use the runtime type if we have a value, else the compile time type of the member otherwise
@@ -112,7 +115,8 @@ public class ObjectPropertyReprRenderer extends AbstractObjectMemberReprRenderer
}
final RenderFacet renderFacet = objectMember.getFacet(RenderFacet.class);
- boolean eagerlyRender = renderFacet != null && renderFacet.value() == Type.EAGERLY && rendererContext.canEagerlyRender(valueAdapter);
+ boolean eagerlyRender =
+ renderFacet != null && renderFacet.value() == Type.EAGERLY && rendererContext.canEagerlyRender(valueAdapter) || !linkFollower.isTerminated();
if(valueAdapter == null) {
final NullNode value = NullNode.getInstance();
@@ -124,7 +128,7 @@ public class ObjectPropertyReprRenderer extends AbstractObjectMemberReprRenderer
final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer.newLinkToBuilder(rendererContext, Rel.VALUE, valueAdapter).withTitle(title);
if(eagerlyRender) {
- final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(rendererContext, getLinkFollowSpecs(), JsonRepresentation.newMap());
+ final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(rendererContext, linkFollower, JsonRepresentation.newMap());
renderer.with(valueAdapter);
if(mode.isEventSerialization()) {
renderer.asEventSerialization();
http://git-wip-us.apache.org/repos/asf/isis/blob/0df5504a/core/viewer-restfulobjects-rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/LinkFollowSpecsTest_follow.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/LinkFollowSpecsTest_follow.java b/core/viewer-restfulobjects-rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/LinkFollowSpecsTest_follow.java
index 97b447c..41f7789 100644
--- a/core/viewer-restfulobjects-rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/LinkFollowSpecsTest_follow.java
+++ b/core/viewer-restfulobjects-rendering/src/test/java/org/apache/isis/viewer/restfulobjects/rendering/LinkFollowSpecsTest_follow.java
@@ -197,6 +197,20 @@ public class LinkFollowSpecsTest_follow {
assertThat(followRelVersion.follow("x").isFollowing(), is(true));
}
+ @Test
+ public void example_of_eager_loading_of_collection() throws Exception {
+ final List<List<String>> links = asListOfLists("members[children].value");
+
+ final LinkFollowSpecs linkFollower = LinkFollowSpecs.create(links);
+
+ LinkFollowSpecs followMembers = linkFollower.follow("members[children]");
+ assertThat(followMembers.isFollowing(), is(true));
+ assertThat(followMembers.isTerminated(), is(false));
+
+ assertThat(followMembers.follow("value").isFollowing(), is(true));
+ assertThat(followMembers.follow("value").isTerminated(), is(false));
+ }
+
private List<List<String>> asListOfLists(final String string) {
return Parser.forListOfListOfStrings().valueOf(string);
http://git-wip-us.apache.org/repos/asf/isis/blob/0df5504a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
index ae59797..149d638 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/ResourceContext.java
@@ -197,12 +197,14 @@ public class ResourceContext implements RendererContext5 {
final JsonRepresentation map = JsonRepresentation.newMap();
for(String paramName: params.keySet()) {
String paramValue = params.get(paramName)[0];
+ // this is rather hacky :-(
+ final String key = paramName.startsWith("x-ro") ? paramName : paramName + ".value";
try {
- // this is rather hacky
+ // and this is even more hacky :-(
int paramValueAsInt = Integer.parseInt(paramValue);
- map.mapPut(paramName+".value", paramValueAsInt);
+ map.mapPut(key, paramValueAsInt);
} catch(Exception ex) {
- map.mapPut(paramName+".value", stripQuotes(paramValue));
+ map.mapPut(key, stripQuotes(paramValue));
}
}
return map;
[5/6] isis git commit: ISIS-1243: bumping simpleapp to use
1.11.0-SNAPSHOT
Posted by da...@apache.org.
ISIS-1243: bumping simpleapp to use 1.11.0-SNAPSHOT
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/eb5dae4a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/eb5dae4a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/eb5dae4a
Branch: refs/heads/master
Commit: eb5dae4a3ec9deac617306ffe915802a9ca9d876
Parents: 6e0ec97
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 10 23:06:27 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 10 23:06:27 2015 +0000
----------------------------------------------------------------------
example/application/simpleapp/app/pom.xml | 2 +-
example/application/simpleapp/dom/pom.xml | 2 +-
example/application/simpleapp/fixture/pom.xml | 2 +-
example/application/simpleapp/integtests/pom.xml | 2 +-
example/application/simpleapp/pom.xml | 4 ++--
example/application/simpleapp/webapp/pom.xml | 2 +-
6 files changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/eb5dae4a/example/application/simpleapp/app/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/app/pom.xml b/example/application/simpleapp/app/pom.xml
index 0b4f495..9f34621 100644
--- a/example/application/simpleapp/app/pom.xml
+++ b/example/application/simpleapp/app/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.isis.example.application</groupId>
<artifactId>simpleapp</artifactId>
- <version>1.10.0-SNAPSHOT</version>
+ <version>1.11.0-SNAPSHOT</version>
</parent>
<artifactId>simpleapp-app</artifactId>
http://git-wip-us.apache.org/repos/asf/isis/blob/eb5dae4a/example/application/simpleapp/dom/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/dom/pom.xml b/example/application/simpleapp/dom/pom.xml
index 0b26e14..7cee148 100644
--- a/example/application/simpleapp/dom/pom.xml
+++ b/example/application/simpleapp/dom/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.isis.example.application</groupId>
<artifactId>simpleapp</artifactId>
- <version>1.10.0-SNAPSHOT</version>
+ <version>1.11.0-SNAPSHOT</version>
</parent>
<artifactId>simpleapp-dom</artifactId>
http://git-wip-us.apache.org/repos/asf/isis/blob/eb5dae4a/example/application/simpleapp/fixture/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/fixture/pom.xml b/example/application/simpleapp/fixture/pom.xml
index b77c24e..aee749d 100644
--- a/example/application/simpleapp/fixture/pom.xml
+++ b/example/application/simpleapp/fixture/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.isis.example.application</groupId>
<artifactId>simpleapp</artifactId>
- <version>1.10.0-SNAPSHOT</version>
+ <version>1.11.0-SNAPSHOT</version>
</parent>
<artifactId>simpleapp-fixture</artifactId>
http://git-wip-us.apache.org/repos/asf/isis/blob/eb5dae4a/example/application/simpleapp/integtests/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/integtests/pom.xml b/example/application/simpleapp/integtests/pom.xml
index 263b21d..0569a13 100644
--- a/example/application/simpleapp/integtests/pom.xml
+++ b/example/application/simpleapp/integtests/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.isis.example.application</groupId>
<artifactId>simpleapp</artifactId>
- <version>1.10.0-SNAPSHOT</version>
+ <version>1.11.0-SNAPSHOT</version>
</parent>
<artifactId>simpleapp-integtests</artifactId>
http://git-wip-us.apache.org/repos/asf/isis/blob/eb5dae4a/example/application/simpleapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/pom.xml b/example/application/simpleapp/pom.xml
index ff67e85..6a7582b 100644
--- a/example/application/simpleapp/pom.xml
+++ b/example/application/simpleapp/pom.xml
@@ -23,7 +23,7 @@
<groupId>org.apache.isis.example.application</groupId>
<artifactId>simpleapp</artifactId>
- <version>1.10.0-SNAPSHOT</version>
+ <version>1.11.0-SNAPSHOT</version>
<name>Simple App</name>
@@ -34,7 +34,7 @@
</prerequisites>
<properties>
- <isis.version>1.10.0</isis.version>
+ <isis.version>1.11.0-SNAPSHOT</isis.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
http://git-wip-us.apache.org/repos/asf/isis/blob/eb5dae4a/example/application/simpleapp/webapp/pom.xml
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/pom.xml b/example/application/simpleapp/webapp/pom.xml
index 7b1c591..e81c6a5 100644
--- a/example/application/simpleapp/webapp/pom.xml
+++ b/example/application/simpleapp/webapp/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.isis.example.application</groupId>
<artifactId>simpleapp</artifactId>
- <version>1.10.0-SNAPSHOT</version>
+ <version>1.11.0-SNAPSHOT</version>
</parent>
<artifactId>simpleapp-webapp</artifactId>
[3/6] isis git commit: ISIS-1242: fixing breadcrumb model so can
change title.
Posted by da...@apache.org.
ISIS-1242: fixing breadcrumb model so can change title.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c492e358
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c492e358
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c492e358
Branch: refs/heads/master
Commit: c492e3584da95e484772ca4536fb3ad29013a2b5
Parents: 49474d7
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Nov 9 22:50:09 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 10 16:46:56 2015 +0000
----------------------------------------------------------------------
.../model/mementos/PageParameterNames.java | 2 +-
.../widgets/breadcrumbs/BreadcrumbModel.java | 99 +++++++++++++-------
.../widgets/breadcrumbs/BreadcrumbPanel.java | 11 +--
3 files changed, 65 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/c492e358/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
index 75f1a64..77617c3 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/mementos/PageParameterNames.java
@@ -86,7 +86,7 @@ public enum PageParameterNames {
/**
* Returns the {@link #name()} formatted as
- * {@link Strings#camelCase(String) camel case}.
+ * {@link StringExtensions#asCamel(String) camel case}.
*
* <p>
* For example, <tt>ACTION_TYPE</tt> becomes <tt>actionType</tt>.
http://git-wip-us.apache.org/repos/asf/isis/blob/c492e358/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
index 6f58943..b3e5e94 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbModel.java
@@ -26,6 +26,10 @@ import com.google.common.collect.Maps;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+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.EntityModel;
@@ -36,7 +40,6 @@ public class BreadcrumbModel implements Serializable {
private static final int MAX_SIZE = 5;
private final Map<String, EntityModel> entityModelByOidStr = Maps.newHashMap();
- private final Map<EntityModel, String> titleByEntityModel = Maps.newHashMap();
private final Map<EntityModel, String> oidStrByEntityModel = Maps.newHashMap();
private final List<EntityModel> list = Lists.newArrayList();
@@ -51,33 +54,38 @@ public class BreadcrumbModel implements Serializable {
return;
}
- final String oidStr = oidStrFor(entityModel);
+ final String oidStr = oidStrFrom(entityModel);
- removeExisting(oidStr);
+ remove(oidStr);
addToStart(oidStr, entityModel);
trimTo(MAX_SIZE);
}
- private String oidStrFor(final EntityModel entityModel) {
+ private String oidStrFrom(final EntityModel entityModel) {
final PageParameters pageParameters = entityModel.getPageParametersWithoutUiHints();
- return PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
+ return oidStrFrom(pageParameters);
+ }
+
+ private String oidStrFrom(final PageParameters pageParameters) {
+ String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
+ if(oidStr == null) {
+ return null;
+ }
+ try {
+ final RootOid unmarshal = getOidMarshaller().unmarshal(oidStr, RootOid.class);
+ return unmarshal.enStringNoVersion(getOidMarshaller());
+ } catch(Exception ex) {
+ return null;
+ }
}
private void addToStart(final String oidStr, final EntityModel entityModel) {
entityModelByOidStr.put(oidStr, entityModel);
- titleByEntityModel.put(entityModel, entityModel.getTitle());
oidStrByEntityModel.put(entityModel, oidStr);
list.add(0, entityModel);
}
- private void removeExisting(final String oidStr) {
- final EntityModel existingModel = entityModelByOidStr.get(oidStr);
- if(existingModel != null) {
- remove(oidStr, existingModel);
- }
- }
-
private void trimTo(final int size) {
if(list.size() <= size) {
return;
@@ -89,42 +97,61 @@ public class BreadcrumbModel implements Serializable {
}
}
- private void remove(final String oidStr, final EntityModel model) {
- entityModelByOidStr.remove(oidStr);
- titleByEntityModel.remove(model);
- oidStrByEntityModel.remove(model);
- list.remove(model);
+ public String titleFor(final EntityModel model) {
+ return model.getObjectAdapterMemento().getObjectAdapter(AdapterManager.ConcurrencyChecking.NO_CHECK).titleString(null);
}
- public void remove(String oidStr) {
- EntityModel removedModel = entityModelByOidStr.remove(oidStr);
- if(removedModel != null) {
- remove(removedModel);
+ public EntityModel lookup(final String oidStr) {
+ if(oidStr == null) {
+ return null;
}
+ return entityModelByOidStr.get(oidStr);
}
- public void remove(EntityModel entityModel) {
- String oidStr = oidStrByEntityModel.get(entityModel);
- if(oidStr != null) {
- remove(oidStr, entityModel);
+ public void detach() {
+ for (EntityModel entityModel : list) {
+ entityModel.detach();
}
}
- public String titleFor(final EntityModel model) {
- return titleByEntityModel.get(model);
+ public Object getId(final EntityModel choice) {
+ try {
+ final PageParameters pageParameters = choice.getPageParameters();
+ final String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
+ return RootOid.deString(oidStr, getOidMarshaller());
+ } catch (Exception ex) {
+ remove(choice);
+ return null;
+ }
+
}
- public EntityModel lookup(String oidStr) {
- if(oidStr == null) {
- return null;
+
+ void remove(final String rootOid) {
+ final EntityModel existingModel = entityModelByOidStr.get(rootOid);
+ if(existingModel != null) {
+ remove(rootOid, existingModel);
}
- final EntityModel entityModel = entityModelByOidStr.get(oidStr);
- return entityModel;
}
- public void detach() {
- for (EntityModel entityModel : list) {
- entityModel.detach();
+ public void remove(final EntityModel entityModel) {
+ final String oidStr = oidStrByEntityModel.get(entityModel);
+ if(oidStr != null) {
+ remove(oidStr, entityModel);
}
}
+
+ private void remove(final String rootOid, final EntityModel model) {
+ entityModelByOidStr.remove(rootOid);
+ oidStrByEntityModel.remove(model);
+ list.remove(model);
+ }
+
+
+
+ protected OidMarshaller getOidMarshaller() {
+ return IsisContext.getOidMarshaller();
+ }
+
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c492e358/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
index 84b16c6..50c7367 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/breadcrumbs/BreadcrumbPanel.java
@@ -27,7 +27,6 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
-import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.wicketstuff.select2.Response;
import org.wicketstuff.select2.Select2Choice;
import org.wicketstuff.select2.Settings;
@@ -35,7 +34,6 @@ import org.wicketstuff.select2.TextChoiceProvider;
import org.apache.isis.core.commons.authentication.MessageBroker;
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.EntityModel;
import org.apache.isis.viewer.wicket.ui.errors.JGrowlUtil;
import org.apache.isis.viewer.wicket.ui.pages.entity.EntityPage;
@@ -70,14 +68,7 @@ public class BreadcrumbPanel extends PanelAbstract<IModel<Void>> {
@Override
protected Object getId(EntityModel choice) {
- try {
- final PageParameters pageParameters = choice.getPageParameters();
- final String oidStr = PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
- return oidStr;
- } catch (Exception ex) {
- breadcrumbModel.remove(choice);
- return null;
- }
+ return breadcrumbModel.getId(choice);
}
@Override
[2/6] isis git commit: Merge branch 'ISIS-1232'
Posted by da...@apache.org.
Merge branch 'ISIS-1232'
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/49474d7f
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/49474d7f
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/49474d7f
Branch: refs/heads/master
Commit: 49474d7f62e5199c95aa516c30e271c6b36acc8b
Parents: 06630df 0df5504
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 10 16:46:19 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 10 16:46:19 2015 +0000
----------------------------------------------------------------------
.../domainobjects/DomainObjectReprRenderer.java | 17 ++++++++++-------
.../ObjectCollectionReprRenderer.java | 12 +++++++-----
.../domainobjects/ObjectPropertyReprRenderer.java | 12 ++++++++----
.../rendering/LinkFollowSpecsTest_follow.java | 14 ++++++++++++++
.../restfulobjects/server/ResourceContext.java | 8 +++++---
5 files changed, 44 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
[6/6] isis git commit: ISIS-1244: extended RepresentationService to
specify intent when render object (either JUST_CREATED or ALREADY_PERSISTENT)
Posted by da...@apache.org.
ISIS-1244: extended RepresentationService to specify intent when render object (either JUST_CREATED or ALREADY_PERSISTENT)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a7d82eb3
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a7d82eb3
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a7d82eb3
Branch: refs/heads/master
Commit: a7d82eb3864e4f0ad205249b329479c6010cda05
Parents: eb5dae4
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 10 23:07:28 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 10 23:07:28 2015 +0000
----------------------------------------------------------------------
.../service/RepresentationService.java | 23 +++++++++++++++++++-
.../RepresentationServiceForRestfulObjects.java | 13 +++++++++++
.../DomainObjectResourceServerside.java | 7 ++++--
.../server/resources/DomainResourceHelper.java | 15 ++++++++++++-
.../server/resources/ResourceAbstract.java | 1 +
5 files changed, 55 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
index b49fcf4..30fa1b7 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationService.java
@@ -47,12 +47,33 @@ import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndPr
*/
public interface RepresentationService {
+ public enum Intent {
+ /**
+ * ie return a 201
+ */
+ JUST_CREATED,
+ /**
+ * ie return a 200
+ */
+ ALREADY_PERSISTENT
+ }
+
+ /**
+ * @deprecated - use {@link #objectRepresentation(Context, ObjectAdapter, Intent)}.
+ */
+ @Deprecated
@Programmatic
Response objectRepresentation(
Context resourceContext,
ObjectAdapter objectAdapter);
@Programmatic
+ Response objectRepresentation(
+ Context resourceContext,
+ ObjectAdapter objectAdapter,
+ Intent intent);
+
+ @Programmatic
Response propertyDetails(
Context rendererContext,
ObjectAndProperty objectAndProperty,
@@ -87,7 +108,7 @@ public interface RepresentationService {
public static interface Context4 extends Context3, RendererContext4 {
InteractionInitiatedBy getInteractionInitiatedBy();
}
- public static interface Context5 extends Context3, RendererContext5 {
+ public static interface Context5 extends Context4, RendererContext5 {
public SpecificationLoader getSpecificationLoader();
public ServicesInjector getServicesInjector();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java
index adaad37..7ca8374 100644
--- a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java
+++ b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceForRestfulObjects.java
@@ -60,6 +60,15 @@ public class RepresentationServiceForRestfulObjects implements RepresentationSer
public Response objectRepresentation(
final Context rendererContext,
final ObjectAdapter objectAdapter) {
+ return objectRepresentation(rendererContext, objectAdapter, Intent.ALREADY_PERSISTENT);
+ }
+
+ @Override
+ @Programmatic
+ public Response objectRepresentation(
+ final Context rendererContext,
+ final ObjectAdapter objectAdapter,
+ final Intent intent) {
ResponseBuilder responseBuilder = null;
@@ -90,6 +99,10 @@ public class RepresentationServiceForRestfulObjects implements RepresentationSer
}
}
+ if(intent == Intent.JUST_CREATED) {
+ responseBuilder.status(Response.Status.CREATED);
+ }
+
return buildResponse(responseBuilder);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
index 8531a59..75691d9 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainObjectResourceServerside.java
@@ -47,6 +47,7 @@ import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse.HttpS
import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainObjectResource;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.MemberReprMode;
+import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
import org.apache.isis.viewer.restfulobjects.rendering.service.conneg.PrettyPrinting;
import org.apache.isis.viewer.restfulobjects.rendering.util.Util;
@@ -99,9 +100,10 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
}
getResourceContext().getPersistenceSession().makePersistentInTransaction(objectAdapter);
- return getDomainResourceHelper(objectAdapter).objectRepresentation();
+ return getDomainResourceHelper(objectAdapter).objectRepresentation(RepresentationService.Intent.JUST_CREATED);
}
+
// //////////////////////////////////////////////////////////
// domain object
// //////////////////////////////////////////////////////////
@@ -123,10 +125,11 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
return getDomainResourceHelper(objectAdapter).objectRepresentation();
}
- private DomainResourceHelper getDomainResourceHelper(ObjectAdapter objectAdapter) {
+ private DomainResourceHelper getDomainResourceHelper(final ObjectAdapter objectAdapter) {
return new DomainResourceHelper(getResourceContext(), objectAdapter);
}
+
@Override
@PUT
@Path("/{domainType}/{instanceId}")
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
index 1f652d9..da73995 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
@@ -214,9 +214,22 @@ public class DomainResourceHelper {
/**
* Simply delegates to the {@link org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService} to
* render a representation of the object.
+ *
+ * @deprecated - use {@link #objectRepresentation(RepresentationService.Intent)}
*/
+ @Deprecated
public Response objectRepresentation() {
- return representationService.objectRepresentation(representationServiceContext, objectAdapter);
+ return representationService
+ .objectRepresentation(representationServiceContext, objectAdapter);
+ }
+
+ /**
+ * Simply delegates to the {@link org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService} to
+ * render a representation of the object.
+ */
+ public Response objectRepresentation(final RepresentationService.Intent intent) {
+ return representationService
+ .objectRepresentation(representationServiceContext, objectAdapter, intent);
}
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/a7d82eb3/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
----------------------------------------------------------------------
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
index 46c3e58..f8c28ee 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/ResourceAbstract.java
@@ -124,6 +124,7 @@ public abstract class ResourceAbstract {
return resourceContext;
}
+
// //////////////////////////////////////////////////////////////
// Isis integration
// //////////////////////////////////////////////////////////////
[4/6] isis git commit: Merge branch 'ISIS-1242'
Posted by da...@apache.org.
Merge branch 'ISIS-1242'
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/6e0ec978
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/6e0ec978
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/6e0ec978
Branch: refs/heads/master
Commit: 6e0ec9785065aca0757bf01e988359236ba98ae1
Parents: 49474d7 c492e35
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 10 16:47:09 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 10 16:47:09 2015 +0000
----------------------------------------------------------------------
.../model/mementos/PageParameterNames.java | 2 +-
.../widgets/breadcrumbs/BreadcrumbModel.java | 99 +++++++++++++-------
.../widgets/breadcrumbs/BreadcrumbPanel.java | 11 +--
3 files changed, 65 insertions(+), 47 deletions(-)
----------------------------------------------------------------------