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/06/27 11:22:09 UTC
[1/2] git commit: ISIS-446: further minor improvements to
DeveloperUtilitiesService.
Updated Branches:
refs/heads/master 410100776 -> 56b558c54
ISIS-446: further minor improvements to DeveloperUtilitiesService.
- split class name into package name and simple class name
- show abbreviated class names for declarative facets
- ignore no-op facets
- refactored to simplify somewhat.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/bfa434b6
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/bfa434b6
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/bfa434b6
Branch: refs/heads/master
Commit: bfa434b6d254733abce4096a894ec759a77af062
Parents: 4101007
Author: Dan Haywood <da...@apache.org>
Authored: Thu Jun 27 10:09:00 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Jun 27 10:09:00 2013 +0100
----------------------------------------------------------------------
.../isis/core/commons/lang/StringUtils.java | 14 ++
.../services/devutils/MetaModelRow.java | 196 +++++++++----------
2 files changed, 106 insertions(+), 104 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/bfa434b6/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java
index 185425b..5abfa76 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java
@@ -371,4 +371,18 @@ public final class StringUtils {
return Enums.getEnumNameFromFriendly(enumFriendlyName);
}
+ /*
+ * eg converts <tt>HiddenFacetForMemberAnnotation</tt> to <tt>HFFMA</tt>.
+ */
+ public static String toAbbreviation(final String str) {
+ final StringBuilder buf = new StringBuilder();
+ for(char c: str.toCharArray()) {
+ if(Character.isUpperCase(c)) {
+ buf.append(c);
+ }
+ }
+ final String string2 = buf.toString();
+ return string2;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/bfa434b6/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/MetaModelRow.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/MetaModelRow.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/MetaModelRow.java
index 8f52042..81abeec 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/MetaModelRow.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/devutils/MetaModelRow.java
@@ -16,13 +16,16 @@
*/
package org.apache.isis.core.metamodel.services.devutils;
+import java.util.Arrays;
import java.util.List;
+import java.util.SortedSet;
import com.google.common.base.Joiner;
import com.google.common.base.Strings;
-import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import org.apache.isis.applib.util.ObjectContracts;
+import org.apache.isis.core.commons.lang.StringUtils;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.ImperativeFacet;
import org.apache.isis.core.metamodel.facets.actions.choices.ActionChoicesFacet;
@@ -49,99 +52,11 @@ import org.apache.isis.core.progmodel.facets.properties.validate.PropertyValidat
public class MetaModelRow implements Comparable<MetaModelRow>{
enum MemberType {
- PROPERTY {
- @Override
- String getChoices(MetaModelRow metaModelRow) {
- return interpretRowAndFacet(metaModelRow, PropertyChoicesFacet.class);
- }
- @Override
- String getAutoComplete(MetaModelRow metaModelRow) {
- return interpretRowAndFacet(metaModelRow, PropertyAutoCompleteFacet.class);
- }
- @Override
- String getDefault(MetaModelRow metaModelRow) {
- return interpretRowAndFacet(metaModelRow, PropertyDefaultFacet.class);
- }
- @Override
- String getValidate(MetaModelRow metaModelRow) {
- return interpretRowAndFacet(metaModelRow, PropertyValidateFacet.class);
- }
- },
- COLLECTION {
- @Override
- String getChoices(MetaModelRow metaModelRow) {
- return "";
- }
- @Override
- String getAutoComplete(MetaModelRow metaModelRow) {
- return "";
- }
- @Override
- String getDefault(MetaModelRow metaModelRow) {
- return "";
- }
- @Override
- String getValidate(MetaModelRow metaModelRow) {
- final List<String> interpretations = Lists.newArrayList();
- addIfNotEmpty(interpretRowAndFacet(metaModelRow, CollectionValidateAddToFacet.class), interpretations);
- addIfNotEmpty(interpretRowAndFacet(metaModelRow, CollectionValidateRemoveFromFacet.class), interpretations);
- return !interpretations.isEmpty()? Joiner.on(";").join(interpretations) : "";
- }
- },
- ACTION {
- @Override
- String getChoices(MetaModelRow metaModelRow) {
- final List<ObjectActionParameter> parameters = metaModelRow.action.getParameters();
- final List<String> interpretations = Lists.newArrayList();
- for (ObjectActionParameter param : parameters) {
- final ActionParameterChoicesFacet facet = param.getFacet(ActionParameterChoicesFacet.class);
- addIfNotEmpty(interpretFacet(facet), interpretations);
- }
- return !interpretations.isEmpty()? Joiner.on(";").join(interpretations) : interpretRowAndFacet(metaModelRow, ActionChoicesFacet.class);
- }
- @Override
- String getAutoComplete(MetaModelRow metaModelRow) {
- final List<ObjectActionParameter> parameters = metaModelRow.action.getParameters();
- final List<String> interpretations = Lists.newArrayList();
- for (ObjectActionParameter param : parameters) {
- final ActionParameterAutoCompleteFacet facet = param.getFacet(ActionParameterAutoCompleteFacet.class);
- addIfNotEmpty(interpretFacet(facet), interpretations);
- }
- return !interpretations.isEmpty()? Joiner.on(";").join(interpretations) : "";
- }
- @Override
- String getDefault(MetaModelRow metaModelRow) {
- final List<ObjectActionParameter> parameters = metaModelRow.action.getParameters();
- final List<String> interpretations = Lists.newArrayList();
- for (ObjectActionParameter param : parameters) {
- final ActionParameterDefaultsFacet facet = param.getFacet(ActionParameterDefaultsFacet.class);
- addIfNotEmpty(interpretFacet(facet), interpretations);
- }
- return !interpretations.isEmpty()? Joiner.on(";").join(interpretations) : interpretRowAndFacet(metaModelRow, ActionDefaultsFacet.class);
- }
- @Override
- String getValidate(MetaModelRow metaModelRow) {
- return interpretRowAndFacet(metaModelRow, ActionValidationFacet.class);
- }
- };
-
- private static String interpretRowAndFacet(MetaModelRow metaModelRow, Class<? extends Facet> facetClass) {
- final Facet facet = metaModelRow.member.getFacet(facetClass);
- return interpretFacet(facet);
- }
-
- private static void addIfNotEmpty(final String str, final List<String> list) {
- if(!Strings.isNullOrEmpty(str)) {
- list.add(str);
- }
- }
-
- abstract String getChoices(MetaModelRow metaModelRow);
- abstract String getAutoComplete(MetaModelRow metaModelRow);
- abstract String getDefault(MetaModelRow metaModelRow);
- abstract String getValidate(MetaModelRow metaModelRow);
+ PROPERTY,
+ COLLECTION,
+ ACTION;
}
-
+
private final ObjectSpecification spec;
private final MemberType memberType;
private final ObjectMember member;
@@ -173,7 +88,16 @@ public class MetaModelRow implements Comparable<MetaModelRow>{
return service || spec.isService() ?"2 Service":spec.isValue()?"3 Value":spec.isParentedOrFreeCollection()?"4 Collection":"1 Object";
}
public String getClassName() {
- return spec.getFullIdentifier();
+ final String fullIdentifier = spec.getFullIdentifier();
+ final int lastDot = fullIdentifier.lastIndexOf(".");
+ return lastDot>0 && lastDot < fullIdentifier.length()-1
+ ?fullIdentifier.substring(lastDot+1,fullIdentifier.length())
+ :fullIdentifier;
+ }
+ public String getPackageName() {
+ final String fullIdentifier = spec.getFullIdentifier();
+ final int lastDot = fullIdentifier.lastIndexOf(".");
+ return lastDot>0?fullIdentifier.substring(0,lastDot):fullIdentifier;
}
public String getType() {
return memberType.name().toLowerCase();
@@ -191,25 +115,71 @@ public class MetaModelRow implements Comparable<MetaModelRow>{
return interpret(DisabledFacet.class);
}
public String getChoices() {
- return memberType.getChoices(this);
+ if(memberType == MemberType.PROPERTY) {
+ return interpretRowAndFacet(PropertyChoicesFacet.class);
+ } else if(memberType == MemberType.COLLECTION) {
+ return "";
+ } else {
+ final List<ObjectActionParameter> parameters = this.action.getParameters();
+ final SortedSet<String> interpretations = Sets.newTreeSet();
+ for (ObjectActionParameter param : parameters) {
+ final ActionParameterChoicesFacet facet = param.getFacet(ActionParameterChoicesFacet.class);
+ addIfNotEmpty(interpretFacet(facet), interpretations);
+ }
+ return !interpretations.isEmpty()? Joiner.on(";").join(interpretations) : interpretRowAndFacet(ActionChoicesFacet.class);
+ }
}
public String getAutoComplete() {
- return memberType.getAutoComplete(this);
+ if(memberType == MemberType.PROPERTY) {
+ return interpretRowAndFacet(PropertyAutoCompleteFacet.class);
+ } else if(memberType == MemberType.COLLECTION) {
+ return "";
+ } else {
+ final List<ObjectActionParameter> parameters = this.action.getParameters();
+ final SortedSet<String> interpretations = Sets.newTreeSet();
+ for (ObjectActionParameter param : parameters) {
+ final ActionParameterAutoCompleteFacet facet = param.getFacet(ActionParameterAutoCompleteFacet.class);
+ addIfNotEmpty(interpretFacet(facet), interpretations);
+ }
+ return !interpretations.isEmpty()? Joiner.on(";").join(interpretations) : "";
+ }
}
String getDefault() {
- return memberType.getDefault(this);
+ if(memberType == MemberType.PROPERTY) {
+ return interpretRowAndFacet(PropertyDefaultFacet.class);
+ } else if(memberType == MemberType.COLLECTION) {
+ return "";
+ } else {
+ final List<ObjectActionParameter> parameters = this.action.getParameters();
+ final SortedSet<String> interpretations = Sets.newTreeSet();
+ for (ObjectActionParameter param : parameters) {
+ final ActionParameterDefaultsFacet facet = param.getFacet(ActionParameterDefaultsFacet.class);
+ addIfNotEmpty(interpretFacet(facet), interpretations);
+ }
+ return !interpretations.isEmpty()? Joiner.on(";").join(interpretations) : interpretRowAndFacet(ActionDefaultsFacet.class);
+ }
}
String getValidate() {
- return memberType.getValidate(this);
+ if(memberType == MemberType.PROPERTY) {
+ return interpretRowAndFacet(PropertyValidateFacet.class);
+ } else if(memberType == MemberType.COLLECTION) {
+ final SortedSet<String> interpretations = Sets.newTreeSet();
+ addIfNotEmpty(interpretRowAndFacet(CollectionValidateAddToFacet.class), interpretations);
+ addIfNotEmpty(interpretRowAndFacet(CollectionValidateRemoveFromFacet.class), interpretations);
+ return !interpretations.isEmpty()? Joiner.on(";").join(interpretations) : "";
+ } else {
+ return interpretRowAndFacet(ActionValidationFacet.class);
+ }
}
static Object header() {
- return "classType,className,memberType,memberName,numParams,hidden,disabled,choices,autoComplete,default,validate";
+ return "classType,packageName,className,memberType,memberName,numParams,hidden,disabled,choices,autoComplete,default,validate";
}
String asTextCsv() {
return Joiner.on(",").join(
getClassType(),
+ getPackageName(),
getClassName(),
getType(),
getMemberName(),
@@ -221,26 +191,44 @@ public class MetaModelRow implements Comparable<MetaModelRow>{
getDefault(),
getValidate());
}
+
+ private String interpretRowAndFacet(Class<? extends Facet> facetClass) {
+ final Facet facet = member.getFacet(facetClass);
+ return interpretFacet(facet);
+ }
+
+ private static void addIfNotEmpty(final String str, final SortedSet<String> set) {
+ if(!Strings.isNullOrEmpty(str)) {
+ set.add(str);
+ }
+ }
private String interpret(final Class<? extends Facet> cls) {
return interpretFacet(member.getFacet(cls));
}
private static String interpretFacet(final Facet facet) {
- if (facet == null) {
+ if (facet == null || facet.isNoop()) {
return "";
}
if (facet instanceof ImperativeFacet) {
ImperativeFacet imperativeFacet = (ImperativeFacet) facet;
return imperativeFacet.getMethods().get(0).getName();
- } else {
- return "decl.";
- }
+ }
+ final String name = facet.getClass().getSimpleName();
+ if (ignore(name)) {
+ return "";
+ }
+ final String abbr = StringUtils.toAbbreviation(name);
+ return abbr.length()>0 ? abbr : name;
+ }
+
+ protected static boolean ignore(final String name) {
+ return Arrays.asList("PropertyValidateFacetDefault","PropertyDefaultFacetDerivedFromDefaultedFacet").contains(name);
}
@Override
public int compareTo(MetaModelRow o) {
return ObjectContracts.compare(this, o, "classType,className,type desc,memberName");
}
-
}
\ No newline at end of file
[2/2] git commit: ISIS-447: prototype class for prototype/exploration
actions.
Posted by da...@apache.org.
ISIS-447: prototype class for prototype/exploration actions.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/56b558c5
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/56b558c5
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/56b558c5
Branch: refs/heads/master
Commit: 56b558c543a5c27b999f4089b05c5c3a811caf65
Parents: bfa434b
Author: Dan Haywood <da...@apache.org>
Authored: Thu Jun 27 10:11:50 2013 +0100
Committer: Dan Haywood <da...@apache.org>
Committed: Thu Jun 27 10:11:50 2013 +0100
----------------------------------------------------------------------
.../viewer/wicket/model/links/LinkAndLabel.java | 9 +++++-
.../additionallinks/AdditionalLinksPanel.java | 5 +++-
.../cssmenu/AppActionsCssMenuLinkFactory.java | 6 ++--
.../ajaxtable/BulkActionsLinkFactory.java | 2 +-
.../entity/EntityActionLinkFactory.java | 5 ++--
.../components/widgets/cssmenu/CssMenuItem.java | 31 ++++++++++++++++++--
.../entitylink/EntityLinkSelect2Panel.html | 4 +--
.../entitylink/EntityLinkSelect2Panel.java | 2 +-
.../viewer/wicket/ui/pages/PageAbstract.css | 7 ++++-
9 files changed, 57 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index 9aca2ea..717a528 100644
--- a/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/component/viewer/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -30,12 +30,14 @@ public class LinkAndLabel implements Serializable {
private final String label;
private final String disabledReasonIfAny;
private final boolean blobOrClob;
+ private final boolean prototype;
- public LinkAndLabel(final AbstractLink link, final String label, String disabledReasonIfAny, boolean blobOrClob) {
+ public LinkAndLabel(final AbstractLink link, final String label, String disabledReasonIfAny, final boolean blobOrClob, final boolean prototype) {
this.link = link;
this.label = label;
this.disabledReasonIfAny = disabledReasonIfAny;
this.blobOrClob = blobOrClob;
+ this.prototype = prototype;
}
public AbstractLink getLink() {
@@ -53,4 +55,9 @@ public class LinkAndLabel implements Serializable {
public boolean isBlobOrClob() {
return blobOrClob;
}
+
+ public boolean isPrototype() {
+ return prototype;
+ }
+
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
index 434b6b1..92b7162 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/additionallinks/AdditionalLinksPanel.java
@@ -77,7 +77,10 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
viewTitleLabel.add(new AttributeAppender("title", disabledReasonIfAny));
}
if(linkAndLabel.isBlobOrClob()) {
- link.add(new AttributeModifier("class", Model.of("noVeil")));
+ link.add(new CssClassAppender("noVeil"));
+ }
+ if(linkAndLabel.isPrototype()) {
+ link.add(new CssClassAppender("prototype"));
}
viewTitleLabel.add(new CssClassAppender(StringUtils.toLowerDashed(linkAndLabel.getLabel())));
link.addOrReplace(viewTitleLabel);
http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
index d6df1a5..9e77876 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/appactions/cssmenu/AppActionsCssMenuLinkFactory.java
@@ -50,8 +50,10 @@ class AppActionsCssMenuLinkFactory implements CssMenuLinkFactory {
final AbstractLink link = Links.newBookmarkablePageLink(linkId, pageParameters, pageClass);
final String actionLabel = ObjectActions.nameFor(action);
- boolean blobOrClob = CssMenuItem.returnsBlobOrClob(action);
- return new LinkAndLabel(link, actionLabel, null, blobOrClob);
+ final boolean blobOrClob = CssMenuItem.returnsBlobOrClob(action);
+ final boolean prototype = CssMenuItem.isExplorationOrPrototype(action);
+
+ return new LinkAndLabel(link, actionLabel, null, blobOrClob, prototype);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java
index e2481de..f80c8ef 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/BulkActionsLinkFactory.java
@@ -101,6 +101,6 @@ final class BulkActionsLinkFactory implements CssMenuLinkFactory {
};
link.add(new JGrowlBehaviour());
- return new LinkAndLabel(link, objectAction.getName(), null, false);
+ return new LinkAndLabel(link, objectAction.getName(), null, false, CssMenuItem.isExplorationOrPrototype(objectAction));
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
index 14714e3..99335b8 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/entity/EntityActionLinkFactory.java
@@ -82,8 +82,9 @@ public final class EntityActionLinkFactory implements CssMenuLinkFactory {
link.setEnabled(false);
}
- boolean blobOrClob = CssMenuItem.returnsBlobOrClob(action);
- return new LinkAndLabel(link, label, disabledReasonIfAny, blobOrClob);
+ final boolean blobOrClob = CssMenuItem.returnsBlobOrClob(action);
+ final boolean prototype = CssMenuItem.isExplorationOrPrototype(action);
+ return new LinkAndLabel(link, label, disabledReasonIfAny, blobOrClob, prototype);
}
private AbstractLink createLink(final ObjectAdapterMemento adapterMemento, final ObjectAction action, final String linkId, final ObjectAdapter adapter) {
http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
index 4f6417b..4c566d7 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/CssMenuItem.java
@@ -103,6 +103,11 @@ public class CssMenuItem implements Serializable {
return cssMenuItem;
}
+ public Builder prototyping(boolean prototype) {
+ cssMenuItem.setPrototyping(prototype);
+ return this;
+ }
+
/**
* Returns the built {@link CssMenuItem}, associating with
* {@link #parent(CssMenuItem) parent} (if specified).
@@ -113,6 +118,7 @@ public class CssMenuItem implements Serializable {
}
return cssMenuItem;
}
+
}
private final String name;
@@ -123,12 +129,14 @@ public class CssMenuItem implements Serializable {
private boolean enabled = true; // unless disabled
private String disabledReason;
private boolean blobOrClob = false; // unless set otherwise
+ private boolean prototype = false; // unless set otherwise
static final String ID_MENU_LABEL = "menuLabel";
static final String ID_SUB_MENU_ITEMS = "subMenuItems";
+
/**
* Factory method returning {@link Builder builder}.
*/
@@ -136,6 +144,14 @@ public class CssMenuItem implements Serializable {
return new Builder(name);
}
+ /**
+ * @param prototype
+ */
+ public void setPrototyping(boolean prototype) {
+ this.prototype = prototype;
+
+ }
+
private CssMenuItem(final String name) {
this.name = name;
}
@@ -238,9 +254,10 @@ public class CssMenuItem implements Serializable {
final String reasonDisabledIfAny = usability.getReason();
// check if returns blob or clob (if so, then add CSS to suppress veil)
- boolean blobOrClob = returnsBlobOrClob(objectAction);
+ final boolean blobOrClob = returnsBlobOrClob(objectAction);
+ final boolean prototype = isExplorationOrPrototype(objectAction);
- return newSubMenuItem(actionLabel).link(link).enabled(reasonDisabledIfAny).returnsBlobOrClob(blobOrClob);
+ return newSubMenuItem(actionLabel).link(link).enabled(reasonDisabledIfAny).returnsBlobOrClob(blobOrClob).prototyping(prototype);
}
public static boolean returnsBlobOrClob(final ObjectAction objectAction) {
@@ -255,6 +272,10 @@ public class CssMenuItem implements Serializable {
return blobOrClob;
}
+ public static boolean isExplorationOrPrototype(final ObjectAction action) {
+ return action.getType().isExploration() || action.getType().isPrototype();
+ }
+
/**
* Creates a {@link Builder} for a submenu item where the provided {@link CssMenuLinkFactory} is able to provide the target adapter.
@@ -291,7 +312,10 @@ public class CssMenuItem implements Serializable {
link.add(label);
if(this.blobOrClob) {
- link.add(new AttributeModifier("class", Model.of("noVeil")));
+ link.add(new CssClassAppender("noVeil"));
+ }
+ if(this.prototype) {
+ link.add(new CssClassAppender("prototype"));
}
// .. and hide label
Components.permanentlyHide(markupContainer, CssMenuItem.ID_MENU_LABEL);
@@ -302,6 +326,7 @@ public class CssMenuItem implements Serializable {
// ... and show label, along with disabled reason
label.add(new AttributeModifier("title", Model.of(this.getDisabledReason())));
label.add(new AttributeModifier("class", Model.of("disabled")));
+
markupContainer.add(label);
return label;
http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html
index 62b0add..c3109ca 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.html
@@ -41,8 +41,8 @@
</div>
<div class="clear"/>
</div>
- <div class="feedbackPanel">
- <span wicket:id="feedback"/>
+ <div class="xfeedbackPanel">
+ <span xwicket:id="feedback"/>
</div>
</div>
</wicket:panel>
http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
index d93c45a..67259d4 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/entitylink/EntityLinkSelect2Panel.java
@@ -93,7 +93,7 @@ public class EntityLinkSelect2Panel extends FormComponentPanelAbstract<ObjectAda
* Builds the parts of the GUI that are not dynamic.
*/
private void buildGui() {
- addOrReplace(new ComponentFeedbackPanel(ID_FEEDBACK, this));
+ //addOrReplace(new ComponentFeedbackPanel(ID_FEEDBACK, this));
syncWithInput();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/56b558c5/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
index 157e17e..d988bfe 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.css
@@ -235,6 +235,11 @@ colors
font-weight:bold;
}
+ #applicationActions .cssMenuPanel .menuh a.prototype span {
+ color: lightblue;
+ }
+
+
#applicationActions .cssMenuPanel .menuh li a:link,
#applicationActions .cssMenuPanel .menuh li a:visited,
#applicationActions .cssMenuPanel .menuh li a:active,
@@ -291,7 +296,7 @@ colors
padding: 0px 1em 0px 1em;
background-image:none !important;
}
-
+
#applicationActions .cssMenuPanel .menuh li:hover a,
#applicationActions .cssMenuPanel .menuh li:hover p {
color: #FFFFFF;