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 2016/02/10 12:33:36 UTC
[3/5] isis git commit: ISIS-993: fleshing out the
GridNormalizerServiceAbstract for the "complete" and "minimal" updating of
Grid graphs (prior to conversion to XML).
ISIS-993: fleshing out the GridNormalizerServiceAbstract for the "complete" and "minimal" updating of Grid graphs (prior to conversion to XML).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/6053d1a8
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/6053d1a8
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/6053d1a8
Branch: refs/heads/ISIS-993
Commit: 6053d1a8efed2d5cae9cbbc8b0497796397686cd
Parents: 5c83175
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Feb 10 10:21:00 2016 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Wed Feb 10 10:21:00 2016 +0000
----------------------------------------------------------------------
.../isis/applib/layout/bootstrap3/BS3Grid.java | 2 +-
.../applib/layout/common/ActionLayoutData.java | 19 +-
.../layout/common/CollectionLayoutData.java | 22 +-
.../common/CollectionLayoutDataOwner.java | 1 +
.../layout/common/DomainObjectLayoutData.java | 16 +-
.../isis/applib/layout/common/FieldSet.java | 11 +-
.../applib/layout/common/HasBookmarking.java | 14 +
.../isis/applib/layout/common/HasCssClass.java | 12 +
.../applib/layout/common/HasCssClassFa.java | 16 +
.../applib/layout/common/HasDescribedAs.java | 12 +
.../isis/applib/layout/common/HasHidden.java | 14 +
.../isis/applib/layout/common/HasNamed.java | 17 ++
.../isis/applib/layout/common/MemberRegion.java | 2 +-
.../layout/common/PropertyLayoutData.java | 16 +-
.../members/cssclassfa/CssClassFaPosition.java | 24 ++
.../grid/GridNormalizerServiceAbstract.java | 301 ++++++++++++++++++-
16 files changed, 479 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java b/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java
index a893cfb..5d0cb47 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/bootstrap3/BS3Grid.java
@@ -113,7 +113,7 @@ public class BS3Grid extends GridAbstract implements BS3Element, Dto, BS3RowOwne
- interface Visitor extends Grid.Visitor {
+ public interface Visitor extends Grid.Visitor {
void preVisit(final BS3Grid bs3Grid);
void visit(final BS3Grid bs3Grid);
void postVisit(final BS3Grid bs3Grid);
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java
index f1aa540..5097349 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/ActionLayoutData.java
@@ -48,7 +48,8 @@ import org.apache.isis.applib.annotation.Where;
, "metadataError"
}
)
-public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwner> {
+public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwner>,HasCssClass, HasCssClassFa,
+ HasDescribedAs, HasHidden, HasNamed, HasBookmarking {
private static final long serialVersionUID = 1L;
@@ -79,11 +80,13 @@ public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwn
private BookmarkPolicy bookmarking;
+ @Override
@XmlAttribute(required = false)
public BookmarkPolicy getBookmarking() {
return bookmarking;
}
+ @Override
public void setBookmarking(BookmarkPolicy bookmarking) {
this.bookmarking = bookmarking;
}
@@ -91,11 +94,13 @@ public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwn
private String cssClass;
+ @Override
@XmlAttribute(required = false)
public String getCssClass() {
return cssClass;
}
+ @Override
public void setCssClass(String cssClass) {
this.cssClass = cssClass;
}
@@ -103,11 +108,13 @@ public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwn
private String cssClassFa;
+ @Override
@XmlAttribute(required = false)
public String getCssClassFa() {
return cssClassFa;
}
+ @Override
public void setCssClassFa(String cssClassFa) {
this.cssClassFa = cssClassFa;
}
@@ -116,11 +123,13 @@ public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwn
private org.apache.isis.applib.annotation.ActionLayout.CssClassFaPosition cssClassFaPosition;
+ @Override
@XmlAttribute(required = false)
public org.apache.isis.applib.annotation.ActionLayout.CssClassFaPosition getCssClassFaPosition() {
return cssClassFaPosition;
}
+ @Override
public void setCssClassFaPosition(org.apache.isis.applib.annotation.ActionLayout.CssClassFaPosition cssClassFaPosition) {
this.cssClassFaPosition = cssClassFaPosition;
}
@@ -128,11 +137,13 @@ public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwn
private String describedAs;
+ @Override
@XmlElement(required = false)
public String getDescribedAs() {
return describedAs;
}
+ @Override
public void setDescribedAs(String describedAs) {
this.describedAs = describedAs;
}
@@ -141,11 +152,13 @@ public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwn
private Where hidden;
+ @Override
@XmlAttribute(required = false)
public Where getHidden() {
return hidden;
}
+ @Override
public void setHidden(Where hidden) {
this.hidden = hidden;
}
@@ -154,11 +167,13 @@ public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwn
private String named;
+ @Override
@XmlElement(required = false)
public String getNamed() {
return named;
}
+ @Override
public void setNamed(String named) {
this.named = named;
}
@@ -167,11 +182,13 @@ public class ActionLayoutData implements Serializable, Owned<ActionLayoutDataOwn
private Boolean namedEscaped;
+ @Override
@XmlAttribute(required = false)
public Boolean getNamedEscaped() {
return namedEscaped;
}
+ @Override
public void setNamedEscaped(Boolean namedEscaped) {
this.namedEscaped = namedEscaped;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutData.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutData.java
index 19758d6..05a331f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutData.java
@@ -52,7 +52,11 @@ import org.apache.isis.applib.annotation.Where;
, "metadataError"
}
)
-public class CollectionLayoutData implements MemberRegion, ActionLayoutDataOwner, Serializable {
+public class CollectionLayoutData
+ implements MemberRegion<CollectionLayoutDataOwner>,
+ ActionLayoutDataOwner,
+ Serializable,
+ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
private static final long serialVersionUID = 1L;
@@ -81,11 +85,13 @@ public class CollectionLayoutData implements MemberRegion, ActionLayoutDataOwner
private String cssClass;
+ @Override
@XmlAttribute(required = false)
public String getCssClass() {
return cssClass;
}
+ @Override
public void setCssClass(String cssClass) {
this.cssClass = cssClass;
}
@@ -94,11 +100,13 @@ public class CollectionLayoutData implements MemberRegion, ActionLayoutDataOwner
private String describedAs;
+ @Override
@XmlElement(required = false)
public String getDescribedAs() {
return describedAs;
}
+ @Override
public void setDescribedAs(String describedAs) {
this.describedAs = describedAs;
}
@@ -123,11 +131,13 @@ public class CollectionLayoutData implements MemberRegion, ActionLayoutDataOwner
private Where hidden;
+ @Override
@XmlAttribute(required = false)
public Where getHidden() {
return hidden;
}
+ @Override
public void setHidden(Where hidden) {
this.hidden = hidden;
}
@@ -135,11 +145,13 @@ public class CollectionLayoutData implements MemberRegion, ActionLayoutDataOwner
private String named;
+ @Override
@XmlElement(required = false)
public String getNamed() {
return named;
}
+ @Override
public void setNamed(String named) {
this.named = named;
}
@@ -147,11 +159,13 @@ public class CollectionLayoutData implements MemberRegion, ActionLayoutDataOwner
private Boolean namedEscaped;
+ @Override
@XmlAttribute(required = false)
public Boolean getNamedEscaped() {
return namedEscaped;
}
+ @Override
public void setNamedEscaped(Boolean namedEscaped) {
this.namedEscaped = namedEscaped;
}
@@ -197,7 +211,7 @@ public class CollectionLayoutData implements MemberRegion, ActionLayoutDataOwner
- private MemberRegionOwner owner;
+ private CollectionLayoutDataOwner owner;
/**
* Owner.
*
@@ -206,11 +220,11 @@ public class CollectionLayoutData implements MemberRegion, ActionLayoutDataOwner
* </p>
*/
@XmlTransient
- public MemberRegionOwner getOwner() {
+ public CollectionLayoutDataOwner getOwner() {
return owner;
}
- public void setOwner(final MemberRegionOwner owner) {
+ public void setOwner(final CollectionLayoutDataOwner owner) {
this.owner = owner;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutDataOwner.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutDataOwner.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutDataOwner.java
index 438ae56..0eae2c7 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutDataOwner.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/CollectionLayoutDataOwner.java
@@ -21,5 +21,6 @@ package org.apache.isis.applib.layout.common;
import java.util.List;
public interface CollectionLayoutDataOwner extends MemberRegionOwner {
+
List<CollectionLayoutData> getCollections();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java
index 0db726a..702a3d6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/DomainObjectLayoutData.java
@@ -43,7 +43,8 @@ import org.apache.isis.applib.annotation.BookmarkPolicy;
, "metadataError"
}
)
-public class DomainObjectLayoutData implements Serializable {
+public class DomainObjectLayoutData implements Serializable,
+ HasBookmarking, HasCssClass, HasCssClassFa, HasDescribedAs, HasNamed {
private static final long serialVersionUID = 1L;
@@ -126,6 +127,19 @@ public class DomainObjectLayoutData implements Serializable {
}
+ private Boolean namedEscaped;
+
+ @Override
+ @XmlAttribute(required = false)
+ public Boolean getNamedEscaped() {
+ return namedEscaped;
+ }
+
+ @Override
+ public void setNamedEscaped(Boolean namedEscaped) {
+ this.namedEscaped = namedEscaped;
+ }
+
private String plural;
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/FieldSet.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/FieldSet.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/FieldSet.java
index 262796b..7037135 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/FieldSet.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/FieldSet.java
@@ -51,7 +51,10 @@ import org.apache.isis.applib.layout.bootstrap3.BS3Col;
, "metadataError"
}
)
-public class FieldSet implements MemberRegion, ActionLayoutDataOwner, Serializable {
+public class FieldSet
+ implements MemberRegion<FieldSetOwner>,
+ ActionLayoutDataOwner,
+ Serializable {
private static final long serialVersionUID = 1L;
@@ -162,7 +165,7 @@ public class FieldSet implements MemberRegion, ActionLayoutDataOwner, Serializab
}
- private MemberRegionOwner owner;
+ private FieldSetOwner owner;
/**
* Owner.
*
@@ -171,11 +174,11 @@ public class FieldSet implements MemberRegion, ActionLayoutDataOwner, Serializab
* </p>
*/
@XmlTransient
- public MemberRegionOwner getOwner() {
+ public FieldSetOwner getOwner() {
return owner;
}
- public void setOwner(final MemberRegionOwner owner) {
+ public void setOwner(final FieldSetOwner owner) {
this.owner = owner;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasBookmarking.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasBookmarking.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasBookmarking.java
new file mode 100644
index 0000000..ad841a2
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasBookmarking.java
@@ -0,0 +1,14 @@
+package org.apache.isis.applib.layout.common;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+import org.apache.isis.applib.annotation.BookmarkPolicy;
+
+/**
+ * Created by Dan on 10/02/2016.
+ */
+public interface HasBookmarking {
+ @XmlAttribute(required = false) BookmarkPolicy getBookmarking();
+
+ void setBookmarking(BookmarkPolicy bookmarking);
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasCssClass.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasCssClass.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasCssClass.java
new file mode 100644
index 0000000..e42dc09
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasCssClass.java
@@ -0,0 +1,12 @@
+package org.apache.isis.applib.layout.common;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+/**
+ * Created by Dan on 10/02/2016.
+ */
+public interface HasCssClass {
+ @XmlAttribute(required = false) String getCssClass();
+
+ void setCssClass(String cssClass);
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasCssClassFa.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasCssClassFa.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasCssClassFa.java
new file mode 100644
index 0000000..763b8dd
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasCssClassFa.java
@@ -0,0 +1,16 @@
+package org.apache.isis.applib.layout.common;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+/**
+ * Created by Dan on 10/02/2016.
+ */
+public interface HasCssClassFa {
+ @XmlAttribute(required = false) String getCssClassFa();
+
+ void setCssClassFa(String cssClassFa);
+
+ @XmlAttribute(required = false) org.apache.isis.applib.annotation.ActionLayout.CssClassFaPosition getCssClassFaPosition();
+
+ void setCssClassFaPosition(org.apache.isis.applib.annotation.ActionLayout.CssClassFaPosition cssClassFaPosition);
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasDescribedAs.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasDescribedAs.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasDescribedAs.java
new file mode 100644
index 0000000..f19c95a
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasDescribedAs.java
@@ -0,0 +1,12 @@
+package org.apache.isis.applib.layout.common;
+
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * Created by Dan on 10/02/2016.
+ */
+public interface HasDescribedAs {
+ @XmlElement(required = false) String getDescribedAs();
+
+ void setDescribedAs(String describedAs);
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasHidden.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasHidden.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasHidden.java
new file mode 100644
index 0000000..7953141
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasHidden.java
@@ -0,0 +1,14 @@
+package org.apache.isis.applib.layout.common;
+
+import javax.xml.bind.annotation.XmlAttribute;
+
+import org.apache.isis.applib.annotation.Where;
+
+/**
+ * Created by Dan on 10/02/2016.
+ */
+public interface HasHidden {
+ @XmlAttribute(required = false) Where getHidden();
+
+ void setHidden(Where hidden);
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasNamed.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasNamed.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasNamed.java
new file mode 100644
index 0000000..4a29ee9
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/HasNamed.java
@@ -0,0 +1,17 @@
+package org.apache.isis.applib.layout.common;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+
+/**
+ * Created by Dan on 10/02/2016.
+ */
+public interface HasNamed {
+ @XmlElement(required = false) String getNamed();
+
+ void setNamed(String named);
+
+ @XmlAttribute(required = false) Boolean getNamedEscaped();
+
+ void setNamedEscaped(Boolean namedEscaped);
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/MemberRegion.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/MemberRegion.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/MemberRegion.java
index daf4aed4..f335cde 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/MemberRegion.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/MemberRegion.java
@@ -27,7 +27,7 @@ package org.apache.isis.applib.layout.common;
* (containing a single collection and associated actions)
* </p>
*/
-public interface MemberRegion extends Owned<MemberRegionOwner> {
+public interface MemberRegion<T extends MemberRegionOwner> extends Owned<T> {
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/applib/src/main/java/org/apache/isis/applib/layout/common/PropertyLayoutData.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/common/PropertyLayoutData.java b/core/applib/src/main/java/org/apache/isis/applib/layout/common/PropertyLayoutData.java
index 91e7ee0..9bbec66 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/common/PropertyLayoutData.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/common/PropertyLayoutData.java
@@ -45,7 +45,11 @@ import org.apache.isis.applib.annotation.Where;
, "metadataError"
}
)
-public class PropertyLayoutData implements ActionLayoutDataOwner, Serializable, Owned<FieldSet> {
+public class PropertyLayoutData
+ implements ActionLayoutDataOwner,
+ Serializable,
+ Owned<FieldSet>,
+ HasCssClass, HasDescribedAs, HasHidden, HasNamed {
private static final long serialVersionUID = 1L;
@@ -74,11 +78,13 @@ public class PropertyLayoutData implements ActionLayoutDataOwner, Serializable,
private String cssClass;
+ @Override
@XmlAttribute(required = false)
public String getCssClass() {
return cssClass;
}
+ @Override
public void setCssClass(String cssClass) {
this.cssClass = cssClass;
}
@@ -86,11 +92,13 @@ public class PropertyLayoutData implements ActionLayoutDataOwner, Serializable,
private String describedAs;
+ @Override
@XmlElement(required = false)
public String getDescribedAs() {
return describedAs;
}
+ @Override
public void setDescribedAs(String describedAs) {
this.describedAs = describedAs;
}
@@ -98,11 +106,13 @@ public class PropertyLayoutData implements ActionLayoutDataOwner, Serializable,
private Where hidden;
+ @Override
@XmlAttribute(required = false)
public Where getHidden() {
return hidden;
}
+ @Override
public void setHidden(Where hidden) {
this.hidden = hidden;
}
@@ -134,11 +144,13 @@ public class PropertyLayoutData implements ActionLayoutDataOwner, Serializable,
private String named;
+ @Override
@XmlElement(required = false)
public String getNamed() {
return named;
}
+ @Override
public void setNamed(String named) {
this.named = named;
}
@@ -146,11 +158,13 @@ public class PropertyLayoutData implements ActionLayoutDataOwner, Serializable,
private Boolean namedEscaped;
+ @Override
@XmlAttribute(required = false)
public Boolean getNamedEscaped() {
return namedEscaped;
}
+ @Override
public void setNamedEscaped(Boolean namedEscaped) {
this.namedEscaped = namedEscaped;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaPosition.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaPosition.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaPosition.java
index 4692f6a..a08e4af 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaPosition.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/CssClassFaPosition.java
@@ -72,4 +72,28 @@ public enum CssClassFaPosition {
}
throw new IllegalArgumentException("not recognized: " + cssClassFaPosition);
}
+ @Deprecated
+ public DomainObjectLayout.CssClassFaPosition toDomainObjectLayoutPosition() {
+ if (this == CssClassFaPosition.LEFT) {
+ return DomainObjectLayout.CssClassFaPosition.LEFT;
+ } else {
+ return DomainObjectLayout.CssClassFaPosition.RIGHT;
+ }
+ }
+ @Deprecated
+ public ViewModelLayout.CssClassFaPosition toViewModelLayoutPosition() {
+ if (this == CssClassFaPosition.LEFT) {
+ return ViewModelLayout.CssClassFaPosition.LEFT;
+ } else {
+ return ViewModelLayout.CssClassFaPosition.RIGHT;
+ }
+ }
+ @Deprecated
+ public ActionLayout.CssClassFaPosition toActionLayoutPosition() {
+ if (this == CssClassFaPosition.LEFT) {
+ return ActionLayout.CssClassFaPosition.LEFT;
+ } else {
+ return ActionLayout.CssClassFaPosition.RIGHT;
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/isis/blob/6053d1a8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java
index 79d3548..3c38356 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/grid/GridNormalizerServiceAbstract.java
@@ -17,6 +17,7 @@
package org.apache.isis.core.metamodel.services.grid;
import java.util.Collection;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
@@ -30,22 +31,30 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.isis.applib.DomainObjectContainer;
+import org.apache.isis.applib.annotation.ActionLayout;
+import org.apache.isis.applib.annotation.BookmarkPolicy;
+import org.apache.isis.applib.annotation.LabelPosition;
import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.services.layout.GridNormalizerService;
+import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.layout.common.ActionLayoutData;
import org.apache.isis.applib.layout.common.ActionLayoutDataOwner;
import org.apache.isis.applib.layout.common.CollectionLayoutData;
+import org.apache.isis.applib.layout.common.DomainObjectLayoutData;
import org.apache.isis.applib.layout.common.FieldSet;
import org.apache.isis.applib.layout.common.Grid;
+import org.apache.isis.applib.layout.common.HasBookmarking;
+import org.apache.isis.applib.layout.common.HasCssClass;
+import org.apache.isis.applib.layout.common.HasCssClassFa;
+import org.apache.isis.applib.layout.common.HasDescribedAs;
+import org.apache.isis.applib.layout.common.HasHidden;
+import org.apache.isis.applib.layout.common.HasNamed;
import org.apache.isis.applib.layout.common.MemberRegionOwner;
import org.apache.isis.applib.layout.common.PropertyLayoutData;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumn;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumnOwner;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCGrid;
-import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCTab;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.jaxb.JaxbService;
+import org.apache.isis.applib.services.layout.GridNormalizerService;
import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facetapi.FacetUtil;
import org.apache.isis.core.metamodel.facets.actions.layout.ActionPositionFacetForActionXml;
import org.apache.isis.core.metamodel.facets.actions.layout.BookmarkPolicyFacetForActionXml;
@@ -54,6 +63,11 @@ import org.apache.isis.core.metamodel.facets.actions.layout.CssClassFacetForActi
import org.apache.isis.core.metamodel.facets.actions.layout.DescribedAsFacetForActionXml;
import org.apache.isis.core.metamodel.facets.actions.layout.HiddenFacetForActionLayoutXml;
import org.apache.isis.core.metamodel.facets.actions.layout.NamedFacetForActionXml;
+import org.apache.isis.core.metamodel.facets.actions.position.ActionPositionFacet;
+import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.collections.collection.defaultview.DefaultViewFacet;
import org.apache.isis.core.metamodel.facets.collections.layout.CssClassFacetForCollectionXml;
import org.apache.isis.core.metamodel.facets.collections.layout.DefaultViewFacetForCollectionXml;
import org.apache.isis.core.metamodel.facets.collections.layout.DescribedAsFacetForCollectionXml;
@@ -61,7 +75,18 @@ import org.apache.isis.core.metamodel.facets.collections.layout.HiddenFacetForCo
import org.apache.isis.core.metamodel.facets.collections.layout.NamedFacetForCollectionXml;
import org.apache.isis.core.metamodel.facets.collections.layout.PagedFacetForCollectionXml;
import org.apache.isis.core.metamodel.facets.collections.layout.SortedByFacetForCollectionXml;
+import org.apache.isis.core.metamodel.facets.collections.sortedby.SortedByFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
import org.apache.isis.core.metamodel.facets.members.order.annotprop.MemberOrderFacetXml;
+import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
+import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
+import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.multiline.MultiLineFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.renderedadjusted.RenderedAdjustedFacet;
+import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
import org.apache.isis.core.metamodel.facets.properties.propertylayout.CssClassFacetForPropertyXml;
import org.apache.isis.core.metamodel.facets.properties.propertylayout.DescribedAsFacetForPropertyXml;
import org.apache.isis.core.metamodel.facets.properties.propertylayout.HiddenFacetForPropertyXml;
@@ -70,6 +95,10 @@ import org.apache.isis.core.metamodel.facets.properties.propertylayout.MultiLine
import org.apache.isis.core.metamodel.facets.properties.propertylayout.NamedFacetForPropertyXml;
import org.apache.isis.core.metamodel.facets.properties.propertylayout.RenderedAdjustedFacetForPropertyXml;
import org.apache.isis.core.metamodel.facets.properties.propertylayout.TypicalLengthFacetForPropertyXml;
+import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumn;
+import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCColumnOwner;
+import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCGrid;
+import org.apache.isis.core.metamodel.services.grid.fixedcols.applib.FCTab;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
@@ -150,15 +179,273 @@ public abstract class GridNormalizerServiceAbstract<G extends Grid>
@Programmatic
@Override
public void complete(final G grid, final Class<?> domainClass) {
- // TODO: do some different logic here...
normalize(grid, domainClass);
+ final ObjectSpecification objectSpec = specificationLookup.loadSpecification(domainClass);
+
+ grid.visit(new FCGrid.VisitorAdapter() {
+ @Override
+ public void visit(final ActionLayoutData actionLayoutData) {
+ final ObjectAction objectAction = objectSpec.getObjectAction(actionLayoutData.getId());
+
+ setBookmarkingIfAny(actionLayoutData, objectAction);
+ setCssClassIfAny(actionLayoutData, objectAction);
+ setCssClassFaIfAny(actionLayoutData, objectAction);
+ setDescribedAsIfAny(actionLayoutData, objectAction);
+ setHiddenIfAny(actionLayoutData, objectAction);
+ setNamedIfAny(actionLayoutData, objectAction);
+ setActionPositionIfAny(actionLayoutData, objectAction);
+ }
+
+ @Override
+ public void visit(final CollectionLayoutData collectionLayoutData) {
+ final ObjectAssociation collection = objectSpec.getAssociation(collectionLayoutData.getId());
+
+ setCssClassIfAny(collectionLayoutData, collection);
+ setDefaultViewIfAny(collectionLayoutData, collection);
+ setDescribedAsIfAny(collectionLayoutData, collection);
+ setHiddenIfAny(collectionLayoutData, collection);
+ setNamedIfAny(collectionLayoutData, collection);
+ setPagedIfAny(collectionLayoutData, collection);
+ setSortedByIfAny(collectionLayoutData, collection);
+ }
+
+ @Override
+ public void visit(final PropertyLayoutData propertyLayoutData) {
+ final ObjectAssociation property = objectSpec.getAssociation(propertyLayoutData.getId());
+
+ setCssClassIfAny(propertyLayoutData, property);
+ setDescribedAsIfAny(propertyLayoutData, property);
+ setHiddenIfAny(propertyLayoutData, property);
+ setNamedIfAny(propertyLayoutData, property);
+ setLabelPositionIfAny(propertyLayoutData, property);
+ setMultiLineIfAny(propertyLayoutData, property);
+ setRenderedAsDayBeforeIfAny(propertyLayoutData, property);
+ setTypicalLengthIfAny(propertyLayoutData, property);
+ }
+
+ @Override
+ public void visit(final DomainObjectLayoutData domainObjectLayoutData) {
+ setBookmarkingIfAny(domainObjectLayoutData, objectSpec);
+ setCssClassIfAny(domainObjectLayoutData, objectSpec);
+ setCssClassFaIfAny(domainObjectLayoutData, objectSpec);
+ setDescribedAsIfAny(domainObjectLayoutData, objectSpec);
+ setNamedIfAny(domainObjectLayoutData, objectSpec);
+ setPluralIfAny(domainObjectLayoutData, objectSpec);
+ }
+ });
+ }
+
+ private static boolean isDoOp(final Facet facet) {
+ return facet != null && !facet.isNoop();
+ }
+
+ protected void setBookmarkingIfAny(
+ final HasBookmarking hasBookmarking,
+ final FacetHolder facetHolder) {
+ final BookmarkPolicyFacet bookmarkPolicyFacet = facetHolder.getFacet(BookmarkPolicyFacet.class);
+ if(isDoOp(bookmarkPolicyFacet)) {
+ final BookmarkPolicy bookmarking = bookmarkPolicyFacet.value();
+ if(bookmarking != null) {
+ hasBookmarking.setBookmarking(bookmarking);
+ }
+ }
+ }
+
+ protected void setCssClassIfAny(
+ final HasCssClass hasCssClass,
+ final FacetHolder facetHolder) {
+ final CssClassFacet cssClassFacet = facetHolder.getFacet(CssClassFacet.class);
+ if(isDoOp(cssClassFacet)) {
+ try {
+ // try...finally because CSS class may vary by object, and we pass in only null
+ final String cssClass = cssClassFacet.cssClass(null);
+ if(!Strings.isNullOrEmpty(cssClass)) {
+ hasCssClass.setCssClass(cssClass);
+ }
+ } catch(Exception ignore) {
+ // ignore
+ }
+ }
+ }
+
+ protected void setCssClassFaIfAny(
+ final HasCssClassFa hasCssClassFa,
+ final FacetHolder facetHolder) {
+ final CssClassFaFacet cssClassFaFacet = facetHolder.getFacet(CssClassFaFacet.class);
+ if (isDoOp(cssClassFaFacet)) {
+ final String cssClassFa = cssClassFaFacet.value();
+ final CssClassFaPosition position = cssClassFaFacet.getPosition();
+ if(!Strings.isNullOrEmpty(cssClassFa)) {
+ hasCssClassFa.setCssClassFa(cssClassFa);
+ hasCssClassFa.setCssClassFaPosition(position.toActionLayoutPosition());
+ }
+ }
+ }
+
+ protected void setDefaultViewIfAny(
+ final CollectionLayoutData collectionLayoutData,
+ final FacetHolder facetHolder) {
+ final DefaultViewFacet defaultViewFacet = facetHolder.getFacet(DefaultViewFacet.class);
+ if(isDoOp(defaultViewFacet)) {
+ final String defaultView = defaultViewFacet.value();
+ if(!Strings.isNullOrEmpty(defaultView)) {
+ collectionLayoutData.setDefaultView(defaultView);
+ }
+ }
+ }
+
+ protected void setDescribedAsIfAny(
+ final HasDescribedAs hasDescribedAs,
+ final FacetHolder facetHolder) {
+ final DescribedAsFacet describedAsFacet = facetHolder.getFacet(DescribedAsFacet.class);
+ if(isDoOp(describedAsFacet)) {
+ final String describedAs = describedAsFacet.value();
+ if(!Strings.isNullOrEmpty(describedAs)) {
+ hasDescribedAs.setDescribedAs(describedAs);
+ }
+ }
}
+ protected void setHiddenIfAny(
+ final HasHidden hasHidden,
+ final FacetHolder facetHolder) {
+ final HiddenFacet hiddenFacet = facetHolder.getFacet(HiddenFacet.class);
+ if (isDoOp(hiddenFacet)) {
+ final Where where = hiddenFacet.where();
+ if(where != null) {
+ hasHidden.setHidden(where);
+ }
+ }
+ }
+
+ protected void setLabelPositionIfAny(
+ final PropertyLayoutData propertyLayoutData,
+ final FacetHolder facetHolder) {
+ final LabelAtFacet labelAtFacet = facetHolder.getFacet(LabelAtFacet.class);
+ if(isDoOp(labelAtFacet)) {
+ final LabelPosition labelPosition = labelAtFacet.label();
+ if(labelPosition != null) {
+ propertyLayoutData.setLabelPosition(labelPosition);
+ }
+ }
+ }
+
+ protected void setMultiLineIfAny(
+ final PropertyLayoutData propertyLayoutData,
+ final FacetHolder facetHolder) {
+ final MultiLineFacet multiLineFacet = facetHolder.getFacet(MultiLineFacet.class);
+ if(isDoOp(multiLineFacet)) {
+ final int numberOfLines = multiLineFacet.numberOfLines();
+ if(numberOfLines > 0) {
+ propertyLayoutData.setMultiLine(numberOfLines);
+ }
+ }
+ }
+
+ protected void setNamedIfAny(
+ final HasNamed hasNamed,
+ final FacetHolder facetHolder) {
+ final NamedFacet namedFacet = facetHolder.getFacet(NamedFacet.class);
+ if(isDoOp(namedFacet)) {
+ final String named = namedFacet.value();
+ final boolean escaped = namedFacet.escaped();
+ if(!Strings.isNullOrEmpty(named)){
+ hasNamed.setNamed(named);
+ hasNamed.setNamedEscaped(escaped);
+ }
+ }
+ }
+
+ protected void setPagedIfAny(
+ final CollectionLayoutData collectionLayoutData,
+ final FacetHolder facetHolder) {
+ final PagedFacet pagedFacet = facetHolder.getFacet(PagedFacet.class);
+ if(isDoOp(pagedFacet)) {
+ final int value = pagedFacet.value();
+ if(value > 0) {
+ collectionLayoutData.setPaged(value);
+ }
+ }
+ }
+
+ protected void setPluralIfAny(
+ final DomainObjectLayoutData domainObjectLayoutData,
+ final FacetHolder facetHolder) {
+ final PluralFacet pluralFacet = facetHolder.getFacet(PluralFacet.class);
+ if(isDoOp(pluralFacet)) {
+ final String plural = pluralFacet.value();
+ if(!Strings.isNullOrEmpty(plural)) {
+ domainObjectLayoutData.setPlural(plural);
+ }
+ }
+ }
+
+
+ protected void setActionPositionIfAny(
+ final ActionLayoutData actionLayoutData,
+ final FacetHolder facetHolder) {
+ final ActionPositionFacet actionPositionFacet = facetHolder.getFacet(ActionPositionFacet.class);
+ if(isDoOp(actionPositionFacet)) {
+ final ActionLayout.Position position = actionPositionFacet.position();
+ if(position != null) {
+ actionLayoutData.setPosition(position);
+ }
+ }
+ }
+
+ protected void setRenderedAsDayBeforeIfAny(
+ final PropertyLayoutData propertyLayoutData,
+ final FacetHolder facetHolder) {
+ final RenderedAdjustedFacet renderedAdjustedFacet = facetHolder.getFacet(RenderedAdjustedFacet.class);
+ if(isDoOp(renderedAdjustedFacet)) {
+ final int adjusted = renderedAdjustedFacet.value();
+ propertyLayoutData.setRenderedAsDayBefore(adjusted != 0);
+ }
+ }
+
+ protected void setSortedByIfAny(
+ final CollectionLayoutData collectionLayoutData,
+ final FacetHolder facetHolder) {
+ final SortedByFacet sortedByFacet = facetHolder.getFacet(SortedByFacet.class);
+ if(isDoOp(sortedByFacet)) {
+ final Class<? extends Comparator<?>> className = sortedByFacet.value();
+ if(className != null) {
+ collectionLayoutData.setSortedBy(className.getCanonicalName());
+ }
+ }
+ }
+
+ protected void setTypicalLengthIfAny(
+ final PropertyLayoutData propertyLayoutData,
+ final FacetHolder facetHolder) {
+ final TypicalLengthFacet typicalLengthFacet = facetHolder.getFacet(TypicalLengthFacet.class);
+ if(isDoOp(typicalLengthFacet)) {
+ final int typicalLength = typicalLengthFacet.value();
+ if(typicalLength > 0) {
+ propertyLayoutData.setTypicalLength(typicalLength);
+ }
+ }
+ }
+
+
@Programmatic
@Override
public void minimal(final G grid, final Class<?> domainClass) {
- // TODO: do some different logic here...
normalize(grid, domainClass);
+ grid.visit(new FCGrid.VisitorAdapter() {
+ @Override
+ public void visit(final ActionLayoutData actionLayoutData) {
+ actionLayoutData.getOwner().getActions().remove(actionLayoutData);
+ }
+
+ @Override public void visit(final CollectionLayoutData collectionLayoutData) {
+ collectionLayoutData.getOwner().getCollections().remove(this);
+ }
+
+ @Override public void visit(final PropertyLayoutData propertyLayoutData) {
+ propertyLayoutData.getOwner().getProperties().remove(this);
+ }
+ });
}
/**
* Ensures that all object members (properties, collections and actions) are in the metadata.