You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/07/08 07:25:58 UTC
[isis] branch master updated: ISIS-3049: improved MM tree view: indicate whether mixed-in in member-node titles
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new ade0b47043 ISIS-3049: improved MM tree view: indicate whether mixed-in in member-node titles
ade0b47043 is described below
commit ade0b470436a45460900df7282b42fdffcfbd7e4
Author: andi-huber <ah...@apache.org>
AuthorDate: Fri Jul 8 09:25:50 2022 +0200
ISIS-3049: improved MM tree view: indicate whether mixed-in in
member-node titles
---
.../core/metamodel/inspect/model/ActionNode.java | 33 +++++++----------
.../metamodel/inspect/model/CollectionNode.java | 29 +++++----------
.../isis/core/metamodel/inspect/model/MMNode.java | 1 +
.../model/{PropertyNode.java => MemberNode.java} | 42 ++++++++--------------
.../core/metamodel/inspect/model/PropertyNode.java | 29 +++++----------
5 files changed, 44 insertions(+), 90 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/ActionNode.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/ActionNode.java
index 94162ac5d6..cd0b9d40ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/ActionNode.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/ActionNode.java
@@ -24,7 +24,6 @@ import javax.inject.Named;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
import org.apache.isis.applib.IsisModuleApplib;
import org.apache.isis.applib.annotation.DomainObject;
@@ -33,6 +32,7 @@ import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.schema.metamodel.v2.Action;
+import org.apache.isis.schema.metamodel.v2.Member;
import lombok.Getter;
import lombok.Setter;
@@ -46,44 +46,37 @@ import lombok.ToString;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@ToString
-public class ActionNode extends MMNode {
+public class ActionNode extends MemberNode {
public static final String LOGICAL_TYPE_NAME = IsisModuleApplib.NAMESPACE + ".ActionNode";
@Property(hidden = Where.EVERYWHERE)
@Getter @Setter private Action action;
- @Getter @Setter private boolean mixedIn;
-
@Override
public String createTitle() {
- return String.format("%s(...): %s", action.getId(), typeToString(action.getReturnType()));
- }
-
- @Override
- protected String iconSuffix() {
- return isMixedIn() ? "mixedin" : "";
+ return String.format("%s(...): %s%s",
+ action.getId(),
+ typeToString(action.getReturnType()),
+ titleSuffix());
}
- // -- TREE NODE STUFF
-
- @Getter @Setter @XmlTransient
- private TypeNode parentNode;
-
@Override
public Stream<MMNode> streamChildNodes() {
return Stream.<MMNode>concat(
- Stream.of(
- MMNodeFactory.facetGroup(action.getFacets(), this)),
+ super.streamChildNodes(),
- action.getParams().getParam()
- .stream()
- .map(param->MMNodeFactory.param(param, this))
+ action.getParams().getParam().stream()
+ .map(param->MMNodeFactory.param(param, this))
);
+ }
+ @Override
+ protected Member member() {
+ return action;
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/CollectionNode.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/CollectionNode.java
index 671df68fe3..48911029c1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/CollectionNode.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/CollectionNode.java
@@ -18,13 +18,10 @@
*/
package org.apache.isis.core.metamodel.inspect.model;
-import java.util.stream.Stream;
-
import javax.inject.Named;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
import org.apache.isis.applib.IsisModuleApplib;
import org.apache.isis.applib.annotation.DomainObject;
@@ -33,6 +30,7 @@ import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.schema.metamodel.v2.Collection;
+import org.apache.isis.schema.metamodel.v2.Member;
import lombok.Getter;
import lombok.Setter;
@@ -46,36 +44,25 @@ import lombok.ToString;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@ToString
-public class CollectionNode extends MMNode {
+public class CollectionNode extends MemberNode {
public static final String LOGICAL_TYPE_NAME = IsisModuleApplib.NAMESPACE + ".CollectionNode";
@Property(hidden = Where.EVERYWHERE)
@Getter @Setter private Collection collection;
- @Getter @Setter private boolean mixedIn;
-
@Override
public String createTitle() {
- return String.format("%s: %s", collection.getId(), typeToString(collection.getType()));
- }
-
- @Override
- protected String iconSuffix() {
- return isMixedIn() ? "mixedin" : "";
+ return String.format("%s: %s%s",
+ collection.getId(),
+ typeToString(collection.getType()),
+ titleSuffix());
}
- // -- TREE NODE STUFF
-
- @Getter @Setter @XmlTransient
- private TypeNode parentNode;
-
@Override
- public Stream<MMNode> streamChildNodes() {
- return Stream.of(
- MMNodeFactory.facetGroup(collection.getFacets(), this));
+ protected Member member() {
+ return collection;
}
-
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/MMNode.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/MMNode.java
index 2f41367263..005a85adb2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/MMNode.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/MMNode.java
@@ -38,6 +38,7 @@ import org.apache.isis.schema.metamodel.v2.DomainClassDto;
import lombok.Setter;
@XmlSeeAlso({
+ MemberNode.class,
ActionNode.class,
CollectionNode.class,
FacetAttrNode.class,
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/PropertyNode.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/MemberNode.java
similarity index 54%
copy from core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/PropertyNode.java
copy to core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/MemberNode.java
index 35ff89aa7e..56d1f5197b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/PropertyNode.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/MemberNode.java
@@ -20,60 +20,46 @@ package org.apache.isis.core.metamodel.inspect.model;
import java.util.stream.Stream;
-import javax.inject.Named;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
-import org.apache.isis.applib.IsisModuleApplib;
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.Introspection;
-import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.schema.metamodel.v2.Member;
import lombok.Getter;
import lombok.Setter;
-import lombok.ToString;
+import lombok.experimental.Accessors;
-@Named(PropertyNode.LOGICAL_TYPE_NAME)
-@DomainObject(
- nature=Nature.VIEW_MODEL,
- introspection = Introspection.ANNOTATION_REQUIRED)
-@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
-@ToString
-public class PropertyNode extends MMNode {
+public abstract class MemberNode extends MMNode {
- public static final String LOGICAL_TYPE_NAME = IsisModuleApplib.NAMESPACE + ".PropertyNode";
+ // -- MIXIN STUFF
- @Property(hidden = Where.EVERYWHERE)
- @Getter @Setter private org.apache.isis.schema.metamodel.v2.Property property;
-
- @Getter @Setter private boolean mixedIn;
+ @Getter @Setter @Accessors(makeFinal = true)
+ private boolean mixedIn;
@Override
- public String createTitle() {
- return String.format("%s: %s", property.getId(), typeToString(property.getType()));
+ protected final String iconSuffix() {
+ return isMixedIn() ? "mixedin" : "";
}
- @Override
- protected String iconSuffix() {
- return isMixedIn() ? "mixedin" : "";
+ protected final String titleSuffix() {
+ return isMixedIn() ? " (mixed in)" : "";
}
// -- TREE NODE STUFF
- @Getter @Setter @XmlTransient
+ @XmlTransient
+ @Getter @Setter @Accessors(makeFinal = true)
private TypeNode parentNode;
@Override
public Stream<MMNode> streamChildNodes() {
return Stream.of(
- MMNodeFactory.facetGroup(property.getFacets(), this));
+ MMNodeFactory.facetGroup(member().getFacets(), this));
}
+ protected abstract Member member();
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/PropertyNode.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/PropertyNode.java
index 35ff89aa7e..41e596b3a3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/PropertyNode.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/inspect/model/PropertyNode.java
@@ -18,13 +18,10 @@
*/
package org.apache.isis.core.metamodel.inspect.model;
-import java.util.stream.Stream;
-
import javax.inject.Named;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
import org.apache.isis.applib.IsisModuleApplib;
import org.apache.isis.applib.annotation.DomainObject;
@@ -32,6 +29,7 @@ import org.apache.isis.applib.annotation.Introspection;
import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.schema.metamodel.v2.Member;
import lombok.Getter;
import lombok.Setter;
@@ -44,36 +42,25 @@ import lombok.ToString;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@ToString
-public class PropertyNode extends MMNode {
+public class PropertyNode extends MemberNode {
public static final String LOGICAL_TYPE_NAME = IsisModuleApplib.NAMESPACE + ".PropertyNode";
@Property(hidden = Where.EVERYWHERE)
@Getter @Setter private org.apache.isis.schema.metamodel.v2.Property property;
- @Getter @Setter private boolean mixedIn;
-
@Override
public String createTitle() {
- return String.format("%s: %s", property.getId(), typeToString(property.getType()));
- }
-
- @Override
- protected String iconSuffix() {
- return isMixedIn() ? "mixedin" : "";
+ return String.format("%s: %s%s",
+ property.getId(),
+ typeToString(property.getType()),
+ titleSuffix());
}
- // -- TREE NODE STUFF
-
- @Getter @Setter @XmlTransient
- private TypeNode parentNode;
-
@Override
- public Stream<MMNode> streamChildNodes() {
- return Stream.of(
- MMNodeFactory.facetGroup(property.getFacets(), this));
+ protected Member member() {
+ return property;
}
-
}