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/11/28 14:46:52 UTC
git commit: ISIS-611,
ISIS-612: disabled and hidden facets dynamically.
Updated Branches:
refs/heads/master f0a36b8fb -> 5e5b07c46
ISIS-611, ISIS-612: disabled and hidden facets dynamically.
In addition, updated the LayoutMetadataReaderForJson to correctly export
json for these two tickets and also for ISIS-601, ISIS-602,
ISIS-603, ISIS-604, ISIS-605, ISIS-606, ISIS-607.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5e5b07c4
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5e5b07c4
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5e5b07c4
Branch: refs/heads/master
Commit: 5e5b07c4691cbd651023c6ed8b7b756bc8370e09
Parents: f0a36b8
Author: Dan Haywood <da...@apache.org>
Authored: Thu Nov 28 13:45:33 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Nov 28 13:45:33 2013 +0000
----------------------------------------------------------------------
.../legacy/MemberHiddenTest.java | 20 +--
.../layoutmetadata/DisabledFacetRepr.java | 26 ++++
.../layoutmetadata/HiddenFacetRepr.java | 26 ++++
.../metamodel/layoutmetadata/MemberRepr.java | 2 +
.../json/LayoutMetadataReaderFromJson.java | 156 +++++++++++++++++--
.../members/disabled/DisabledFacetImpl.java | 7 +
.../DisabledAnnotationFacetFactory.java | 46 ------
.../annotation/DisabledFacetFactory.java | 75 +++++++++
.../annotation/DisabledFacetFromProperties.java | 57 +++++++
.../HiddenAnnotationForMemberFacetFactory.java | 46 ------
.../HiddenFacetForMemberAnnotation.java | 33 ----
.../HiddenFacetOnMemberAnnotation.java | 33 ++++
.../HiddenFacetOnMemberFromProperties.java | 53 +++++++
.../annotation/HiddenForMemberFacetFactory.java | 74 +++++++++
.../RenderOrResolveAnnotationFacetFactory.java | 85 ----------
.../resolve/RenderOrResolveFacetFactory.java | 83 ++++++++++
.../dflt/ProgrammingModelFacetsJava5.java | 12 +-
.../DisabledAnnotationFacetFactoryTest.java | 6 +-
.../HiddenAnnotationFacetFactoryTest.java | 6 +-
...onFacetFactoryTest_withRenderAnnotation.java | 4 +-
...nFacetFactoryTest_withResolveAnnotation.java | 4 +-
.../json/ExampleDomainObject.layout.json | 13 +-
.../json/ExampleDomainObject.layout.properties | 4 +
.../dom/src/main/java/dom/todo/ToDoItem.java | 8 -
.../src/main/java/dom/todo/ToDoItem.layout.json | 31 +++-
25 files changed, 644 insertions(+), 266 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/integtestsupport/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberHiddenTest.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberHiddenTest.java b/core/integtestsupport/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberHiddenTest.java
index b0589b2..5753c10 100644
--- a/core/integtestsupport/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberHiddenTest.java
+++ b/core/integtestsupport/src/test/java/org/apache/isis/core/integtestsupport/legacy/MemberHiddenTest.java
@@ -28,7 +28,7 @@ import org.junit.Test;
import org.apache.isis.applib.services.wrapper.HiddenException;
import org.apache.isis.core.integtestsupport.legacy.sample.domain.Country;
-import org.apache.isis.core.progmodel.facets.members.hidden.annotation.HiddenFacetForMemberAnnotation;
+import org.apache.isis.core.progmodel.facets.members.hidden.annotation.HiddenFacetOnMemberAnnotation;
import org.apache.isis.core.progmodel.facets.members.hidden.forsession.HideForSessionFacetViaMethod;
import org.apache.isis.core.progmodel.facets.members.hidden.method.HideForContextFacetViaMethod;
@@ -162,7 +162,7 @@ public class MemberHiddenTest extends AbstractTest {
custJsWO.setAlwaysHiddenValue("Dick");
fail("Should have thrown exception");
} catch (final HiddenException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetForMemberAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetOnMemberAnnotation.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Always Hidden Value"));
}
}
@@ -173,7 +173,7 @@ public class MemberHiddenTest extends AbstractTest {
custJsWO.setAlwaysHiddenValue(null);
fail("Should have thrown exception");
} catch (final HiddenException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetForMemberAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetOnMemberAnnotation.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Always Hidden Value"));
}
}
@@ -184,7 +184,7 @@ public class MemberHiddenTest extends AbstractTest {
custJsWO.getAlwaysHiddenValue();
fail("Should have thrown exception");
} catch (final HiddenException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetForMemberAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetOnMemberAnnotation.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Always Hidden Value"));
}
}
@@ -197,7 +197,7 @@ public class MemberHiddenTest extends AbstractTest {
custJsWO.setAlwaysHiddenAssociation(value);
fail("Should have thrown exception");
} catch (final HiddenException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetForMemberAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetOnMemberAnnotation.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Always Hidden Association"));
}
}
@@ -209,7 +209,7 @@ public class MemberHiddenTest extends AbstractTest {
custJsWO.getAlwaysHiddenAssociation();
fail("Should have thrown exception");
} catch (final HiddenException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetForMemberAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetOnMemberAnnotation.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Always Hidden Association"));
}
}
@@ -220,7 +220,7 @@ public class MemberHiddenTest extends AbstractTest {
custJsWO.addToAlwaysHiddenCollection(countryUsaDO);
fail("Should have thrown exception");
} catch (final HiddenException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetForMemberAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetOnMemberAnnotation.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Always Hidden Collection"));
}
}
@@ -232,7 +232,7 @@ public class MemberHiddenTest extends AbstractTest {
custJsWO.removeFromAlwaysHiddenCollection(countryUsaDO);
fail("Should have thrown exception");
} catch (final HiddenException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetForMemberAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetOnMemberAnnotation.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Always Hidden Collection"));
}
}
@@ -243,7 +243,7 @@ public class MemberHiddenTest extends AbstractTest {
custJsWO.getAlwaysHiddenCollection();
fail("Should have thrown exception");
} catch (final HiddenException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetForMemberAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetOnMemberAnnotation.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Always Hidden Collection"));
}
}
@@ -254,7 +254,7 @@ public class MemberHiddenTest extends AbstractTest {
custJsWO.alwaysHiddenAction();
fail("Should have thrown exception");
} catch (final HiddenException ex) {
- assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetForMemberAnnotation.class));
+ assertThat(ex.getAdvisorClass(), classEqualTo(HiddenFacetOnMemberAnnotation.class));
assertThat(ex.getIdentifier().getMemberNaturalName(), equalTo("Always Hidden Action"));
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/DisabledFacetRepr.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/DisabledFacetRepr.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/DisabledFacetRepr.java
new file mode 100644
index 0000000..891817f
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/DisabledFacetRepr.java
@@ -0,0 +1,26 @@
+/**
+ * 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.layoutmetadata;
+
+import org.apache.isis.applib.annotation.When;
+import org.apache.isis.applib.annotation.Where;
+
+public class DisabledFacetRepr {
+ public When when;
+ public Where where;
+ public String reason;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/HiddenFacetRepr.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/HiddenFacetRepr.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/HiddenFacetRepr.java
new file mode 100644
index 0000000..5e4058b
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/HiddenFacetRepr.java
@@ -0,0 +1,26 @@
+/**
+ * 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.layoutmetadata;
+
+import org.apache.isis.applib.annotation.When;
+import org.apache.isis.applib.annotation.Where;
+
+public class HiddenFacetRepr {
+ public When when;
+ public Where where;
+ public String reason;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java
index 857d778..b706473 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/layoutmetadata/MemberRepr.java
@@ -29,6 +29,8 @@ public class MemberRepr {
public Map<String,ActionRepr> actions;
public PagedFacetRepr paged;
public RenderFacetRepr render;
+ public HiddenFacetRepr hidden;
+ public DisabledFacetRepr disabled;
public NamedFacetRepr named;
public DescribedAsFacetRepr describedAs;
public CssClassFacetRepr cssClass;
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/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 30bde7a..c51b4bf 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
@@ -26,6 +26,7 @@ import java.util.Set;
import com.google.common.base.Function;
import com.google.common.base.Joiner;
+import com.google.common.base.Strings;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -36,16 +37,29 @@ import com.google.gson.GsonBuilder;
import org.apache.isis.applib.annotation.MemberGroupLayout.ColumnSpans;
import org.apache.isis.applib.annotation.Render;
import org.apache.isis.applib.annotation.Render.Type;
+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.applib.filter.Filters;
+import org.apache.isis.applib.services.viewmodelsupport.ViewModelSupport.Memento;
import org.apache.isis.core.commons.lang.ClassExtensions;
+import org.apache.isis.core.metamodel.facets.describedas.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
+import org.apache.isis.core.metamodel.facets.members.resolve.RenderFacet;
+import org.apache.isis.core.metamodel.facets.multiline.MultiLineFacet;
+import org.apache.isis.core.metamodel.facets.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
+import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
+import org.apache.isis.core.metamodel.facets.typicallen.TypicalLengthFacet;
import org.apache.isis.core.metamodel.layout.memberorderfacet.MemberOrderFacetComparator;
import org.apache.isis.core.metamodel.layoutmetadata.ActionRepr;
import org.apache.isis.core.metamodel.layoutmetadata.ColumnRepr;
import org.apache.isis.core.metamodel.layoutmetadata.CssClassFacetRepr;
import org.apache.isis.core.metamodel.layoutmetadata.DescribedAsFacetRepr;
+import org.apache.isis.core.metamodel.layoutmetadata.DisabledFacetRepr;
+import org.apache.isis.core.metamodel.layoutmetadata.HiddenFacetRepr;
import org.apache.isis.core.metamodel.layoutmetadata.LayoutMetadata;
import org.apache.isis.core.metamodel.layoutmetadata.LayoutMetadataReader;
import org.apache.isis.core.metamodel.layoutmetadata.MemberGroupRepr;
@@ -63,6 +77,11 @@ 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.ObjectActions;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
+import org.apache.isis.core.progmodel.facets.members.disabled.DisabledFacet;
+import org.apache.isis.core.progmodel.facets.members.disabled.DisabledFacetImpl;
+import org.apache.isis.core.progmodel.facets.members.disabled.annotation.DisabledFacetAnnotation;
+import org.apache.isis.core.progmodel.facets.members.disabled.annotation.DisabledFacetFromProperties;
public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
@@ -169,6 +188,27 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
if(paged != null) {
props.setProperty("member." + memberName + ".paged.value", ""+paged.value);
}
+ final DisabledFacetRepr disabled = memberRepr.disabled;
+ if(disabled != null) {
+ // same default as in Disabled.when()
+ final When disabledWhen = disabled.when!=null?disabled.when: When.ALWAYS;
+ props.setProperty("member." + memberName + ".disabled.when", disabledWhen.toString());
+ // same default as in Disabled.where()
+ final Where disabledWhere = disabled.where!=null?disabled.where: Where.ANYWHERE;
+ props.setProperty("member." + memberName + ".disabled.where", disabledWhere.toString());
+ // same default as in Disabled.reason()
+ final String disabledReason = disabled.reason!=null?disabled.reason: "";
+ props.setProperty("member." + memberName + ".disabled.reason", disabledReason);
+ }
+ final HiddenFacetRepr hidden = memberRepr.hidden;
+ if(hidden != null) {
+ // same default as in Hidden.when()
+ final When hiddenWhen = hidden.when!=null?hidden.when: When.ALWAYS;
+ props.setProperty("member." + memberName + ".hidden.when", hiddenWhen.toString());
+ // same default as in Hidden.where()
+ final Where hiddenWhere = hidden.where!=null?hidden.where: Where.ANYWHERE;
+ props.setProperty("member." + memberName + ".hidden.where", hiddenWhere.toString());
+ }
final RenderFacetRepr render = memberRepr.render;
if(render != null) {
// same default as in Render.Type.value()
@@ -308,7 +348,28 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
}
private static ActionRepr newActionRepr(ObjectSpecification objectSpec, ObjectAction action) {
- return new ActionRepr();
+ ActionRepr actionRepr = new ActionRepr();
+
+ CssClassFacet cssClassFacet = action.getFacet(CssClassFacet.class);
+ if(cssClassFacet != null && !cssClassFacet.isNoop()) {
+ CssClassFacetRepr cssClassFacetRepr = new CssClassFacetRepr();
+ cssClassFacetRepr.value = cssClassFacet.value();
+ actionRepr.cssClass = cssClassFacetRepr;
+ }
+ DescribedAsFacet describedAsFacet = action.getFacet(DescribedAsFacet.class);
+ if(describedAsFacet != null && !describedAsFacet.isNoop() && !Strings.isNullOrEmpty(describedAsFacet.value())) {
+ DescribedAsFacetRepr describedAsFacetRepr = new DescribedAsFacetRepr();
+ describedAsFacetRepr.value = describedAsFacet.value();
+ actionRepr.describedAs = describedAsFacetRepr;
+ }
+ NamedFacet namedFacet = action.getFacet(NamedFacet.class);
+ if(namedFacet != null && !namedFacet.isNoop()) {
+ NamedFacetRepr namedFacetRepr = new NamedFacetRepr();
+ namedFacetRepr.value = namedFacet.value();
+ actionRepr.named = namedFacetRepr;
+ }
+
+ return actionRepr;
}
private static void updateCollectionColumnRepr(ObjectSpecification objectSpec, ColumnRepr columnRepr, Set<String> actionIdsOfAssociations) {
@@ -323,7 +384,68 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
private static MemberRepr newMemberRepr(ObjectSpecification objectSpec, ObjectAssociation assoc, Set<String> actionIdsForAssociations) {
final MemberRepr memberRepr = new MemberRepr();
-
+
+ CssClassFacet cssClassFacet = assoc.getFacet(CssClassFacet.class);
+ if(cssClassFacet != null && !cssClassFacet.isNoop()) {
+ CssClassFacetRepr cssClassFacetRepr = new CssClassFacetRepr();
+ cssClassFacetRepr.value = cssClassFacet.value();
+ memberRepr.cssClass = cssClassFacetRepr;
+ }
+ DescribedAsFacet describedAsFacet = assoc.getFacet(DescribedAsFacet.class);
+ if(describedAsFacet != null && !describedAsFacet.isNoop() && !Strings.isNullOrEmpty(describedAsFacet.value())) {
+ DescribedAsFacetRepr describedAsFacetRepr = new DescribedAsFacetRepr();
+ describedAsFacetRepr.value = describedAsFacet.value();
+ memberRepr.describedAs = describedAsFacetRepr;
+ }
+ NamedFacet namedFacet = assoc.getFacet(NamedFacet.class);
+ if(namedFacet != null && !namedFacet.isNoop()) {
+ NamedFacetRepr namedFacetRepr = new NamedFacetRepr();
+ namedFacetRepr.value = namedFacet.value();
+ memberRepr.named = namedFacetRepr;
+ }
+ DisabledFacet disabledFacet = assoc.getFacet(DisabledFacet.class);
+ if(disabledFacet != null && !disabledFacet.isNoop()) {
+ DisabledFacetRepr disabledFacetRepr = new DisabledFacetRepr();
+ if(disabledFacet instanceof DisabledFacetImpl) {
+ DisabledFacetImpl disabledFacetImpl = (DisabledFacetImpl) disabledFacet;
+ disabledFacetRepr.reason = Strings.emptyToNull(disabledFacetImpl.getReason());
+ }
+ disabledFacetRepr.when = whenAlwaysToNull(disabledFacet.when());
+ disabledFacetRepr.where = whereAnywhereToNull(disabledFacet.where());
+ memberRepr.disabled = disabledFacetRepr;
+ }
+ HiddenFacet hiddenFacet = assoc.getFacet(HiddenFacet.class);
+ if(hiddenFacet != null && !hiddenFacet.isNoop()) {
+ HiddenFacetRepr hiddenFacetRepr = new HiddenFacetRepr();
+ hiddenFacetRepr.when = whenAlwaysToNull(hiddenFacet.when());
+ hiddenFacetRepr.where = whereAnywhereToNull(hiddenFacet.where());
+ memberRepr.hidden = hiddenFacetRepr;
+ }
+ MultiLineFacet multiLineFacet = assoc.getFacet(MultiLineFacet.class);
+ if(multiLineFacet != null && !multiLineFacet.isNoop()) {
+ MultiLineFacetRepr multiLineFacetRepr = new MultiLineFacetRepr();
+ multiLineFacetRepr.numberOfLines = multiLineFacet.numberOfLines();
+ memberRepr.multiLine = multiLineFacetRepr;
+ }
+ PagedFacet pagedFacet = assoc.getFacet(PagedFacet.class);
+ if(pagedFacet != null && !pagedFacet.isNoop()) {
+ PagedFacetRepr pagedFacetRepr = new PagedFacetRepr();
+ pagedFacetRepr.value = pagedFacet.value();
+ memberRepr.paged = pagedFacetRepr;
+ }
+ RenderFacet renderFacet = assoc.getFacet(RenderFacet.class);
+ if(renderFacet != null && !renderFacet.isNoop()) {
+ RenderFacetRepr renderFacetRepr = new RenderFacetRepr();
+ renderFacetRepr.value = renderFacet.value();
+ memberRepr.render = renderFacetRepr;
+ }
+ TypicalLengthFacet typicalLengthFacet = assoc.getFacet(TypicalLengthFacet.class);
+ if(typicalLengthFacet != null && !typicalLengthFacet.isNoop()) {
+ TypicalLengthFacetRepr typicalLengthFacetRepr = new TypicalLengthFacetRepr();
+ typicalLengthFacetRepr.value = typicalLengthFacet.value();
+ memberRepr.typicalLength = typicalLengthFacetRepr;
+ }
+
final List<ObjectAction> actions = objectSpec.getObjectActions(
ActionType.USER, Contributed.INCLUDED, ObjectActions.memberOrderOf(assoc));
if(!actions.isEmpty()) {
@@ -340,6 +462,14 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
return memberRepr;
}
+ private static Where whereAnywhereToNull(Where where) {
+ return where != Where.ANYWHERE? where: null;
+ }
+
+ private static When whenAlwaysToNull(When when) {
+ return when != When.ALWAYS? when: null;
+ }
+
private static void sortByMemberOrderFacet(final List<ObjectAction> actions) {
Collections.sort(actions, new Comparator<ObjectAction>() {
@@ -359,32 +489,24 @@ public class LayoutMetadataReaderFromJson implements LayoutMetadataReader {
}
- @SuppressWarnings({ "unchecked", "deprecation" })
private static List<ObjectAssociation> propertiesOf(final ObjectSpecification objSpec) {
- return objSpec.getAssociations(Contributed.EXCLUDED,
- Filters.and(ObjectAssociation.Filters.PROPERTIES,
- ObjectAssociation.Filters.VISIBLE_AT_LEAST_SOMETIMES));
+ return objSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.PROPERTIES);
}
- @SuppressWarnings({ "unchecked", "deprecation" })
private static List<ObjectAssociation> collectionsOf(final ObjectSpecification objSpec) {
- return objSpec.getAssociations(Contributed.EXCLUDED,
- Filters.and(ObjectAssociation.Filters.COLLECTIONS,
- ObjectAssociation.Filters.VISIBLE_AT_LEAST_SOMETIMES));
+ return objSpec.getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.COLLECTIONS);
}
private static List<ObjectAction> actionsOf(final ObjectSpecification objSpec, final Set<String> excludedActionIds) {
- return objSpec.getObjectActions(ActionType.ALL, Contributed.INCLUDED, staticallyVisibleExcluding(excludedActionIds));
+ return objSpec.getObjectActions(ActionType.ALL, Contributed.INCLUDED, excluding(excludedActionIds));
}
- @SuppressWarnings({ "unchecked", "deprecation" })
- private static Filter<ObjectAction> staticallyVisibleExcluding(final Set<String> excludedActionIds) {
- return Filters.and(
- ObjectAction.Filters.VISIBLE_AT_LEAST_SOMETIMES,
- new Filter<ObjectAction>(){
+ @SuppressWarnings({ "deprecation" })
+ private static Filter<ObjectAction> excluding(final Set<String> excludedActionIds) {
+ return new Filter<ObjectAction>(){
@Override
public boolean accept(ObjectAction t) {
return !excludedActionIds.contains(t.getId());
}
- });
+ };
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/DisabledFacetImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/DisabledFacetImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/DisabledFacetImpl.java
index 225aee1..a2b8ecc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/DisabledFacetImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/DisabledFacetImpl.java
@@ -64,4 +64,11 @@ public class DisabledFacetImpl extends DisabledFacetAbstract {
return !Strings.isNullOrEmpty(reason) ? reason : defaultReason;
}
+ /**
+ * Not API... the reason as defined in subclass
+ */
+ public String getReason() {
+ return reason;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledAnnotationFacetFactory.java
deleted file mode 100644
index ff13a12..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledAnnotationFacetFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.progmodel.facets.members.disabled.annotation;
-
-import org.apache.isis.applib.annotation.Disabled;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.progmodel.facets.members.disabled.DisabledFacet;
-
-public class DisabledAnnotationFacetFactory extends FacetFactoryAbstract {
-
- public DisabledAnnotationFacetFactory() {
- super(FeatureType.MEMBERS);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final Disabled annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Disabled.class);
- FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder()));
- }
-
- private DisabledFacet create(final Disabled annotation, final FacetHolder holder) {
- return annotation == null ? null : new DisabledFacetAnnotation(annotation.when(), annotation.where(), annotation.reason(), holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledFacetFactory.java
new file mode 100644
index 0000000..5eb550f
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledFacetFactory.java
@@ -0,0 +1,75 @@
+/*
+ * 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.progmodel.facets.members.disabled.annotation;
+
+import java.util.Properties;
+
+import org.apache.isis.applib.annotation.Disabled;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.progmodel.facets.members.disabled.DisabledFacet;
+import org.apache.isis.core.progmodel.facets.members.hidden.annotation.HiddenFacetOnMemberFromProperties;
+
+public class DisabledFacetFactory extends FacetFactoryAbstract
+ implements ContributeeMemberFacetFactory {
+
+ public DisabledFacetFactory() {
+ super(FeatureType.MEMBERS);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+ DisabledFacet disabledFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
+ if(disabledFacet == null) {
+ disabledFacet = createFromAnnotationIfPossible(processMethodContext);
+ }
+ // no-op if null
+ FacetUtil.addFacet(disabledFacet);
+ }
+
+ @Override
+ public void process(ProcessContributeeMemberContext processMemberContext) {
+ DisabledFacet disabledFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
+ // no-op if null
+ FacetUtil.addFacet(disabledFacet);
+ }
+
+ private static DisabledFacet createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
+ final Disabled annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Disabled.class);
+ return annotation != null
+ ? new DisabledFacetAnnotation(annotation.when(), annotation.where(), annotation.reason(), processMethodContext.getFacetHolder())
+ : null;
+ }
+
+ private static DisabledFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("disabled");
+ return properties != null ? new DisabledFacetFromProperties(properties, holder) : null;
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledFacetFromProperties.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledFacetFromProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledFacetFromProperties.java
new file mode 100644
index 0000000..0028628
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/disabled/annotation/DisabledFacetFromProperties.java
@@ -0,0 +1,57 @@
+/*
+ * 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.progmodel.facets.members.disabled.annotation;
+
+import java.util.Properties;
+
+import org.apache.isis.applib.annotation.When;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.progmodel.facets.members.disabled.DisabledFacetImpl;
+
+public class DisabledFacetFromProperties extends DisabledFacetImpl {
+
+ public DisabledFacetFromProperties(final When when, Where where, String reason, final FacetHolder holder) {
+ super(when, where, reason, holder);
+ }
+
+ public DisabledFacetFromProperties(Properties properties, FacetHolder holder) {
+ super(disabledWhenFrom(properties), disabledWhereFrom(properties), disabledReasonFrom(properties), holder);
+ }
+
+ private static When disabledWhenFrom(Properties properties) {
+ String value = properties.getProperty("when");
+ // same default as in Disabled.when()
+ return value != null? When.valueOf(value): When.ALWAYS;
+ }
+
+ private static Where disabledWhereFrom(Properties properties) {
+ String value = properties.getProperty("where");
+ // same default as in Disabled.where()
+ return value != null? Where.valueOf(value): Where.ANYWHERE;
+ }
+
+ private static String disabledReasonFrom(Properties properties) {
+ String value = properties.getProperty("reason");
+ // same default as in Disabled.reason()
+ return value != null? value: "";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenAnnotationForMemberFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenAnnotationForMemberFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenAnnotationForMemberFacetFactory.java
deleted file mode 100644
index a9a5811..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenAnnotationForMemberFacetFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.progmodel.facets.members.hidden.annotation;
-
-import org.apache.isis.applib.annotation.Hidden;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.hide.HiddenFacet;
-
-public class HiddenAnnotationForMemberFacetFactory extends FacetFactoryAbstract {
-
- public HiddenAnnotationForMemberFacetFactory() {
- super(FeatureType.MEMBERS);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
- final Hidden annotation = Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
- FacetUtil.addFacet(create(annotation, processMethodContext.getFacetHolder()));
- }
-
- private static HiddenFacet create(final Hidden annotation, final FacetHolder holder) {
- return annotation == null ? null : new HiddenFacetForMemberAnnotation(annotation.when(), annotation.where(), holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetForMemberAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetForMemberAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetForMemberAnnotation.java
deleted file mode 100644
index dfe5553..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetForMemberAnnotation.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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.progmodel.facets.members.hidden.annotation;
-
-import org.apache.isis.applib.annotation.When;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.progmodel.facets.members.hidden.HiddenFacetImpl;
-
-public class HiddenFacetForMemberAnnotation extends HiddenFacetImpl {
-
- public HiddenFacetForMemberAnnotation(final When when, Where where, final FacetHolder holder) {
- super(when, where, holder);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetOnMemberAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetOnMemberAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetOnMemberAnnotation.java
new file mode 100644
index 0000000..fc39306
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetOnMemberAnnotation.java
@@ -0,0 +1,33 @@
+/*
+ * 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.progmodel.facets.members.hidden.annotation;
+
+import org.apache.isis.applib.annotation.When;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.progmodel.facets.members.hidden.HiddenFacetImpl;
+
+public class HiddenFacetOnMemberAnnotation extends HiddenFacetImpl {
+
+ public HiddenFacetOnMemberAnnotation(final When when, Where where, final FacetHolder holder) {
+ super(when, where, holder);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetOnMemberFromProperties.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetOnMemberFromProperties.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetOnMemberFromProperties.java
new file mode 100644
index 0000000..780a363
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenFacetOnMemberFromProperties.java
@@ -0,0 +1,53 @@
+/*
+ * 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.progmodel.facets.members.hidden.annotation;
+
+import java.util.Properties;
+
+import org.apache.isis.applib.annotation.Render;
+import org.apache.isis.applib.annotation.When;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.applib.annotation.Render.Type;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.progmodel.facets.members.hidden.HiddenFacetImpl;
+
+public class HiddenFacetOnMemberFromProperties extends HiddenFacetImpl {
+
+ public HiddenFacetOnMemberFromProperties(final When when, Where where, final FacetHolder holder) {
+ super(when, where, holder);
+ }
+
+ public HiddenFacetOnMemberFromProperties(Properties properties, FacetHolder holder) {
+ super(hiddenWhenFrom(properties), hiddenWhereFrom(properties), holder);
+ }
+
+ private static When hiddenWhenFrom(Properties properties) {
+ String value = properties.getProperty("when");
+ // same default as in Hidden.when()
+ return value != null? When.valueOf(value): When.ALWAYS;
+ }
+
+ private static Where hiddenWhereFrom(Properties properties) {
+ String value = properties.getProperty("where");
+ // same default as in Hidden.where()
+ return value != null? Where.valueOf(value): Where.ANYWHERE;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenForMemberFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenForMemberFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenForMemberFacetFactory.java
new file mode 100644
index 0000000..2c5bd7d
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/hidden/annotation/HiddenForMemberFacetFactory.java
@@ -0,0 +1,74 @@
+/*
+ * 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.progmodel.facets.members.hidden.annotation;
+
+import java.util.Properties;
+
+import org.apache.isis.applib.annotation.Hidden;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.hide.HiddenFacet;
+
+public class HiddenForMemberFacetFactory extends FacetFactoryAbstract
+ implements ContributeeMemberFacetFactory {
+
+ public HiddenForMemberFacetFactory() {
+ super(FeatureType.MEMBERS);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+ HiddenFacet hiddenFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
+ if(hiddenFacet == null) {
+ hiddenFacet = createFromAnnotationIfPossible(processMethodContext);
+ }
+ // no-op if null
+ FacetUtil.addFacet(hiddenFacet);
+ }
+
+ @Override
+ public void process(ProcessContributeeMemberContext processMemberContext) {
+ HiddenFacet hiddenFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
+ // no-op if null
+ FacetUtil.addFacet(hiddenFacet);
+ }
+
+ private static HiddenFacet createFromAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
+ final Hidden hiddenAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Hidden.class);
+ return hiddenAnnotation != null
+ ? new HiddenFacetOnMemberAnnotation(hiddenAnnotation.when(), hiddenAnnotation.where(), processMethodContext.getFacetHolder())
+ : null;
+ }
+
+ private static HiddenFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("hidden");
+ return properties != null ? new HiddenFacetOnMemberFromProperties(properties, holder) : null;
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactory.java
deleted file mode 100644
index 7329dfe..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactory.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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.progmodel.facets.members.resolve;
-
-import java.util.Properties;
-
-import org.apache.isis.applib.annotation.Render;
-import org.apache.isis.core.metamodel.facetapi.FacetHolder;
-import org.apache.isis.core.metamodel.facetapi.FacetUtil;
-import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.Annotations;
-import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
-import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.members.resolve.RenderFacet;
-
-public class RenderOrResolveAnnotationFacetFactory extends FacetFactoryAbstract
- implements ContributeeMemberFacetFactory {
-
- public RenderOrResolveAnnotationFacetFactory() {
- super(FeatureType.MEMBERS);
- }
-
- @Override
- public void process(final ProcessMethodContext processMethodContext) {
-
- RenderFacet renderFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
- if(renderFacet == null) {
- renderFacet = createFromRenderAnnotationIfPossible(processMethodContext);
- }
- if(renderFacet == null) {
- renderFacet = createFromResolveAnnotationIfPossible(processMethodContext);
- }
-
- // no-op if null
- FacetUtil.addFacet(renderFacet);
- }
-
- @Override
- public void process(ProcessContributeeMemberContext processMemberContext) {
- RenderFacet renderFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
- // no-op if null
- FacetUtil.addFacet(renderFacet);
- }
-
- private static RenderFacet createFromMetadataPropertiesIfPossible(
- final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
-
- final FacetHolder holder = pcwmp.getFacetHolder();
-
- final Properties properties = pcwmp.metadataProperties("render");
- return properties != null ? new RenderFacetProperties(properties, holder) : null;
- }
-
- private static RenderFacet createFromRenderAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
- RenderFacet renderFacet;
- final Render renderAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Render.class);
- renderFacet = renderAnnotation == null ? null : new RenderFacetAnnotation(processMethodContext.getFacetHolder(), renderAnnotation.value());
- return renderFacet;
- }
-
- // @Render was originally called @Resolve, so look for that annotation instead.
- @SuppressWarnings("deprecation")
- private static RenderFacet createFromResolveAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
- final org.apache.isis.applib.annotation.Resolve resolveAnnotation =
- Annotations.getAnnotation(processMethodContext.getMethod(), org.apache.isis.applib.annotation.Resolve.class);
- return resolveAnnotation == null ? null : new RenderFacetViaResolveAnnotation(processMethodContext.getFacetHolder(), resolveAnnotation.value());
- }
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveFacetFactory.java
new file mode 100644
index 0000000..ffbea4b
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveFacetFactory.java
@@ -0,0 +1,83 @@
+/*
+ * 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.progmodel.facets.members.resolve;
+
+import java.util.Properties;
+
+import org.apache.isis.applib.annotation.Render;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facetapi.FacetUtil;
+import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.Annotations;
+import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
+import org.apache.isis.core.metamodel.facets.members.resolve.RenderFacet;
+
+public class RenderOrResolveFacetFactory extends FacetFactoryAbstract
+ implements ContributeeMemberFacetFactory {
+
+ public RenderOrResolveFacetFactory() {
+ super(FeatureType.MEMBERS);
+ }
+
+ @Override
+ public void process(final ProcessMethodContext processMethodContext) {
+
+ RenderFacet renderFacet = createFromMetadataPropertiesIfPossible(processMethodContext);
+ if(renderFacet == null) {
+ renderFacet = createFromRenderAnnotationIfPossible(processMethodContext);
+ }
+ if(renderFacet == null) {
+ renderFacet = createFromResolveAnnotationIfPossible(processMethodContext);
+ }
+
+ // no-op if null
+ FacetUtil.addFacet(renderFacet);
+ }
+
+ @Override
+ public void process(ProcessContributeeMemberContext processMemberContext) {
+ RenderFacet renderFacet = createFromMetadataPropertiesIfPossible(processMemberContext);
+ // no-op if null
+ FacetUtil.addFacet(renderFacet);
+ }
+
+ private static RenderFacet createFromMetadataPropertiesIfPossible(
+ final ProcessContextWithMetadataProperties<? extends FacetHolder> pcwmp) {
+
+ final FacetHolder holder = pcwmp.getFacetHolder();
+
+ final Properties properties = pcwmp.metadataProperties("render");
+ return properties != null ? new RenderFacetProperties(properties, holder) : null;
+ }
+
+ private static RenderFacet createFromRenderAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
+ final Render renderAnnotation = Annotations.getAnnotation(processMethodContext.getMethod(), Render.class);
+ return renderAnnotation == null ? null : new RenderFacetAnnotation(processMethodContext.getFacetHolder(), renderAnnotation.value());
+ }
+
+ // @Render was originally called @Resolve, so look for that annotation instead.
+ @SuppressWarnings("deprecation")
+ private static RenderFacet createFromResolveAnnotationIfPossible(final ProcessMethodContext processMethodContext) {
+ final org.apache.isis.applib.annotation.Resolve resolveAnnotation =
+ Annotations.getAnnotation(processMethodContext.getMethod(), org.apache.isis.applib.annotation.Resolve.class);
+ return resolveAnnotation == null ? null : new RenderFacetViaResolveAnnotation(processMethodContext.getFacetHolder(), resolveAnnotation.value());
+ }
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
index b830aca..35395f4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/ProgrammingModelFacetsJava5.java
@@ -52,18 +52,18 @@ import org.apache.isis.core.progmodel.facets.fallback.FallbackFacetFactory;
import org.apache.isis.core.progmodel.facets.members.cssclass.CssClassOnMemberFacetFactory;
import org.apache.isis.core.progmodel.facets.members.describedas.annotation.DescribedAsOnMemberFacetFactory;
import org.apache.isis.core.progmodel.facets.members.describedas.staticmethod.DescribedAsFacetViaDescriptionMethodFacetFactory;
-import org.apache.isis.core.progmodel.facets.members.disabled.annotation.DisabledAnnotationFacetFactory;
+import org.apache.isis.core.progmodel.facets.members.disabled.annotation.DisabledFacetFactory;
import org.apache.isis.core.progmodel.facets.members.disabled.forsession.DisabledFacetViaDisableForSessionMethodFacetFactory;
import org.apache.isis.core.progmodel.facets.members.disabled.method.DisabledFacetViaDisableMethodFacetFactory;
import org.apache.isis.core.progmodel.facets.members.disabled.staticmethod.DisabledFacetViaProtectMethodFacetFactory;
-import org.apache.isis.core.progmodel.facets.members.hidden.annotation.HiddenAnnotationForMemberFacetFactory;
+import org.apache.isis.core.progmodel.facets.members.hidden.annotation.HiddenForMemberFacetFactory;
import org.apache.isis.core.progmodel.facets.members.hidden.forsession.HiddenFacetViaHideForSessionMethodFacetFactory;
import org.apache.isis.core.progmodel.facets.members.hidden.method.HiddenFacetViaHideMethodFacetFactory;
import org.apache.isis.core.progmodel.facets.members.hidden.staticmethod.HiddenFacetViaAlwaysHideMethodFacetFactory;
import org.apache.isis.core.progmodel.facets.members.named.annotation.NamedOnMemberFacetFactory;
import org.apache.isis.core.progmodel.facets.members.named.staticmethod.NamedFacetViaNameMethodFacetFactory;
import org.apache.isis.core.progmodel.facets.members.order.MemberOrderFacetFactory;
-import org.apache.isis.core.progmodel.facets.members.resolve.RenderOrResolveAnnotationFacetFactory;
+import org.apache.isis.core.progmodel.facets.members.resolve.RenderOrResolveFacetFactory;
import org.apache.isis.core.progmodel.facets.object.aggregated.annotation.AggregatedAnnotationFacetFactory;
import org.apache.isis.core.progmodel.facets.object.autocomplete.annotation.AutoCompleteAnnotationFacetFactory;
import org.apache.isis.core.progmodel.facets.object.bookmarkable.annotation.BookmarkableAnnotationFacetFactory;
@@ -289,7 +289,7 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(HiddenFacetViaHideForSessionMethodFacetFactory.class);
addFactory(HiddenFacetViaAlwaysHideMethodFacetFactory.class);
addFactory(HiddenFacetViaHideMethodFacetFactory.class);
- addFactory(RenderOrResolveAnnotationFacetFactory.class);
+ addFactory(RenderOrResolveFacetFactory.class);
// objects
addFactory(ObjectSpecIdAnnotationFacetFactory.class);
@@ -330,7 +330,7 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(DescribedAsOnMemberFacetFactory.class);
addFactory(DescribedAsAnnotationOnParameterFacetFactory.class);
- addFactory(DisabledAnnotationFacetFactory.class);
+ addFactory(DisabledFacetFactory.class);
addFactory(EncodableAnnotationFacetFactory.class);
addFactory(ExplorationAnnotationFacetFactory.class);
addFactory(PrototypeAnnotationFacetFactory.class);
@@ -341,7 +341,7 @@ public final class ProgrammingModelFacetsJava5 extends ProgrammingModelAbstract
addFactory(HiddenAnnotationForTypeFacetFactory.class);
// must come after the TitleAnnotationFacetFactory, because can act as an override
- addFactory(HiddenAnnotationForMemberFacetFactory.class);
+ addFactory(HiddenForMemberFacetFactory.class);
addFactory(CssClassAnnotationForTypeFacetFactory.class);
addFactory(CssClassOnMemberFacetFactory.class);
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/disabled/DisabledAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/disabled/DisabledAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/disabled/DisabledAnnotationFacetFactoryTest.java
index 1e7ab80..dd2af4d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/disabled/DisabledAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/disabled/DisabledAnnotationFacetFactoryTest.java
@@ -33,17 +33,17 @@ import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
import org.apache.isis.core.progmodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.progmodel.facets.members.disabled.DisabledFacet;
import org.apache.isis.core.progmodel.facets.members.disabled.DisabledFacetAbstract;
-import org.apache.isis.core.progmodel.facets.members.disabled.annotation.DisabledAnnotationFacetFactory;
+import org.apache.isis.core.progmodel.facets.members.disabled.annotation.DisabledFacetFactory;
public class DisabledAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
- private DisabledAnnotationFacetFactory facetFactory;
+ private DisabledFacetFactory facetFactory;
@Override
protected void setUp() throws Exception {
super.setUp();
- facetFactory = new DisabledAnnotationFacetFactory();
+ facetFactory = new DisabledFacetFactory();
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/hidden/HiddenAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/hidden/HiddenAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/hidden/HiddenAnnotationFacetFactoryTest.java
index c3494ff..c96ce8f 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/hidden/HiddenAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/hidden/HiddenAnnotationFacetFactoryTest.java
@@ -30,17 +30,17 @@ import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
import org.apache.isis.core.metamodel.facets.hide.HiddenFacet;
import org.apache.isis.core.progmodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.progmodel.facets.members.hidden.HiddenFacetAbstract;
-import org.apache.isis.core.progmodel.facets.members.hidden.annotation.HiddenAnnotationForMemberFacetFactory;
+import org.apache.isis.core.progmodel.facets.members.hidden.annotation.HiddenForMemberFacetFactory;
public class HiddenAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
- private HiddenAnnotationForMemberFacetFactory facetFactory;
+ private HiddenForMemberFacetFactory facetFactory;
@Override
protected void setUp() throws Exception {
super.setUp();
- facetFactory = new HiddenAnnotationForMemberFacetFactory();
+ facetFactory = new HiddenForMemberFacetFactory();
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withRenderAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withRenderAnnotation.java b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withRenderAnnotation.java
index ec35e88..4b65f1d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withRenderAnnotation.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withRenderAnnotation.java
@@ -34,13 +34,13 @@ import org.apache.isis.core.progmodel.facets.AbstractFacetFactoryTest;
public class RenderOrResolveAnnotationFacetFactoryTest_withRenderAnnotation extends AbstractFacetFactoryTest {
- private RenderOrResolveAnnotationFacetFactory facetFactory;
+ private RenderOrResolveFacetFactory facetFactory;
@Override
protected void setUp() throws Exception {
super.setUp();
- facetFactory = new RenderOrResolveAnnotationFacetFactory();
+ facetFactory = new RenderOrResolveFacetFactory();
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withResolveAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withResolveAnnotation.java b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withResolveAnnotation.java
index 765dfc5..1feecaf 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withResolveAnnotation.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/progmodel/facets/members/resolve/RenderOrResolveAnnotationFacetFactoryTest_withResolveAnnotation.java
@@ -33,13 +33,13 @@ import org.apache.isis.core.progmodel.facets.AbstractFacetFactoryTest;
public class RenderOrResolveAnnotationFacetFactoryTest_withResolveAnnotation extends AbstractFacetFactoryTest {
- private RenderOrResolveAnnotationFacetFactory facetFactory;
+ private RenderOrResolveFacetFactory facetFactory;
@Override
protected void setUp() throws Exception {
super.setUp();
- facetFactory = new RenderOrResolveAnnotationFacetFactory();
+ facetFactory = new RenderOrResolveFacetFactory();
}
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.json
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.json b/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.json
index b108397..390d5a0 100644
--- a/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.json
+++ b/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.json
@@ -41,13 +41,22 @@
describedAs: {
value: "Whether this todo item has been completed"
},
- cssClass: { value: "x-highlight" }
+ cssClass: { value: "x-highlight" },
+ disabled: {
+ where: ANYWHERE,
+ when: ALWAYS
+ }
}
}
},
Misc: {
members: {
- versionSequence: {}
+ versionSequence: {
+ hidden: {
+ where: ALL_TABLES,
+ when: ALWAYS
+ }
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.properties
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.properties b/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.properties
index 03393b7..473f6ad 100644
--- a/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.properties
+++ b/core/metamodel/src/test/resources/org/apache/isis/core/metamodel/layoutmetadata/json/ExampleDomainObject.layout.properties
@@ -37,6 +37,8 @@ member.complete.memberOrder.name=General
member.complete.named.value=Done
member.complete.cssClass.value=x-highlight
member.complete.describedAs.value=Whether this todo item has been completed
+member.complete.disabled.where=ANYWHERE
+member.complete.disabled.when=ALWAYS
member.description.memberOrder.sequence=1
member.category.memberOrder.sequence=2
@@ -45,6 +47,8 @@ member.complete.memberOrder.sequence=3
# Properties (Misc)
member.versionSequence.memberOrder.name=Misc
member.versionSequence.memberOrder.sequence=4
+member.versionSequence.hidden.where=ALL_TABLES
+member.versionSequence.hidden.when=ANYWHERE
# Properties (Detail)
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
index e0290d7..1764574 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java
@@ -248,7 +248,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
private Category category;
@javax.jdo.annotations.Column(allowsNull="false")
- @Disabled(reason="Use action to update both category and subcategory")
public Category getCategory() {
return category;
}
@@ -262,7 +261,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
private Subcategory subcategory;
@javax.jdo.annotations.Column(allowsNull="false")
- @Disabled(reason="Use action to update both category and subcategory")
public Subcategory getSubcategory() {
return subcategory;
}
@@ -278,7 +276,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
private String ownedBy;
@javax.jdo.annotations.Column(allowsNull="false")
- @Hidden
public String getOwnedBy() {
return ownedBy;
}
@@ -379,7 +376,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
private String notes;
@javax.jdo.annotations.Column(allowsNull="true", length=400)
- @Hidden(where=Where.ALL_TABLES)
public String getNotes() {
return notes;
}
@@ -396,7 +392,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
@javax.jdo.annotations.Persistent(defaultFetchGroup="false")
@javax.jdo.annotations.Column(allowsNull="true")
- @Hidden(where=Where.STANDALONE_TABLES)
public Blob getAttachment() {
return attachment;
}
@@ -409,8 +404,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
// Version (derived property)
// //////////////////////////////////////
- @Hidden(where=Where.ALL_TABLES)
- @Disabled
public Long getVersionSequence() {
if(!(this instanceof PersistenceCapable)) {
return null;
@@ -452,7 +445,6 @@ public class ToDoItem implements Comparable<ToDoItem> /*, Locatable*/ { // GMAP3
private SortedSet<ToDoItem> dependencies = new TreeSet<ToDoItem>();
@SortedBy(DependenciesComparator.class)
- @Disabled
public SortedSet<ToDoItem> getDependencies() {
return dependencies;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/5e5b07c4/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.layout.json
----------------------------------------------------------------------
diff --git a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.layout.json b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.layout.json
index 00d8b48..b980042 100644
--- a/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.layout.json
+++ b/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.layout.json
@@ -24,8 +24,15 @@
description: {
typicalLength: { value: 50 }
},
- category: {},
+ category: {
+ disabled: {
+ reason: "Use action to update both category and subcategory"
+ }
+ },
subcategory: {
+ disabled: {
+ reason: "Use action to update both category and subcategory"
+ },
actions: {
updateCategory: {
named: {
@@ -35,6 +42,9 @@
analyseCategory: {}
}
},
+ ownedBy: {
+ hidden: {}
+ },
complete: {
actions: {
completed: {
@@ -57,7 +67,13 @@
Misc: {
members: {
versionSequence: {
- named: { value: "Version" }
+ named: {
+ value: "Version"
+ },
+ disabled: {},
+ hidden: {
+ where: ALL_TABLES
+ }
}
}
}
@@ -89,9 +105,16 @@
notes: {
multiLine: {
numberOfLines: 5
+ },
+ hidden: {
+ where: ALL_TABLES
}
},
- attachment: {}
+ attachment: {
+ hidden: {
+ where: STANDALONE_TABLES
+ }
+ }
}
}
}
@@ -103,6 +126,7 @@
span: 6,
collections: {
dependencies: {
+ disabled: {},
actions: {
add:{},
remove: {
@@ -117,6 +141,7 @@
}
},
similarTo: {
+ disabled: {},
paged: {
value: 3
},