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 2014/11/12 00:35:46 UTC
isis git commit: ISIS-537: titles (tooltips) now displayed correctly
for action buttons.
Repository: isis
Updated Branches:
refs/heads/ISIS-939 9746edbdf -> 8a9378b1f
ISIS-537: titles (tooltips) now displayed correctly for action buttons.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/8a9378b1
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/8a9378b1
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/8a9378b1
Branch: refs/heads/ISIS-939
Commit: 8a9378b1f209f16cec27c5d2990837237ccca7ee
Parents: 9746edb
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Nov 11 23:35:32 2014 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Nov 11 23:35:32 2014 +0000
----------------------------------------------------------------------
.../viewer/wicket/model/links/LinkAndLabel.java | 7 ++++++
.../additionallinks/AdditionalLinksPanel.java | 24 +++++++++++++-------
.../collection/bulk/BulkActionsLinkFactory.java | 4 +++-
.../cssmenu/ActionLinkFactoryAbstract.java | 17 +++++++-------
.../components/widgets/cssmenu/CssMenuItem.java | 5 ++++
.../src/main/java/dom/todo/ToDoItem.layout.json | 7 ++++--
6 files changed, 45 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/8a9378b1/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 1b6cf29..a961b1f 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
@@ -29,6 +29,7 @@ public class LinkAndLabel implements Serializable {
private final AbstractLink link;
private final String label;
private final String disabledReasonIfAny;
+ private final String descriptionIfAny;
private final boolean blobOrClob;
private final boolean prototype;
private final String actionIdentifier;
@@ -39,6 +40,7 @@ public class LinkAndLabel implements Serializable {
final AbstractLink link,
final String label,
final String disabledReasonIfAny,
+ final String descriptionIfAny,
final boolean blobOrClob,
final boolean prototype,
final String identifier,
@@ -47,6 +49,7 @@ public class LinkAndLabel implements Serializable {
this.link = link;
this.label = label;
this.disabledReasonIfAny = disabledReasonIfAny;
+ this.descriptionIfAny = descriptionIfAny;
this.blobOrClob = blobOrClob;
this.prototype = prototype;
this.actionIdentifier = identifier;
@@ -66,6 +69,10 @@ public class LinkAndLabel implements Serializable {
return disabledReasonIfAny;
}
+ public String getDescriptionIfAny() {
+ return descriptionIfAny;
+ }
+
public boolean isBlobOrClob() {
return blobOrClob;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/8a9378b1/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 ec40f09..e1618eb 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
@@ -20,7 +20,6 @@
package org.apache.isis.viewer.wicket.ui.components.additionallinks;
import java.util.List;
-
import com.google.common.base.Strings;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.head.IHeaderResponse;
@@ -29,7 +28,6 @@ import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.AbstractLink;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
-
import org.apache.isis.core.commons.lang.StringExtensions;
import org.apache.isis.viewer.wicket.model.links.LinkAndLabel;
import org.apache.isis.viewer.wicket.model.links.ListOfLinksModel;
@@ -75,7 +73,7 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
final AbstractLink link = linkAndLabel.getLink();
- String cssClassFa = linkAndLabel.getCssClassFa();
+ final String cssClassFa = linkAndLabel.getCssClassFa();
if(Strings.isNullOrEmpty(cssClassFa)) {
Components.permanentlyHide(link, ID_ADDITIONAL_LINK_FONT_AWESOME);
} else {
@@ -84,11 +82,12 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
dummy.add(new CssClassAppender(cssClassFa));
}
- Label viewTitleLabel = new Label(ID_ADDITIONAL_LINK_TITLE, linkAndLabel.getLabel());
- String disabledReasonIfAny = linkAndLabel.getDisabledReasonIfAny();
- if(disabledReasonIfAny != null) {
- viewTitleLabel.add(new AttributeAppender("title", disabledReasonIfAny));
+ final String itemTitle = first(linkAndLabel.getDisabledReasonIfAny(), linkAndLabel.getDescriptionIfAny());
+ if(itemTitle != null) {
+ item.add(new AttributeAppender("title", itemTitle));
}
+
+ final Label viewTitleLabel = new Label(ID_ADDITIONAL_LINK_TITLE, linkAndLabel.getLabel());
if(linkAndLabel.isBlobOrClob()) {
link.add(new CssClassAppender("noVeil"));
}
@@ -96,11 +95,13 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
link.add(new CssClassAppender("prototype"));
}
link.add(new CssClassAppender(linkAndLabel.getActionIdentifier()));
- String cssClass = linkAndLabel.getCssClass();
+
+ final String cssClass = linkAndLabel.getCssClass();
if(cssClass != null) {
link.add(new CssClassAppender(cssClass));
}
viewTitleLabel.add(new CssClassAppender(StringExtensions.asLowerDashed(linkAndLabel.getLabel())));
+
link.addOrReplace(viewTitleLabel);
item.addOrReplace(link);
}
@@ -108,6 +109,13 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
container.addOrReplace(listView);
}
+ private static String first(String... str) {
+ for (String s : str) {
+ if(s != null) return s;
+ }
+ return null;
+ }
+
/**
* Because there is no {@link ComponentFactory} for this component,
* its CSS must be contributed in this way instead (also meaning its CSS is not bundled).
http://git-wip-us.apache.org/repos/asf/isis/blob/8a9378b1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
index e0534b4..1a59172 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
@@ -200,12 +200,14 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
};
link.add(new JGrowlBehaviour());
+
final boolean explorationOrPrototype = CssMenuItem.isExplorationOrPrototype(objectAction);
final String actionIdentifier = CssMenuItem.actionIdentifierFor(objectAction);
+ final String description = CssMenuItem.descriptionOf(objectAction);
final String cssClass = CssMenuItem.cssClassFor(objectAction);
final String cssClassFa = CssMenuItem.cssClassFaFor(objectAction);
- return new LinkAndLabel(link, objectAction.getName(), null, false, explorationOrPrototype, actionIdentifier, cssClass, cssClassFa);
+ return new LinkAndLabel(link, objectAction.getName(), null, description, false, explorationOrPrototype, actionIdentifier, cssClass, cssClassFa);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/8a9378b1/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java
index 1cced6d..dc41c4a 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/cssmenu/ActionLinkFactoryAbstract.java
@@ -275,16 +275,17 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
}
}
- protected LinkAndLabel newLinkAndLabel(final ObjectAction action, final AbstractLink link, final String disabledReasonIfAny) {
+ protected LinkAndLabel newLinkAndLabel(final ObjectAction objectAction, final AbstractLink link, final String disabledReasonIfAny) {
- final String label = ObjectAction.Utils.nameFor(action);
- final boolean blobOrClob = CssMenuItem.returnsBlobOrClob(action);
- final boolean prototype = CssMenuItem.isExplorationOrPrototype(action);
- final String actionIdentifier = CssMenuItem.actionIdentifierFor(action);
- final String cssClass = CssMenuItem.cssClassFor(action);
- final String cssClassFa = CssMenuItem.cssClassFaFor(action);
+ final String label = ObjectAction.Utils.nameFor(objectAction);
+ final boolean blobOrClob = CssMenuItem.returnsBlobOrClob(objectAction);
+ final boolean prototype = CssMenuItem.isExplorationOrPrototype(objectAction);
+ final String actionIdentifier = CssMenuItem.actionIdentifierFor(objectAction);
+ final String description = CssMenuItem.descriptionOf(objectAction);
+ final String cssClass = CssMenuItem.cssClassFor(objectAction);
+ final String cssClassFa = CssMenuItem.cssClassFaFor(objectAction);
- return new LinkAndLabel(link, label, disabledReasonIfAny, blobOrClob, prototype, actionIdentifier, cssClass, cssClassFa);
+ return new LinkAndLabel(link, label, disabledReasonIfAny, description, blobOrClob, prototype, actionIdentifier, cssClass, cssClassFa);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/8a9378b1/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 41f8e89..bfbb539 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
@@ -348,6 +348,11 @@ public class CssMenuItem implements Serializable {
return action.getType().isExploration() || action.getType().isPrototype();
}
+ public static String descriptionOf(ObjectAction action) {
+ return action.getDescription();
+ }
+
+
public static String actionIdentifierFor(final ObjectAction action) {
@SuppressWarnings("unused")
final Identifier identifier = action.getIdentifier();
http://git-wip-us.apache.org/repos/asf/isis/blob/8a9378b1/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json
----------------------------------------------------------------------
diff --git a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json
index 69944d2..4ad0a90 100644
--- a/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json
+++ b/example/application/todoapp/dom/src/main/java/dom/todo/ToDoItem.layout.json
@@ -52,13 +52,16 @@
"completed": {
"named": { "value": "Done" },
"describedAs": {
- "value": "Mark this todo item as having been completed"
+ "value": "Update this todo item as complete"
},
"cssClassFa": { "value": "fa fa-thumbs-up" }
},
"notYetCompleted": {
"named": { "value": "Not done" },
- "cssClassFa": { "value": "fa fa-thumbs-down" }
+ "describedAs": {
+ "value": "Update this todo item as not yet complete"
+ },
+ "cssClassFa": { "value": "fa fa-thumbs-down" }
},
"scheduleExplicitly": {
},