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 2020/06/25 19:15:11 UTC
[isis] 01/01: ISIS-2222 : more on the primitive char pages
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch ISIS-2222
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 1a64ec7d54f07056f3431e184d83d80ccd4b489f
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Jun 25 20:14:48 2020 +0100
ISIS-2222 : more on the primitive char pages
---
.../chars/PrimitiveChars-description.adoc | 55 ++++++++++++++++++++--
.../primitive/chars/PrimitiveChars.layout.xml | 3 ++
.../PrimitiveCharHolder_actionReturning.java | 5 +-
...veCharHolder_mixinPropertyNamedNotEscaped.java} | 19 ++++----
...rimitiveCharHolder_mixinPropertyNavigable.java} | 20 ++++----
...itiveCharHolder_mixinPropertyWithCssClass.java} | 21 ++++-----
...dateReadOnlyProperty2PromptInlineAsIfEdit.java} | 2 +-
...older_updateReadOnlyPropertyPositionPanel.java} | 4 +-
...r_updateReadOnlyPropertyPromptStyleInline.java} | 4 +-
...er_updateReadOnlyPropertyPromptStyleModal.java} | 4 +-
...eReadOnlyPropertyPromptStylePanelDropDown.java} | 4 +-
..._updateReadOnlyPropertyPromptStyleSidebar.java} | 4 +-
...arHolder_updateReadOnlyPropertyWithChoices.java | 6 +--
.../jdo/PrimitiveCharJdoEntity-description.adoc | 17 +++----
.../chars/jdo/PrimitiveCharJdoEntity.java | 15 +++---
.../chars/jdo/PrimitiveCharJdoEntity.layout.xml | 2 +
.../vm/PrimitiveCharViewModel-description.adoc | 5 +-
.../primitive/chars/vm/PrimitiveCharViewModel.java | 12 ++---
.../chars/vm/PrimitiveCharViewModel.layout.xml | 38 ++++-----------
.../StatefulViewModelJaxbRefsEntity.layout.xml | 1 -
.../StatefulViewModelUsingJaxb.layout.xml | 1 -
.../src/main/resources/static/css/application.css | 3 ++
22 files changed, 134 insertions(+), 111 deletions(-)
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars-description.adoc
index cc5f2d2..b0f6aec 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars-description.adoc
@@ -2,8 +2,8 @@ The framework has built-in support for all of the primitive data types, includin
From here you can:
-* open a view model that uses the `char` datatype
* navigate to an entity that uses the `char` datatype
+* open a view model that uses the `char` datatype
Because `char` is a primitive value, the properties on these domain objects are mandatory.
@@ -24,11 +24,33 @@ public interface PrimitiveCharHolder {
char getReadWriteProperty();
void setReadWriteProperty(char c);
- default char getReadOnlyPropertyDerived() { return getReadOnlyProperty(); }
- default char getReadOnlyPropertyDerived2() { return getReadOnlyProperty(); }
+ @MemberOrder(name = "label-positions", sequence = "1")
+ @Property
+ @PropertyLayout(labelPosition = LabelPosition.LEFT, describedAs = "labelPosition=LEFT", hidden = Where.ALL_TABLES)
+ default char getReadOnlyPropertyDerivedLabelPositionLeft() { return getReadOnlyProperty(); }
+
+ @MemberOrder(name = "label-positions", sequence = "2")
+ @Property
+ @PropertyLayout(labelPosition = LabelPosition.TOP, describedAs = "labelPosition=TOP", hidden = Where.ALL_TABLES)
+ default char getReadOnlyPropertyDerivedLabelPositionTop() { return getReadOnlyProperty(); }
+
+ @MemberOrder(name = "label-positions", sequence = "3")
+ @Property
+ @PropertyLayout(labelPosition = LabelPosition.RIGHT, describedAs = "labelPosition=RIGHT", hidden = Where.ALL_TABLES)
+ default char getReadOnlyPropertyDerivedLabelPositionRight() { return getReadOnlyProperty(); }
+
+ @MemberOrder(name = "label-positions", sequence = "4")
+ @Property
+ @PropertyLayout(labelPosition = LabelPosition.NONE, describedAs = "labelPosition=NONE", hidden = Where.ALL_TABLES)
+ default char getReadOnlyPropertyDerivedLabelPositionNone() { return getReadOnlyProperty(); }
+
}
----
+The default methods have annotations that automatically inherited.
+Using `@MemberOrder` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
+
+
== Mixin actions
A number of mixin actions contribute through this interface, demonstrate the use of `char` as a parameter and as a return type.
@@ -60,7 +82,7 @@ public class PrimitiveCharHolder_updateReadOnlyProperty {
+
There are a number of variants of this action, to demonstrate different prompt layouts.
-* and the `actionReturning` action is:
+* the `actionReturning` action is:
+
[source,java]
----
@@ -80,3 +102,28 @@ public class PrimitiveCharHolder_actionReturning {
}
----
+== Mixin properties
+
+We also use the interface to contribute a number of mixin properties:
+
+* the `mixinPropertyWithCssClass` property:
++
+[source,java]
+----
+@Property()
+@PropertyLayout(cssClass = "red", describedAs = "cssClass = \"red\" ")
+@RequiredArgsConstructor
+public class PrimitiveCharHolder_mixinPropertyWithCssClass {
+
+ private final PrimitiveCharHolder primitiveCharHolder;
+
+ @MemberOrder(name = "contributed", sequence = "1")
+ public char prop() {
+ return primitiveCharHolder.getReadOnlyProperty();
+ }
+}
+----
++
+TIP: the styling is provided from the `application.css` static resource.
+
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars.layout.xml
index d321296..55c5b87 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/PrimitiveChars.layout.xml
@@ -21,6 +21,9 @@
<bs3:col span="12">
<cpt:collection id="entities"/>
</bs3:col>
+ <bs3:col span="12">
+ <cpt:action id="openViewModel"/>
+ </bs3:col>
</bs3:row>
<cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
</bs3:col>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java
index 4f7224a..a8104a8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java
@@ -27,11 +27,8 @@ import lombok.RequiredArgsConstructor;
@Action(
- semantics = SemanticsOf.SAFE,
- associateWith = "readOnlyProperty",
- associateWithSequence = "1"
+ semantics = SemanticsOf.SAFE
)
-@ActionLayout(position = ActionLayout.Position.PANEL)
@RequiredArgsConstructor
public class PrimitiveCharHolder_actionReturning {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_mixinPropertyNamedNotEscaped.java
similarity index 70%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java
copy to examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_mixinPropertyNamedNotEscaped.java
index 4f7224a..7bafffe 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_mixinPropertyNamedNotEscaped.java
@@ -18,27 +18,24 @@
*/
package demoapp.dom.types.primitive.chars.holder;
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
import lombok.RequiredArgsConstructor;
-@Action(
- semantics = SemanticsOf.SAFE,
- associateWith = "readOnlyProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(position = ActionLayout.Position.PANEL)
+//@Property()
+//@PropertyLayout(named = "<i>Named<i/> <b>not</b> escaped property", namedEscaped = false, describedAs = "named = \"(some markup)\", namedEscaped = false") // TODO: this doesn't render, and causes bootlint issues
@RequiredArgsConstructor
-public class PrimitiveCharHolder_actionReturning {
+public class PrimitiveCharHolder_mixinPropertyNamedNotEscaped {
private final PrimitiveCharHolder primitiveCharHolder;
- public char act() {
+ @MemberOrder(name = "contributed", sequence = "3")
+ public char prop() {
return primitiveCharHolder.getReadOnlyProperty();
}
+
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_mixinPropertyNavigable.java
similarity index 72%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java
copy to examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_mixinPropertyNavigable.java
index 4f7224a..ca18015 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_mixinPropertyNavigable.java
@@ -18,27 +18,25 @@
*/
package demoapp.dom.types.primitive.chars.holder;
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.annotation.Navigable;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
import lombok.RequiredArgsConstructor;
-@Action(
- semantics = SemanticsOf.SAFE,
- associateWith = "readOnlyProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(position = ActionLayout.Position.PANEL)
+//@Property()
+//@PropertyLayout( navigable = Navigable.PARENT, describedAs = "navigable=PARENT") // TODO: doesn't seem to do anything
@RequiredArgsConstructor
-public class PrimitiveCharHolder_actionReturning {
+public class PrimitiveCharHolder_mixinPropertyNavigable {
private final PrimitiveCharHolder primitiveCharHolder;
- public char act() {
+ @MemberOrder(name = "contributed", sequence = "1")
+ public char prop() {
return primitiveCharHolder.getReadOnlyProperty();
}
+
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_mixinPropertyWithCssClass.java
similarity index 71%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java
copy to examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_mixinPropertyWithCssClass.java
index 4f7224a..aa146b3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_actionReturning.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_mixinPropertyWithCssClass.java
@@ -18,27 +18,24 @@
*/
package demoapp.dom.types.primitive.chars.holder;
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.ActionLayout;
import org.apache.isis.applib.annotation.MemberOrder;
-import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.annotation.Navigable;
+import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.applib.annotation.Where;
import lombok.RequiredArgsConstructor;
-@Action(
- semantics = SemanticsOf.SAFE,
- associateWith = "readOnlyProperty",
- associateWithSequence = "1"
-)
-@ActionLayout(position = ActionLayout.Position.PANEL)
+@Property()
+@PropertyLayout(cssClass = "red", describedAs = "cssClass = \"red\" ", hidden = Where.ALL_TABLES)
@RequiredArgsConstructor
-public class PrimitiveCharHolder_actionReturning {
+public class PrimitiveCharHolder_mixinPropertyWithCssClass {
private final PrimitiveCharHolder primitiveCharHolder;
- public char act() {
+ @MemberOrder(name = "contributed", sequence = "1")
+ public char prop() {
return primitiveCharHolder.getReadOnlyProperty();
}
-
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyProperty2InlineAsIfEdit.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyProperty2PromptInlineAsIfEdit.java
similarity index 95%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyProperty2InlineAsIfEdit.java
rename to examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyProperty2PromptInlineAsIfEdit.java
index ddc59e3..e516491 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyProperty2InlineAsIfEdit.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyProperty2PromptInlineAsIfEdit.java
@@ -33,7 +33,7 @@ import lombok.RequiredArgsConstructor;
)
@ActionLayout(promptStyle = PromptStyle.INLINE_AS_IF_EDIT)
@RequiredArgsConstructor
-public class PrimitiveCharHolder_updateReadOnlyProperty2InlineAsIfEdit {
+public class PrimitiveCharHolder_updateReadOnlyProperty2PromptInlineAsIfEdit {
private final PrimitiveCharHolder primitiveCharHolder;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPanel.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPositionPanel.java
similarity index 89%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPanel.java
rename to examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPositionPanel.java
index 2051971..857b28d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPanel.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPositionPanel.java
@@ -31,9 +31,9 @@ import lombok.RequiredArgsConstructor;
associateWith = "readOnlyProperty",
associateWithSequence = "2"
)
-@ActionLayout(position = ActionLayout.Position.PANEL)
+@ActionLayout(position = ActionLayout.Position.PANEL, named = "Position in panel", describedAs = "position = PANEL")
@RequiredArgsConstructor
-public class PrimitiveCharHolder_updateReadOnlyPropertyPanel {
+public class PrimitiveCharHolder_updateReadOnlyPropertyPositionPanel {
private final PrimitiveCharHolder primitiveCharHolder;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyInline.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleInline.java
similarity index 93%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyInline.java
rename to examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleInline.java
index ecb7019..f970852 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyInline.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleInline.java
@@ -31,9 +31,9 @@ import lombok.RequiredArgsConstructor;
associateWith = "readOnlyProperty",
associateWithSequence = "1"
)
-@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Inline")
+@ActionLayout(promptStyle = PromptStyle.INLINE, named = "Inline", describedAs = "promptStyle = INLINE")
@RequiredArgsConstructor
-public class PrimitiveCharHolder_updateReadOnlyPropertyInline {
+public class PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleInline {
private final PrimitiveCharHolder primitiveCharHolder;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyModal.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleModal.java
similarity index 89%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyModal.java
rename to examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleModal.java
index 6aac431..844bd2f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyModal.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleModal.java
@@ -31,9 +31,9 @@ import lombok.RequiredArgsConstructor;
associateWith = "readOnlyProperty",
associateWithSequence = "2"
)
-@ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL, named = "in modal")
+@ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL, named = "Modal", describedAs = "promptStyle = MODAL")
@RequiredArgsConstructor
-public class PrimitiveCharHolder_updateReadOnlyPropertyModal {
+public class PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleModal {
private final PrimitiveCharHolder primitiveCharHolder;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPanelDropDown.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStylePanelDropDown.java
similarity index 88%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPanelDropDown.java
rename to examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStylePanelDropDown.java
index 1d765a6..ef53244 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPanelDropDown.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStylePanelDropDown.java
@@ -31,9 +31,9 @@ import lombok.RequiredArgsConstructor;
associateWith = "readOnlyProperty",
associateWithSequence = "3"
)
-@ActionLayout(position = ActionLayout.Position.PANEL_DROPDOWN)
+@ActionLayout(position = ActionLayout.Position.PANEL_DROPDOWN, named = "Panel Dropdown", describedAs = "position = PANEL_DROPDOWN")
@RequiredArgsConstructor
-public class PrimitiveCharHolder_updateReadOnlyPropertyPanelDropDown {
+public class PrimitiveCharHolder_updateReadOnlyPropertyPromptStylePanelDropDown {
private final PrimitiveCharHolder primitiveCharHolder;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertySidebar.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleSidebar.java
similarity index 92%
rename from examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertySidebar.java
rename to examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleSidebar.java
index 192eeb7..3df0aaa 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertySidebar.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleSidebar.java
@@ -31,9 +31,9 @@ import lombok.RequiredArgsConstructor;
associateWith = "readOnlyProperty",
associateWithSequence = "3"
)
-@ActionLayout(promptStyle = PromptStyle.DIALOG_SIDEBAR, named = "in sidebar")
+@ActionLayout(promptStyle = PromptStyle.DIALOG_SIDEBAR, named = "sidebar", describedAs = "promptStyle = DIALOG_SIDEBAR")
@RequiredArgsConstructor
-public class PrimitiveCharHolder_updateReadOnlyPropertySidebar {
+public class PrimitiveCharHolder_updateReadOnlyPropertyPromptStyleSidebar {
private final PrimitiveCharHolder primitiveCharHolder;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyWithChoices.java
index bbbec21..7daa8d7 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyWithChoices.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder_updateReadOnlyPropertyWithChoices.java
@@ -51,8 +51,8 @@ public class PrimitiveCharHolder_updateReadOnlyPropertyWithChoices {
public List<Character> choices0Act() {
return Stream.of('a', 'b', 'c').collect(Collectors.toList());
}
- public String disableAct() {
- return "Not yet supported";
- }
+ public boolean hideAct() {
+ return true;
+ } // TODO: choices doesn't seem to work for this datatype
}
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity-description.adoc
index 2fbb540..6ae7268 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity-description.adoc
@@ -10,14 +10,14 @@ JDO supports `char` out-of-the-box, so no special annotations are required.
public class PrimitiveCharJdoEntity
implements HasAsciiDocDescription, PrimitiveCharHolder { // <.>
- public PrimitiveCharJdoEntity(char initialValue) { // <.>
- this.readOnlyProperty = initialValue;
- this.readWriteProperty = initialValue;
- }
+ public PrimitiveCharJdoEntity(char initialValue) { ... } // <.>
- @Getter @Setter
@Title
- private char readOnlyProperty;
+ @Getter @Setter
+ private char readOnlyProperty; // <.>
+
+ @Getter @Setter
+ private char readOnlyProperty2;
@Getter @Setter
@Property(editing = Editing.ENABLED)
@@ -25,5 +25,6 @@ public class PrimitiveCharJdoEntity
}
----
-<.> a no-arg constructor is introduced by JDO enhnancer
-<.> as a convenience
\ No newline at end of file
+<.> a no-arg constructor is introduced by JDO enhancer
+<.> as a convenience
+<.> no additional annotations required.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity.java
index 661ed7f..9a0b4d5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity.java
@@ -23,18 +23,15 @@ import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.Bounding;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
import lombok.Getter;
import lombok.Setter;
-import lombok.extern.log4j.Log4j2;
import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
@@ -44,7 +41,9 @@ import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
@DomainObject(
objectType = "demoapp.PrimitiveCharJdoEntity"
)
-public class PrimitiveCharJdoEntity implements HasAsciiDocDescription, PrimitiveCharHolder {
+public class PrimitiveCharJdoEntity
+ implements HasAsciiDocDescription,
+ PrimitiveCharHolder {
public PrimitiveCharJdoEntity(char initialValue) {
this.readOnlyProperty = initialValue;
@@ -52,10 +51,12 @@ public class PrimitiveCharJdoEntity implements HasAsciiDocDescription, Primitive
this.readWriteProperty = initialValue;
}
- @Getter @Setter
@Title
+ @Getter @Setter
private char readOnlyProperty;
+ @Property
+ @PropertyLayout(hidden = Where.ALL_TABLES)
@Getter @Setter
private char readOnlyProperty2;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity.layout.xml
index 7a24b9b..ffa55a8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/jdo/PrimitiveCharJdoEntity.layout.xml
@@ -8,6 +8,7 @@
<bs3:row>
<bs3:col span="10" unreferencedActions="true">
<cpt:domainObject />
+ <cpt:action id="actionReturning"/>
<cpt:action id="rebuildMetamodel"/>
</bs3:col>
<bs3:col span="2">
@@ -29,6 +30,7 @@
<cpt:property id="readWriteProperty" />
</cpt:fieldSet>
<cpt:fieldSet name="Label Positions" id="label-positions"/>
+ <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
<cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
</bs3:col>
<bs3:col span="6">
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel-description.adoc
index ac6ac10..9135e5e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel-description.adoc
@@ -20,7 +20,7 @@ public class PrimitiveCharViewModel
@Title
@Getter @Setter
- private char readOnlyProperty;
+ private char readOnlyProperty; // <.>
@Getter @Setter
private char readOnlyProperty2;
@@ -32,4 +32,5 @@ public class PrimitiveCharViewModel
}
----
<.> a no-arg constructor is required by JAXB
-<.> as a convenience
\ No newline at end of file
+<.> as a convenience
+<.> no additional annotations required.
\ No newline at end of file
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel.java
index 670bcaf..cf8d9b9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel.java
@@ -18,27 +18,22 @@
*/
package demoapp.dom.types.primitive.chars.vm;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
-import org.apache.isis.applib.annotation.Action;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.Editing;
import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.annotation.Property;
+import org.apache.isis.applib.annotation.PropertyLayout;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
import lombok.Getter;
-import lombok.NoArgsConstructor;
import lombok.Setter;
-import lombok.extern.log4j.Log4j2;
import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
import demoapp.dom.types.primitive.chars.holder.PrimitiveCharHolder;
@@ -65,7 +60,8 @@ public class PrimitiveCharViewModel
@Getter @Setter
private char readOnlyProperty;
- @Title
+ @Property
+ @PropertyLayout(hidden = Where.ALL_TABLES)
@Getter @Setter
private char readOnlyProperty2;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel.layout.xml
index 899a7e0..ffa55a8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/vm/PrimitiveCharViewModel.layout.xml
@@ -8,6 +8,7 @@
<bs3:row>
<bs3:col span="10" unreferencedActions="true">
<cpt:domainObject />
+ <cpt:action id="actionReturning"/>
<cpt:action id="rebuildMetamodel"/>
</bs3:col>
<bs3:col span="2">
@@ -17,39 +18,19 @@
<bs3:row>
<bs3:col span="6">
- <cpt:fieldSet name="Demo" id="general">
- <cpt:action id="actionReturning" position="PANEL"/>
- <cpt:property id="readOnlyProperty" labelPosition="DEFAULT">
+ <cpt:fieldSet name="Action Prompt Styles" id="action-prompt-styles">
+ <cpt:property id="readOnlyProperty" />
+ <cpt:property id="readOnlyProperty2" >
<cpt:describedAs>
- labelPosition=DEFAULT
- </cpt:describedAs>
- </cpt:property>
- <cpt:property id="readOnlyProperty2" labelPosition="TOP" hidden="ALL_TABLES">
- <cpt:describedAs>
- labelPosition=TOP
- hidden=ALL_TABLES
- </cpt:describedAs>
- </cpt:property>
- <cpt:property id="readWriteProperty" labelPosition="LEFT">
- <cpt:describedAs>
- labelPosition=LEFT
+ Associated action uses promptStyle=INLINE_AS_IF_EDIT
</cpt:describedAs>
</cpt:property>
</cpt:fieldSet>
- <cpt:fieldSet name="Derived Properties" id="derivedProperties">
- <cpt:property id="readOnlyPropertyDerived" labelPosition="NONE" hidden="ALL_TABLES">
- <cpt:describedAs>
- labelPosition=NONE
- hidden=ALL_TABLES
- </cpt:describedAs>
- </cpt:property>
- <cpt:property id="readOnlyPropertyDerived2" labelPosition="RIGHT" hidden="ALL_TABLES">
- <cpt:describedAs>
- labelPosition=RIGHT
- hidden=ALL_TABLES
- </cpt:describedAs>
- </cpt:property>
+ <cpt:fieldSet name="Editable Properties" id="editable-properties">
+ <cpt:property id="readWriteProperty" />
</cpt:fieldSet>
+ <cpt:fieldSet name="Label Positions" id="label-positions"/>
+ <cpt:fieldSet name="Contributed by Mixins" id="contributed"/>
<cpt:fieldSet name="Other" id="other" unreferencedProperties="true"/>
</bs3:col>
<bs3:col span="6">
@@ -59,6 +40,7 @@
<cpt:action id="rebuildMetamodel" position="PANEL"/>
<cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
<cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
+ <cpt:action id="downloadJdoMetadata" position="PANEL_DROPDOWN"/>
<cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
<cpt:property id="description"/>
</cpt:fieldSet>
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/viewmodels/jaxbrefentity/StatefulViewModelJaxbRefsEntity.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/viewmodels/jaxbrefentity/StatefulViewModelJaxbRefsEntity.layout.xml
index bd7995d..1c8b66b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/viewmodels/jaxbrefentity/StatefulViewModelJaxbRefsEntity.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/viewmodels/jaxbrefentity/StatefulViewModelJaxbRefsEntity.layout.xml
@@ -24,7 +24,6 @@
<cpt:fieldSet name="Description" id="description" >
<cpt:action id="clearHints" position="PANEL" />
<cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
<cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
<cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
<cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/viewmodels/usingjaxb/StatefulViewModelUsingJaxb.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/viewmodels/usingjaxb/StatefulViewModelUsingJaxb.layout.xml
index 8747ce3..febca1c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/viewmodels/usingjaxb/StatefulViewModelUsingJaxb.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/viewmodels/usingjaxb/StatefulViewModelUsingJaxb.layout.xml
@@ -27,7 +27,6 @@
<cpt:fieldSet name="Description" id="description" >
<cpt:action id="clearHints" position="PANEL" />
<cpt:action id="downloadLayoutXml" position="PANEL_DROPDOWN"/>
- <cpt:action id="rebuildMetamodel" position="PANEL"/>
<cpt:action id="downloadMetamodelXml" position="PANEL_DROPDOWN"/>
<cpt:action id="inspectMetamodel" position="PANEL_DROPDOWN"/>
<cpt:action id="openRestApi" position="PANEL_DROPDOWN" />
diff --git a/examples/demo/domain/src/main/resources/static/css/application.css b/examples/demo/domain/src/main/resources/static/css/application.css
index 67e1538..49cc494 100644
--- a/examples/demo/domain/src/main/resources/static/css/application.css
+++ b/examples/demo/domain/src/main/resources/static/css/application.css
@@ -1,3 +1,6 @@
+.property.red label {
+ color: red;
+}
.welcome {
font-size: 16px;