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": {
                             },