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 2019/01/29 18:03:52 UTC

[isis] branch v2 updated: ISIS-1989: fixes tooltips for disabled action button

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/v2 by this push:
     new 96ffac1  ISIS-1989: fixes tooltips for disabled action button
96ffac1 is described below

commit 96ffac17b45459056602d6246b9313fbd620aca6
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Jan 29 18:03:37 2019 +0000

    ISIS-1989: fixes tooltips for disabled action button
---
 .../viewer/wicket/model/links/LinkAndLabel.java    | 10 +-------
 .../entityactions/AdditionalLinksPanel.java        |  6 +++--
 .../entityactions/EntityActionLinkFactory.java     | 29 +++-------------------
 .../serviceactions/ServiceActionLinkFactory.java   |  2 +-
 .../linkandlabel/ActionLinkFactoryAbstract.java    |  5 ++--
 5 files changed, 11 insertions(+), 41 deletions(-)

diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
index 1270890..c0d3aa6 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/links/LinkAndLabel.java
@@ -46,7 +46,6 @@ public class LinkAndLabel implements Serializable {
             final ObjectAdapter objectAdapter,
             final ObjectAction objectAction,
             final AbstractLink link,
-            final String disabledReasonIfAny,
             final boolean blobOrClob) {
 
         final String name = ObjectAction.Util.nameFor(objectAction);
@@ -63,7 +62,7 @@ public class LinkAndLabel implements Serializable {
 
         return new LinkAndLabel(
                 link, name,
-                disabledReasonIfAny, description,
+                description,
                 blobOrClob, isPrototype,
                 actionIdentifier,
                 cssClass, cssClassFa, cssClassFaPosition, actionLayoutPosition,
@@ -87,7 +86,6 @@ 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;
@@ -103,7 +101,6 @@ public class LinkAndLabel implements Serializable {
     private LinkAndLabel(
             final AbstractLink link,
             final String label,
-            final String disabledReasonIfAny,
             final String descriptionIfAny,
             final boolean blobOrClob,
             final boolean prototype,
@@ -117,7 +114,6 @@ public class LinkAndLabel implements Serializable {
             final Parameters parameters) {
         this.link = link;
         this.label = label;
-        this.disabledReasonIfAny = disabledReasonIfAny;
         this.descriptionIfAny = descriptionIfAny;
         this.blobOrClob = blobOrClob;
         this.prototype = prototype;
@@ -139,10 +135,6 @@ public class LinkAndLabel implements Serializable {
         return label;
     }
 
-    public String getReasonDisabledIfAny() {
-        return disabledReasonIfAny;
-    }
-
     public String getDescriptionIfAny() {
         return descriptionIfAny;
     }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
index 4777ea5..f2d5d0b 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/AdditionalLinksPanel.java
@@ -127,7 +127,7 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
                                 return first(reasonDisabledIfAny, linkAndLabel.getDescriptionIfAny());
                             }
                         } 
-                        : Model.of(first(linkAndLabel.getReasonDisabledIfAny(), linkAndLabel.getDescriptionIfAny()));
+                        : Model.of(linkAndLabel.getDescriptionIfAny());
                 
                 Tooltips.addTooltip(link, tooltipModel);
 
@@ -141,7 +141,9 @@ public class AdditionalLinksPanel extends PanelAbstract<ListOfLinksModel> {
                 link.add(new CssClassAppender(linkAndLabel.getActionIdentifier()));
 
                 SemanticsOf semantics = linkAndLabel.getSemantics();
-                if (linkAndLabel.getParameters().isNoParameters() && linkAndLabel.getReasonDisabledIfAny() == null) {
+                if (linkAndLabel.getParameters().isNoParameters() &&
+                    (link instanceof ActionLink ? ((ActionLink)link).getReasonDisabledIfAny() : null) == null
+                    ) {
                     addConfirmationDialogIfAreYouSureSemantics(link, semantics);
                 }
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
index 7a9589d..2a33d13 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/entityactions/EntityActionLinkFactory.java
@@ -54,35 +54,12 @@ public final class EntityActionLinkFactory extends ActionLinkFactoryAbstract {
                     "Object '%s' is not persistent.", objectAdapter.titleString(null)));
         }
 
-        // visibility needs to be determined at point of rendering, by ActionLink itself
-
-        // // check visibility and whether enabled
-        // final Consent visibility =
-        //                objectAction.isVisible(
-        //                        objectAdapter,
-        //                        InteractionInitiatedBy.USER,
-        //                        Where.OBJECT_FORMS);
-        // if (visibility.isVetoed()) {
-        //     return null;
-        // }
-
+        // previously we computed visibility and enablement here, but
+        // this is now done at the point of rendereing
 
         final AbstractLink link = newLink(linkId, objectAction, toggledMementosProviderIfAny);
 
-        // similarly for whether disabled, done at point of rendering
-
-        // final Consent usability =
-        //            objectAction.isUsable(
-        //                    objectAdapter,
-        //                    InteractionInitiatedBy.USER,
-        //                    Where.OBJECT_FORMS);
-        // final String disabledReasonIfAny = usability.getReason();
-        // if(disabledReasonIfAny != null) {
-        //    link.setEnabled(false);
-        // }
-
-        final String disabledReasonIfAny = null;
-        return newLinkAndLabel(objectAdapter, objectAction, link, disabledReasonIfAny);
+        return newLinkAndLabel(objectAdapter, objectAction, link);
     }
 
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java
index 10ce792..9a9f4ae 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/actionmenu/serviceactions/ServiceActionLinkFactory.java
@@ -47,7 +47,7 @@ class ServiceActionLinkFactory extends ActionLinkFactoryAbstract {
 
         final AbstractLink link = newLink(linkId, objectAction, toggledMementosProviderIfAny);
 
-        return newLinkAndLabel(objectAdapter, objectAction, link, null);
+        return newLinkAndLabel(objectAdapter, objectAction, link);
     }
 
 
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
index 8de064c..4e035c3 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/linkandlabel/ActionLinkFactoryAbstract.java
@@ -276,12 +276,11 @@ public abstract class ActionLinkFactoryAbstract implements ActionLinkFactory {
     protected LinkAndLabel newLinkAndLabel(
             final ObjectAdapter objectAdapter,
             final ObjectAction objectAction,
-            final AbstractLink link,
-            final String disabledReasonIfAny) {
+            final AbstractLink link) {
 
         final boolean whetherReturnsBlobOrClob = ObjectAction.Util.returnsBlobOrClob(objectAction);
 
-        return LinkAndLabel.newLinkAndLabel(objectAdapter, objectAction, link, disabledReasonIfAny, whetherReturnsBlobOrClob);
+        return LinkAndLabel.newLinkAndLabel(objectAdapter, objectAction, link, whetherReturnsBlobOrClob);
     }
 
     private InlinePromptContext determineInlinePromptContext() {