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 2013/09/05 13:00:15 UTC
[2/2] git commit: ISIS-503: can now order contributed members
ISIS-503: can now order contributed members
* FacetProcessor extended to be able to request sorting on an individual object member
* introduced new MemberOrderingFacetFactory interface to identify the facet factories that do this work
* ObjectSpecDefault/Abstract now call the FacetProcessor whenever the contributed actions/associations are computed
* ObjectActionContributee, OneToOneAssociationContributee and OneToManyAssociationContributee now have their own copy of FacetHolderImpl (initialized with the facets from the underlying contributed action), so that can sort them without side-effects
* fixed bug such that contributed actions that are associated to contributed associations are also suppressed from the header
Also:
* ObjectAction.isAlwaysHidden redefined, only true if never visible anywhere and always
And also:
* renamed ObjectAssociationFilters -> ObjectAssociation.Filters
* renamed ObjectActionFilters -> ObjectAction.Filters
* renamed ObjectActionParameterFilters -> ObjectActionParameter.Filters
And also:
* enhanced ToDoItem to demonstrate this capability
* ToDoItemContributions#next and ToDoItemContributions#previous added
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c009dec5
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c009dec5
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c009dec5
Branch: refs/heads/master
Commit: c009dec571e84de2ea304807d43558ec08212111
Parents: 242739a
Author: Dan Haywood <da...@apache.org>
Authored: Thu Sep 5 11:59:39 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Sep 5 11:59:39 2013 +0100
----------------------------------------------------------------------
...toryFromJdoColumnAnnotationFacetFactory.java | 3 +-
.../combined/FormWithTableSpecification.java | 3 +-
.../dnd/combined/SplitViewSpecification.java | 3 +-
.../dnd/combined/TwoPartViewSpecification.java | 3 +-
.../viewer/dnd/form/ExpandableViewBorder.java | 3 +-
.../dnd/table/AbstractTableSpecification.java | 3 +-
.../isis/viewer/dnd/table/TableAxisImpl.java | 3 +-
.../dnd/tree/ClosedObjectNodeSpecification.java | 3 +-
.../dnd/tree/OpenObjectNodeSpecification.java | 3 +-
.../viewer/dnd/view/action/OptionFactory.java | 1 -
.../dnd/view/composite/ObjectFieldBuilder.java | 3 +-
.../dnd/view/content/AbstractObjectContent.java | 5 +-
.../server/resources/DomainResourceHelper.java | 3 +-
.../scimpi/dispatcher/edit/EditAction.java | 3 +-
.../dispatcher/view/debug/DebugObjectView.java | 3 +-
.../view/display/AbstractFormView.java | 3 +-
.../view/display/AbstractTableView.java | 3 +-
.../dispatcher/view/display/LongFormView.java | 3 +-
.../scimpi/dispatcher/view/edit/EditObject.java | 3 +-
.../scimpi/dispatcher/view/simple/EditLink.java | 3 +-
.../dispatcher/view/simple/ObjectLink.java | 3 +-
.../dispatcher/view/simple/RemoveElement.java | 3 +-
.../wicket/model/models/BookmarkTreeNode.java | 3 +-
.../additionallinks/EntityActionUtil.java | 3 +-
.../CollectionContentsAsAjaxTablePanel.java | 9 +-
.../collections/EntityCollectionsPanel.java | 3 +-
.../entity/header/EntityHeaderPanel.java | 10 +--
.../entity/properties/EntityPropertiesForm.java | 5 +-
.../widgets/cssmenu/CssMenuBuilder.java | 4 +-
.../isis/core/metamodel/facetapi/FacetUtil.java | 8 ++
.../core/metamodel/facets/FacetFactory.java | 15 +++-
.../facets/MemberOrderingFacetFactory.java | 79 ++++++++++++++++
.../autocomplete/AutoCompleteFacetAbstract.java | 3 +-
.../json/LayoutMetadataReaderFromJson.java | 8 +-
.../DeveloperUtilitiesServiceDefault.java | 5 +-
.../metamodel/spec/SpecificationContext.java | 15 +++-
.../metamodel/spec/feature/ObjectAction.java | 8 +-
.../spec/feature/ObjectActionFilters.java | 58 ------------
.../spec/feature/ObjectActionParameter.java | 15 ++++
.../spec/feature/ObjectAssociation.java | 10 +--
.../spec/feature/ObjectAssociationFilters.java | 69 --------------
.../metamodel/spec/feature/ObjectMember.java | 2 +-
.../spec/feature/ObjectParameterFilters.java | 39 --------
.../specloader/ObjectReflectorDefault.java | 2 +-
.../facetprocessor/FacetProcessor.java | 39 ++++++++
.../specimpl/ObjectActionContributee.java | 80 +++++++++++++----
.../specloader/specimpl/ObjectActionImpl.java | 1 -
.../specimpl/ObjectMemberAbstract.java | 2 +-
.../specimpl/ObjectSpecificationAbstract.java | 64 ++++++++-----
.../OneToManyAssociationContributee.java | 94 +++++++++++++-------
.../OneToOneAssociationContributee.java | 73 ++++++++++++---
.../dflt/ObjectSpecificationDefault.java | 20 ++---
.../ObjectSpecificationForFreeStandingList.java | 1 +
.../apache/isis/core/metamodel/util/Dump.java | 2 +-
.../members/order/MemberOrderFacetFactory.java | 42 ++++++---
.../order/MemberOrderFacetProperties.java | 3 +-
.../MemberGroupLayoutFacetFactory.java | 3 +-
.../ObjectValidPropertiesFacetImpl.java | 3 +-
...jectAssociationFiltersTest_visibleWhere.java | 3 +-
.../feature/ObjectAssociationFiltersTests.java | 2 +-
.../specimpl/ObjectAssociationAbstractTest.java | 1 -
...ectAssociationAbstractTest_alwaysHidden.java | 17 ++--
.../testspec/ObjectSpecificationStub.java | 5 +-
.../system/transaction/IsisTransaction.java | 7 +-
.../dom/src/main/java/dom/todo/ToDoItem.java | 12 ---
.../src/main/java/dom/todo/ToDoItem.layout.json | 15 +++-
.../java/dom/todo/ToDoItemContributions.java | 54 ++++++++---
67 files changed, 560 insertions(+), 422 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java b/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
index ce668ae..d03d51d 100644
--- a/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
+++ b/component/objectstore/jdo/jdo-metamodel/src/main/java/org/apache/isis/objectstore/jdo/metamodel/facets/prop/column/MandatoryFromJdoColumnAnnotationFacetFactory.java
@@ -36,7 +36,6 @@ import org.apache.isis.core.metamodel.facets.mandatory.MandatoryFacetDefault;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting;
import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorVisiting.Visitor;
@@ -119,7 +118,7 @@ public class MandatoryFromJdoColumnAnnotationFacetFactory extends FacetFactoryAb
private void validate(ObjectSpecification objectSpec, ValidationFailures validationFailures) {
- List<ObjectAssociation> associations = objectSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.PROPERTIES);
+ List<ObjectAssociation> associations = objectSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.PROPERTIES);
for (ObjectAssociation association : associations) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/FormWithTableSpecification.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/FormWithTableSpecification.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/FormWithTableSpecification.java
index b8a5552..4c10e78 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/FormWithTableSpecification.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/FormWithTableSpecification.java
@@ -27,7 +27,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.dnd.form.FormSpecification;
import org.apache.isis.viewer.dnd.table.InternalTableSpecification;
@@ -77,7 +76,7 @@ public class FormWithTableSpecification extends SplitViewSpecification {
final ObjectSpecification spec = content.getSpecification();
final ObjectAdapter target = content.getAdapter();
final AuthenticationSession session = IsisContext.getAuthenticationSession();
- final List<ObjectAssociation> fields = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(session, target, where));
+ final List<ObjectAssociation> fields = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, target, where));
for (final ObjectAssociation field : fields) {
if (field.isOneToManyAssociation()) {
return Toolkit.getContentFactory().createFieldContent(field, target);
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/SplitViewSpecification.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/SplitViewSpecification.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/SplitViewSpecification.java
index 02fbe5f..66c5a4e 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/SplitViewSpecification.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/SplitViewSpecification.java
@@ -28,7 +28,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.dnd.view.Axes;
import org.apache.isis.viewer.dnd.view.Content;
@@ -76,7 +75,7 @@ public abstract class SplitViewSpecification extends CompositeViewSpecification
final ObjectSpecification spec = content.getSpecification();
final ObjectAdapter target = content.getAdapter();
final AuthenticationSession session = IsisContext.getAuthenticationSession();
- final List<ObjectAssociation> fields = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(session, target, where));
+ final List<ObjectAssociation> fields = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, target, where));
final List<ObjectAssociation> selectableFields = new ArrayList<ObjectAssociation>();
for (final ObjectAssociation field : fields) {
if (validField(field)) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/TwoPartViewSpecification.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/TwoPartViewSpecification.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/TwoPartViewSpecification.java
index 9c472f0..302451e 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/TwoPartViewSpecification.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/combined/TwoPartViewSpecification.java
@@ -26,7 +26,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.dnd.form.FormSpecification;
import org.apache.isis.viewer.dnd.form.InternalFormSpecification;
@@ -70,7 +69,7 @@ public class TwoPartViewSpecification extends SplitViewSpecification {
final ObjectSpecification spec = content.getSpecification();
final ObjectAdapter target = content.getAdapter();
final AuthenticationSession session = IsisContext.getAuthenticationSession();
- final List<ObjectAssociation> fields = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(session, target, where));
+ final List<ObjectAssociation> fields = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, target, where));
for (final ObjectAssociation field : fields) {
if (validField(field)) {
return Toolkit.getContentFactory().createFieldContent(field, target);
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/form/ExpandableViewBorder.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/form/ExpandableViewBorder.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/form/ExpandableViewBorder.java
index 46f911f..ff9a757 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/form/ExpandableViewBorder.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/form/ExpandableViewBorder.java
@@ -28,7 +28,6 @@ import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.dnd.drawing.Canvas;
@@ -206,7 +205,7 @@ public class ExpandableViewBorder extends AbstractBorder {
private int canOpenObject(final Content content) {
final ObjectAdapter object = ((ObjectContent) content).getObject();
if (object != null) {
- final List<ObjectAssociation> fields = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(IsisContext.getAuthenticationSession(), object, where));
+ final List<ObjectAssociation> fields = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(IsisContext.getAuthenticationSession(), object, where));
for (int i = 0; i < fields.size(); i++) {
if (fields.get(i).isOneToManyAssociation()) {
return CAN_OPEN;
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/AbstractTableSpecification.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/AbstractTableSpecification.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/AbstractTableSpecification.java
index 911904c..427925f 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/AbstractTableSpecification.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/AbstractTableSpecification.java
@@ -24,7 +24,6 @@ import java.util.List;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.viewer.dnd.view.Axes;
import org.apache.isis.viewer.dnd.view.Content;
import org.apache.isis.viewer.dnd.view.View;
@@ -80,7 +79,7 @@ public abstract class AbstractTableSpecification extends CompositeViewSpecificat
} else {
final CollectionContent collectionContent = (CollectionContent) requirement.getContent();
final ObjectSpecification elementSpecification = collectionContent.getElementSpecification();
- final List<ObjectAssociation> fields = elementSpecification.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.WHEN_VISIBLE_IRRESPECTIVE_OF_WHERE);
+ final List<ObjectAssociation> fields = elementSpecification.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.VISIBLE_AT_LEAST_SOMETIMES);
for (int i = 0; i < fields.size(); i++) {
if (fields.get(i).isOneToOneAssociation()) {
return true;
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/TableAxisImpl.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/TableAxisImpl.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/TableAxisImpl.java
index 91c8666..8df3255 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/TableAxisImpl.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/table/TableAxisImpl.java
@@ -27,7 +27,6 @@ import org.apache.isis.core.commons.lang.ToString;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.viewer.dnd.view.View;
import org.apache.isis.viewer.dnd.view.collection.CollectionContent;
@@ -43,7 +42,7 @@ public class TableAxisImpl implements TableAxis {
// TODO create axis first, then after view built set up the axis
// details?
final ObjectSpecification elementSpecification = (content).getElementSpecification();
- final List<ObjectAssociation> accessibleFields = elementSpecification.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.WHEN_VISIBLE_IRRESPECTIVE_OF_WHERE);
+ final List<ObjectAssociation> accessibleFields = elementSpecification.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.VISIBLE_AT_LEAST_SOMETIMES);
this.columns = tableFields(accessibleFields, content);
widths = new int[columns.size()];
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/ClosedObjectNodeSpecification.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/ClosedObjectNodeSpecification.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/ClosedObjectNodeSpecification.java
index 31eafae..2363173 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/ClosedObjectNodeSpecification.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/ClosedObjectNodeSpecification.java
@@ -26,7 +26,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.object.bounded.BoundedFacetUtils;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.dnd.view.Axes;
import org.apache.isis.viewer.dnd.view.Content;
@@ -68,7 +67,7 @@ class ClosedObjectNodeSpecification extends NodeSpecification {
@Override
public int canOpen(final Content content) {
final ObjectAdapter object = ((ObjectContent) content).getObject();
- final List<ObjectAssociation> fields = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(IsisContext.getAuthenticationSession(), object, where));
+ final List<ObjectAssociation> fields = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(IsisContext.getAuthenticationSession(), object, where));
for (int i = 0; i < fields.size(); i++) {
if (fields.get(i).isOneToManyAssociation()) {
return CAN_OPEN;
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/OpenObjectNodeSpecification.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/OpenObjectNodeSpecification.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/OpenObjectNodeSpecification.java
index 6d325c1..43e3a71 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/OpenObjectNodeSpecification.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/tree/OpenObjectNodeSpecification.java
@@ -25,7 +25,6 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.dnd.view.Axes;
import org.apache.isis.viewer.dnd.view.Content;
@@ -72,7 +71,7 @@ public class OpenObjectNodeSpecification extends CompositeNodeSpecification {
public boolean canDisplay(final ViewRequirement requirement) {
if (requirement.isObject() && requirement.hasReference()) {
final ObjectAdapter object = requirement.getAdapter();
- final List<ObjectAssociation> fields = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(IsisContext.getAuthenticationSession(), object, where));
+ final List<ObjectAssociation> fields = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(IsisContext.getAuthenticationSession(), object, where));
for (int i = 0; i < fields.size(); i++) {
if (fields.get(i).isOneToManyAssociation()) {
return true;
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/action/OptionFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/action/OptionFactory.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/action/OptionFactory.java
index 19b45b8..55c9e56 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/action/OptionFactory.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/action/OptionFactory.java
@@ -19,7 +19,6 @@
package org.apache.isis.viewer.dnd.view.action;
-import java.util.Arrays;
import java.util.List;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/composite/ObjectFieldBuilder.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/composite/ObjectFieldBuilder.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/composite/ObjectFieldBuilder.java
index 458babb..b8f2d9f 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/composite/ObjectFieldBuilder.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/composite/ObjectFieldBuilder.java
@@ -33,7 +33,6 @@ import org.apache.isis.core.metamodel.adapter.util.AdapterUtils;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.dnd.view.Axes;
import org.apache.isis.viewer.dnd.view.Content;
@@ -73,7 +72,7 @@ public class ObjectFieldBuilder extends AbstractViewBuilder {
LOG.debug("build view " + view + " for " + object);
final ObjectSpecification spec = object.getSpecification();
- final Filter<ObjectAssociation> filter = ObjectAssociationFilters.dynamicallyVisible(IsisContext.getAuthenticationSession(), object, where);
+ final Filter<ObjectAssociation> filter = ObjectAssociation.Filters.dynamicallyVisible(IsisContext.getAuthenticationSession(), object, where);
final List<ObjectAssociation> flds = spec.getAssociations(Contributed.EXCLUDED, filter);
if (view.getSubviews().length == 0) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/content/AbstractObjectContent.java
----------------------------------------------------------------------
diff --git a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/content/AbstractObjectContent.java b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/content/AbstractObjectContent.java
index 1b12ac6..6586e08 100644
--- a/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/content/AbstractObjectContent.java
+++ b/component/viewer/dnd/impl/src/main/java/org/apache/isis/viewer/dnd/view/content/AbstractObjectContent.java
@@ -38,7 +38,6 @@ import org.apache.isis.core.metamodel.spec.Persistability;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.Persistor;
@@ -168,7 +167,7 @@ public abstract class AbstractObjectContent extends AbstractContent implements O
// TODO: use Facet for this test instead.
return new Veto("Can't set field in persistent object with reference to non-persistent object");
}
- final List<ObjectAssociation> fields = targetAdapter.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(IsisContext.getAuthenticationSession(), targetAdapter, where));
+ final List<ObjectAssociation> fields = targetAdapter.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(IsisContext.getAuthenticationSession(), targetAdapter, where));
for (final ObjectAssociation fld : fields) {
if (!fld.isOneToOneAssociation()) {
continue;
@@ -216,7 +215,7 @@ public abstract class AbstractObjectContent extends AbstractContent implements O
return action.execute(target, new ObjectAdapter[] { source });
}
- final List<ObjectAssociation> associations = target.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(IsisContext.getAuthenticationSession(), target, where));
+ final List<ObjectAssociation> associations = target.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(IsisContext.getAuthenticationSession(), target, where));
for (int i = 0; i < associations.size(); i++) {
final ObjectAssociation association = associations.get(i);
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java b/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
index b76261e..4c8a2e4 100644
--- a/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
+++ b/component/viewer/restfulobjects/server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/DomainResourceHelper.java
@@ -46,7 +46,6 @@ import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
@@ -104,7 +103,7 @@ public final class DomainResourceHelper {
static boolean copyOverProperties(final RendererContext resourceContext, final ObjectAdapter objectAdapter, final JsonRepresentation propertiesList) {
final ObjectSpecification objectSpec = objectAdapter.getSpecification();
- final List<ObjectAssociation> properties = objectSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.PROPERTIES);
+ final List<ObjectAssociation> properties = objectSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.PROPERTIES);
boolean allOk = true;
for (final ObjectAssociation association : properties) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java
index 5c999dd..d069ea3 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/edit/EditAction.java
@@ -36,7 +36,6 @@ import org.apache.isis.core.metamodel.facets.object.parseable.TextEntryParseExce
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.transaction.MessageBroker;
@@ -79,7 +78,7 @@ public class EditAction implements Action {
final ObjectAdapter adapter = context.getMappedObject(objectId);
- final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(session, adapter, where));
+ final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, adapter, where));
for (final ObjectAssociation objectAssociation : fields) {
if (objectAssociation.isVisible(session, adapter, where).isVetoed()) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/DebugObjectView.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/DebugObjectView.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/DebugObjectView.java
index 75b82d5..020377d 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/DebugObjectView.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/debug/DebugObjectView.java
@@ -28,7 +28,6 @@ import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.scimpi.dispatcher.AbstractObjectProcessor;
import org.apache.isis.viewer.scimpi.dispatcher.context.RequestContext.Scope;
@@ -60,7 +59,7 @@ public class DebugObjectView extends AbstractObjectProcessor {
request.appendAsHtmlEncoded("#" + version.sequence() + " - " + version.getUser() + " (" + version.getTime() + ")" );
request.appendHtml("</div>");
- final List<ObjectAssociation> fields = specification.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.ALL);
+ final List<ObjectAssociation> fields = specification.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.ALL);
int row = 1;
for (int i = 0; i < fields.size(); i++) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractFormView.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractFormView.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractFormView.java
index 0c4d0f0..e88f89a 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractFormView.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractFormView.java
@@ -27,7 +27,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.scimpi.dispatcher.AbstractObjectProcessor;
import org.apache.isis.viewer.scimpi.dispatcher.processor.Request;
@@ -61,7 +60,7 @@ public abstract class AbstractFormView extends AbstractObjectProcessor {
request.processUtilCloseTag();
final AuthenticationSession session = IsisContext.getAuthenticationSession();
- List<ObjectAssociation> associations = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(session, object, Where.OBJECT_FORMS));
+ List<ObjectAssociation> associations = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, object, Where.OBJECT_FORMS));
final List<ObjectAssociation> fields = tag.includedFields(associations);
final LinkedObject[] linkFields = tag.linkedFields(fields);
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractTableView.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractTableView.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractTableView.java
index ed87e18..e5a2887 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractTableView.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/AbstractTableView.java
@@ -29,7 +29,6 @@ import org.apache.isis.core.metamodel.facets.typeof.TypeOfFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.Persistor;
import org.apache.isis.viewer.scimpi.dispatcher.AbstractElementProcessor;
@@ -89,7 +88,7 @@ public abstract class AbstractTableView extends AbstractElementProcessor {
rowClasses = rowClassesList.split("[,|/]");
}
- final List<ObjectAssociation> allFields = elementSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.WHEN_VISIBLE_IRRESPECTIVE_OF_WHERE);
+ final List<ObjectAssociation> allFields = elementSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.VISIBLE_AT_LEAST_SOMETIMES);
final TableContentWriter rowBuilder = createRowBuilder(request, context, isFieldEditable ? parentObjectId : null, allFields, collection);
write(request, collection, summary, rowBuilder, tableId, tableClass, rowClasses);
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/LongFormView.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/LongFormView.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/LongFormView.java
index 0ea6d5a..5630bcb 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/LongFormView.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/display/LongFormView.java
@@ -25,7 +25,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.scimpi.dispatcher.processor.Request;
import org.apache.isis.viewer.scimpi.dispatcher.view.display.TableView.SimpleTableBuilder;
@@ -47,7 +46,7 @@ public class LongFormView extends AbstractFormView {
IsisContext.getPersistenceSession().resolveField(object, field);
final ObjectAdapter collection = field.get(object);
final ObjectSpecification elementSpec = collection.getElementSpecification();
- final List<ObjectAssociation> fields = elementSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.WHEN_VISIBLE_IRRESPECTIVE_OF_WHERE);
+ final List<ObjectAssociation> fields = elementSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.VISIBLE_AT_LEAST_SOMETIMES);
if (noColumnsString.equalsIgnoreCase("all")) {
noColumns = fields.size();
} else {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java
index fb35349..90dd604 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/edit/EditObject.java
@@ -30,7 +30,6 @@ import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.progmodel.facets.object.choices.enums.EnumFacet;
import org.apache.isis.core.progmodel.facets.value.booleans.BooleanValueFacet;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -113,7 +112,7 @@ public class EditObject extends AbstractElementProcessor {
request.processUtilCloseTag();
final AuthenticationSession session = IsisContext.getAuthenticationSession();
- List<ObjectAssociation> viewFields = specification.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(session, object, where));
+ List<ObjectAssociation> viewFields = specification.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, object, where));
viewFields = containedBlock.includedFields(viewFields);
final InputField[] formFields = createFields(viewFields);
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/EditLink.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/EditLink.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/EditLink.java
index e7e6162..ab43eb6 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/EditLink.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/EditLink.java
@@ -29,7 +29,6 @@ import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.scimpi.dispatcher.Dispatcher;
import org.apache.isis.viewer.scimpi.dispatcher.processor.Request;
@@ -47,7 +46,7 @@ public class EditLink extends AbstractLink {
protected boolean valid(final Request request, final ObjectAdapter adapter) {
final ObjectSpecification specification = adapter.getSpecification();
final AuthenticationSession session = IsisContext.getAuthenticationSession();
- final List<ObjectAssociation> visibleFields = specification.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(session, adapter, where));
+ final List<ObjectAssociation> visibleFields = specification.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, adapter, where));
final ImmutableFacet facet = specification.getFacet(ImmutableFacet.class);
final boolean isImmutable = facet != null && facet.when() == When.ALWAYS;
final boolean isImmutableOncePersisted = facet != null && facet.when() == When.ONCE_PERSISTED && adapter.representsPersistent();
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/ObjectLink.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/ObjectLink.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/ObjectLink.java
index cbd2900..f2726bf 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/ObjectLink.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/ObjectLink.java
@@ -26,7 +26,6 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.scimpi.dispatcher.Dispatcher;
import org.apache.isis.viewer.scimpi.dispatcher.processor.Request;
@@ -43,7 +42,7 @@ public class ObjectLink extends AbstractLink {
@Override
protected boolean valid(final Request request, final ObjectAdapter object) {
final AuthenticationSession session = IsisContext.getAuthenticationSession();
- final List<ObjectAssociation> visibleFields = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.dynamicallyVisible(session, object, where));
+ final List<ObjectAssociation> visibleFields = object.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(session, object, where));
return visibleFields.size() > 0;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/RemoveElement.java
----------------------------------------------------------------------
diff --git a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/RemoveElement.java b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/RemoveElement.java
index d0f7fd5..56ed442 100644
--- a/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/RemoveElement.java
+++ b/component/viewer/scimpi/dispatcher/src/main/java/org/apache/isis/viewer/scimpi/dispatcher/view/simple/RemoveElement.java
@@ -28,7 +28,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.scimpi.dispatcher.AbstractElementProcessor;
@@ -133,7 +132,7 @@ public class RemoveElement extends AbstractElementProcessor {
// TODO check is valid to remove element
final AuthenticationSession session = IsisContext.getAuthenticationSession();
- final Filter<ObjectAssociation> filter = ObjectAssociationFilters.dynamicallyVisible(session, adapter, where);
+ final Filter<ObjectAssociation> filter = ObjectAssociation.Filters.dynamicallyVisible(session, adapter, where);
final List<ObjectAssociation> visibleFields = adapter.getSpecification().getAssociations(Contributed.EXCLUDED, filter);
if (visibleFields.size() == 0) {
return false;
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
index fa99d00..a4cda1c 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/BookmarkTreeNode.java
@@ -32,7 +32,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.mementos.PageParameterNames;
@@ -116,7 +115,7 @@ public class BookmarkTreeNode implements Serializable {
if(candidateBookmarkableModel instanceof EntityModel) {
EntityModel entityModel = (EntityModel) candidateBookmarkableModel;
final ObjectAdapter candidateAdapter = entityModel.getObject();
- final List<ObjectAssociation> properties = candidateAdapter.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.REFERENCE_PROPERTIES);
+ final List<ObjectAssociation> properties = candidateAdapter.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.REFERENCE_PROPERTIES);
for (ObjectAssociation objectAssoc : properties) {
final ObjectAdapter possibleParentAdapter = objectAssoc.get(candidateAdapter);
if(possibleParentAdapter == null) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
index 9c6fe5a..dac7df2 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/EntityActionUtil.java
@@ -40,7 +40,6 @@ import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
@@ -86,7 +85,7 @@ public final class EntityActionUtil {
private static Filter<ObjectAction> dynamicallyVisibleFor(final ObjectAdapter adapter) {
final AuthenticationSessionProvider asa = (AuthenticationSessionProvider) Session.get();
AuthenticationSession authSession = asa.getAuthenticationSession();
- return ObjectActionFilters.dynamicallyVisible(authSession, adapter, Where.ANYWHERE);
+ return ObjectAction.Filters.dynamicallyVisible(authSession, adapter, Where.ANYWHERE);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
index d808f00..0becb33 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsAsAjaxTablePanel.java
@@ -43,10 +43,7 @@ import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.viewer.wicket.model.common.SelectionHandler;
import org.apache.isis.viewer.wicket.model.mementos.ObjectAdapterMemento;
@@ -66,7 +63,7 @@ import org.apache.isis.viewer.wicket.ui.panels.PanelAbstract;
*/
public class CollectionContentsAsAjaxTablePanel extends PanelAbstract<EntityCollectionModel> {
- private static final Predicate<ObjectAction> BULK = Filters.asPredicate(ObjectActionFilters.bulk());
+ private static final Predicate<ObjectAction> BULK = Filters.asPredicate(ObjectAction.Filters.bulk());
private static final long serialVersionUID = 1L;
@@ -198,8 +195,8 @@ public class CollectionContentsAsAjaxTablePanel extends PanelAbstract<EntityColl
@SuppressWarnings("unchecked")
final Filter<ObjectAssociation> filter = Filters.and(
- ObjectAssociationFilters.PROPERTIES,
- ObjectAssociationFilters.staticallyVisible(getModel().isParented()? Where.PARENTED_TABLES: Where.STANDALONE_TABLES),
+ ObjectAssociation.Filters.PROPERTIES,
+ ObjectAssociation.Filters.staticallyVisible(getModel().isParented()? Where.PARENTED_TABLES: Where.STANDALONE_TABLES),
associationDoesNotReferenceParent(parentSpecIfAny));
final List<? extends ObjectAssociation> propertyList = typeOfSpec.getAssociations(Contributed.INCLUDED, filter);
for (final ObjectAssociation property : propertyList) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
index 34651ee..d255445 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/collections/EntityCollectionsPanel.java
@@ -34,7 +34,6 @@ import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.viewer.wicket.model.models.EntityModel;
import org.apache.isis.viewer.wicket.ui.components.collection.CollectionPanel;
@@ -124,7 +123,7 @@ public class EntityCollectionsPanel extends PanelAbstract<EntityModel> {
@SuppressWarnings("unchecked")
private Filter<ObjectAssociation> visibleCollectionsFilter(final ObjectAdapter adapter) {
- return Filters.and(ObjectAssociationFilters.COLLECTIONS, ObjectAssociationFilters.dynamicallyVisible(getAuthenticationSession(), adapter, Where.PARENTED_TABLES));
+ return Filters.and(ObjectAssociation.Filters.COLLECTIONS, ObjectAssociation.Filters.dynamicallyVisible(getAuthenticationSession(), adapter, Where.PARENTED_TABLES));
}
private void requestRepaintPanel(final AjaxRequestTarget target) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
index 5cb0729..9593147 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/header/EntityHeaderPanel.java
@@ -36,8 +36,6 @@ import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociations;
import org.apache.isis.core.runtime.system.DeploymentType;
@@ -135,13 +133,13 @@ public class EntityHeaderPanel extends PanelAbstract<EntityModel> implements Act
final ObjectSpecification adapterSpec = adapter.getSpecification();
@SuppressWarnings("unchecked")
final List<ObjectAction> userActions = adapterSpec.getObjectActions(actionType, Contributed.INCLUDED,
- Filters.and(memberOrderNameNotCollection(adapterSpec), dynamicallyVisibleFor(adapter)));
+ Filters.and(memberOrderNameNotAssociation(adapterSpec), dynamicallyVisibleFor(adapter)));
topLevelActions.addAll(userActions);
}
- private Filter<ObjectAction> memberOrderNameNotCollection(final ObjectSpecification adapterSpec) {
+ private Filter<ObjectAction> memberOrderNameNotAssociation(final ObjectSpecification adapterSpec) {
- final List<ObjectAssociation> associations = adapterSpec.getAssociations(Contributed.EXCLUDED);
+ final List<ObjectAssociation> associations = adapterSpec.getAssociations(Contributed.INCLUDED);
final List<String> associationNames = Lists.transform(associations, ObjectAssociations.toName());
final List<String> associationIds = Lists.transform(associations, ObjectAssociations.toId());
@@ -161,7 +159,7 @@ public class EntityHeaderPanel extends PanelAbstract<EntityModel> implements Act
protected Filter<ObjectAction> dynamicallyVisibleFor(final ObjectAdapter adapter) {
- return ObjectActionFilters.dynamicallyVisible(getAuthenticationSession(), adapter, Where.ANYWHERE);
+ return ObjectAction.Filters.dynamicallyVisible(getAuthenticationSession(), adapter, Where.ANYWHERE);
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
index 770b09d..181b11f 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/properties/EntityPropertiesForm.java
@@ -55,7 +55,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecifications;
import org.apache.isis.core.metamodel.spec.ObjectSpecifications.MemberGroupLayoutHint;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociations;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.runtime.memento.Memento;
@@ -236,7 +235,7 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
@SuppressWarnings("unchecked")
private Filter<ObjectAssociation> visiblePropertyFilter(final ObjectAdapter adapter, Where where) {
- return Filters.and(ObjectAssociationFilters.PROPERTIES, ObjectAssociationFilters.dynamicallyVisible(getAuthenticationSession(), adapter, where));
+ return Filters.and(ObjectAssociation.Filters.PROPERTIES, ObjectAssociation.Filters.dynamicallyVisible(getAuthenticationSession(), adapter, where));
}
private void addButtons(MarkupContainer markupContainer) {
@@ -501,7 +500,7 @@ class EntityPropertiesForm extends FormAbstract<ObjectAdapter> {
@SuppressWarnings("unchecked")
private Filter<ObjectAssociation> enabledAssociationFilter(final ObjectAdapter adapter) {
- return Filters.and(ObjectAssociationFilters.PROPERTIES, ObjectAssociationFilters.enabled(getAuthenticationSession(), adapter, Where.OBJECT_FORMS));
+ return Filters.and(ObjectAssociation.Filters.PROPERTIES, ObjectAssociation.Filters.enabled(getAuthenticationSession(), adapter, Where.OBJECT_FORMS));
}
private void toEditMode(final AjaxRequestTarget target) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
index fb41708..7d8f6ba 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuBuilder.java
@@ -28,9 +28,7 @@ import com.google.common.collect.Collections2;
import org.apache.isis.applib.filter.Filters;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
import org.apache.isis.core.progmodel.facets.actions.bulk.BulkFacet;
import org.apache.isis.core.progmodel.facets.actions.notcontributed.NotContributedFacet;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -106,7 +104,7 @@ public class CssMenuBuilder {
}
private void addMenuItemsForActionsOfType(final CssMenuItem parent, final List<ObjectAction> actions, final ActionType type) {
- final Collection<ObjectAction> filterActionsOfType = Collections2.filter(actions, Filters.asPredicate(ObjectActionFilters.filterOfType(type)));
+ final Collection<ObjectAction> filterActionsOfType = Collections2.filter(actions, Filters.asPredicate(ObjectAction.Filters.ofType(type)));
for (final ObjectAction action : filterActionsOfType) {
addMenuItem(parent, action);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetUtil.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetUtil.java
index e618300..2116a68 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facetapi/FacetUtil.java
@@ -150,4 +150,12 @@ public final class FacetUtil {
return facetByType;
}
+ public static void copyFacets(final FacetHolder source, final FacetHolder target) {
+ List<Facet> facets = source.getFacets(org.apache.isis.applib.filter.Filters.<Facet>any());
+ for (Facet facet : facets) {
+ target.addFacet(facet);
+ }
+ }
+
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
index 7048ec6..e7638bb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactory.java
@@ -30,6 +30,8 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
import org.apache.isis.core.metamodel.facetapi.MethodRemover;
import org.apache.isis.core.metamodel.methodutils.MethodScope;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
public interface FacetFactory {
@@ -44,6 +46,11 @@ public interface FacetFactory {
return facetHolder;
}
}
+
+ public interface ProcessContextWithMetadataProperties<T extends FacetHolder> {
+ public Properties metadataProperties(String prefix);
+ public T getFacetHolder();
+ }
/**
* The {@link FeatureType feature type}s that this facet factory can create
@@ -61,7 +68,7 @@ public interface FacetFactory {
// process class
// //////////////////////////////////////
- public static class ProcessClassContext extends AbstractProcessContext<FacetHolder> implements MethodRemover {
+ public static class ProcessClassContext extends AbstractProcessContext<FacetHolder> implements MethodRemover, ProcessContextWithMetadataProperties<FacetHolder> {
private final Class<?> cls;
private final MethodRemover methodRemover;
private final Properties metadataProperties;
@@ -130,7 +137,7 @@ public interface FacetFactory {
// //////////////////////////////////////
- public static class ProcessMethodContext extends AbstractProcessContext<FacetedMethod> implements MethodRemover {
+ public static class ProcessMethodContext extends AbstractProcessContext<FacetedMethod> implements MethodRemover, ProcessContextWithMetadataProperties<FacetedMethod> {
private final Class<?> cls;
private final FeatureType featureType;
private final Properties metadataProperties;
@@ -212,7 +219,9 @@ public interface FacetFactory {
*/
void process(ProcessMethodContext processMethodContext);
-
+
+
+
// //////////////////////////////////////
// process param
// //////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MemberOrderingFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MemberOrderingFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MemberOrderingFacetFactory.java
new file mode 100644
index 0000000..881fc18
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/MemberOrderingFacetFactory.java
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.metamodel.facets;
+
+import java.util.Properties;
+
+import org.apache.isis.applib.Identifier;
+import org.apache.isis.core.commons.lang.PropertyUtil;
+import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
+
+/**
+ * A {@link FacetFactory} which orders {@link ObjectMember}s (eg, according to
+ * the {@link MemberOrderFacet}).
+ */
+public interface MemberOrderingFacetFactory extends FacetFactory {
+
+ public static class ProcessMemberContext extends AbstractProcessContext<ObjectMember> implements ProcessContextWithMetadataProperties<ObjectMember> {
+
+ private final Properties metadataProperties;
+
+ public ProcessMemberContext(
+ final Properties metadataProperties,
+ final ObjectMember facetHolder) {
+ super(facetHolder);
+ this.metadataProperties = metadataProperties;
+ }
+
+ public Properties metadataProperties(String prefix) {
+
+ if(metadataProperties == null) {
+ return null;
+ }
+ Identifier identifier = getFacetHolder().getIdentifier();
+ final String id = identifier.getMemberName();
+
+ // bit of a hack; to distinguish between actions and properties that have same identifier
+ // eg getPaidBy() and paidBy()
+ if(getFacetHolder() instanceof ObjectAction) {
+ Properties subsetProperties = PropertyUtil.subset(this.metadataProperties, prefix+"."+id+"()");
+ if (!subsetProperties.isEmpty()) {
+ return subsetProperties;
+ }
+ }
+
+ // otherwise, regular processing...
+ Properties subsetProperties = PropertyUtil.subset(this.metadataProperties, prefix+"."+id);
+ if (!subsetProperties.isEmpty()) {
+ return subsetProperties;
+ }
+
+ return null;
+ }
+ }
+
+ /**
+ * Sort the member, and return the correctly setup annotation if present.
+ */
+ void process(ProcessMemberContext processMemberContext);
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
index 83ce224..2b563cc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
@@ -34,7 +34,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
public abstract class AutoCompleteFacetAbstract extends FacetAbstract implements AutoCompleteFacet {
@@ -97,7 +96,7 @@ public abstract class AutoCompleteFacetAbstract extends FacetAbstract implements
private void cacheRepositoryAction() {
try {
final ObjectSpecification repositorySpec = specificationLoader.loadSpecification(repositoryClass);
- final List<ObjectAction> objectActions = repositorySpec.getObjectActions(ActionType.USER, Contributed.EXCLUDED, ObjectActionFilters.withId(actionName));
+ final List<ObjectAction> objectActions = repositorySpec.getObjectActions(ActionType.USER, Contributed.EXCLUDED, ObjectAction.Filters.withId(actionName));
repositoryAction = objectActions.size() == 1? objectActions.get(0): null;
} finally {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
index 642fa8a..2ba2e79 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/json/LayoutMetadataReaderFromJson.java
@@ -52,10 +52,8 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecifications;
import org.apache.isis.core.metamodel.spec.ObjectSpecifications.MemberGroupLayoutHint;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectActionFilters;
import org.apache.isis.core.metamodel.spec.feature.ObjectActions;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociations;
public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
@@ -310,13 +308,13 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
private static List<ObjectAssociation> propertiesOf(final ObjectSpecification objSpec) {
return objSpec.getAssociations(Contributed.EXCLUDED,
Filters.and(ObjectAssociation.Filters.PROPERTIES,
- ObjectAssociation.Filters.WHEN_VISIBLE_IRRESPECTIVE_OF_WHERE));
+ ObjectAssociation.Filters.VISIBLE_AT_LEAST_SOMETIMES));
}
@SuppressWarnings("unchecked")
private static List<ObjectAssociation> collectionsOf(final ObjectSpecification objSpec) {
return objSpec.getAssociations(Contributed.EXCLUDED,
Filters.and(ObjectAssociation.Filters.COLLECTIONS,
- ObjectAssociation.Filters.WHEN_VISIBLE_IRRESPECTIVE_OF_WHERE));
+ ObjectAssociation.Filters.VISIBLE_AT_LEAST_SOMETIMES));
}
private static List<ObjectAction> actionsOf(final ObjectSpecification objSpec, final Set<String> excludedActionIds) {
return objSpec.getObjectActions(ActionType.ALL, Contributed.INCLUDED, staticallyVisibleExcluding(excludedActionIds));
@@ -325,7 +323,7 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
@SuppressWarnings("unchecked")
private static Filter<ObjectAction> staticallyVisibleExcluding(final Set<String> excludedActionIds) {
return Filters.and(
- ObjectAction.Filters.WHEN_VISIBLE_IRRESPECTIVE_OF_WHERE,
+ ObjectAction.Filters.VISIBLE_AT_LEAST_SOMETIMES,
new Filter<ObjectAction>(){
@Override
public boolean accept(ObjectAction t) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java
index 328c3dc..1c13ab6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/DeveloperUtilitiesServiceDefault.java
@@ -50,7 +50,6 @@ import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpiAware;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationFilters;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
@@ -83,7 +82,7 @@ public class DeveloperUtilitiesServiceDefault implements DeveloperUtilitiesServi
if (exclude(spec)) {
continue;
}
- final List<ObjectAssociation> properties = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.PROPERTIES);
+ final List<ObjectAssociation> properties = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.PROPERTIES);
for (ObjectAssociation property : properties) {
final OneToOneAssociation otoa = (OneToOneAssociation) property;
if (exclude(otoa)) {
@@ -91,7 +90,7 @@ public class DeveloperUtilitiesServiceDefault implements DeveloperUtilitiesServi
}
rows.add(new MetaModelRow(spec, otoa));
}
- final List<ObjectAssociation> associations = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociationFilters.COLLECTIONS);
+ final List<ObjectAssociation> associations = spec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.COLLECTIONS);
for (ObjectAssociation collection : associations) {
final OneToManyAssociation otma = (OneToManyAssociation) collection;
if (exclude(otma)) {
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java
index 7e7cecb..a55b94f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java
@@ -19,6 +19,7 @@ package org.apache.isis.core.metamodel.spec;
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.metamodel.adapter.ServicesProvider;
import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
public class SpecificationContext {
@@ -27,13 +28,21 @@ public class SpecificationContext {
private final ServicesProvider servicesProvider;
private final ObjectInstantiator objectInstantiator;
private final SpecificationLoader specificationLookup;
+ private final FacetProcessor facetProcessor;
- public SpecificationContext(final DeploymentCategory deploymentCategory, final AuthenticationSessionProvider authenticationSessionProvider, final ServicesProvider servicesProvider, final ObjectInstantiator objectInstantiator, final SpecificationLoader specificationLookup) {
+ public SpecificationContext(
+ final DeploymentCategory deploymentCategory,
+ final AuthenticationSessionProvider authenticationSessionProvider,
+ final ServicesProvider servicesProvider,
+ final ObjectInstantiator objectInstantiator,
+ final SpecificationLoader specificationLookup,
+ final FacetProcessor facetProcessor) {
this.deploymentCategory = deploymentCategory;
this.authenticationSessionProvider = authenticationSessionProvider;
this.servicesProvider = servicesProvider;
this.objectInstantiator = objectInstantiator;
this.specificationLookup = specificationLookup;
+ this.facetProcessor = facetProcessor;
}
public DeploymentCategory getDeploymentCategory() {
@@ -55,4 +64,8 @@ public class SpecificationContext {
public SpecificationLoader getSpecificationLookup() {
return specificationLookup;
}
+
+ public FacetProcessor getFacetProcessor() {
+ return facetProcessor;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/c009dec5/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index f3e2a6b..c3227a3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.metamodel.spec.feature;
import java.util.List;
import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.When;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -30,6 +31,8 @@ import org.apache.isis.core.metamodel.consent.Consent;
import org.apache.isis.core.metamodel.consent.InteractionInvocationMethod;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FacetFilters;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.hide.HiddenFacet;
import org.apache.isis.core.metamodel.interactions.AccessContext;
import org.apache.isis.core.metamodel.interactions.ActionInvocationContext;
import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
@@ -179,10 +182,11 @@ public interface ObjectAction extends ObjectMember {
private Filters(){}
- public static final Filter<ObjectAction> WHEN_VISIBLE_IRRESPECTIVE_OF_WHERE = new Filter<ObjectAction>() {
+ public static final Filter<ObjectAction> VISIBLE_AT_LEAST_SOMETIMES = new Filter<ObjectAction>() {
@Override
public boolean accept(final ObjectAction action) {
- return !action.isAlwaysHidden();
+ final HiddenFacet hiddenFacet = action.getFacet(HiddenFacet.class);
+ return hiddenFacet == null || hiddenFacet.when() != When.ALWAYS || hiddenFacet.where() != Where.ANYWHERE;
}
};