You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/04/01 05:34:55 UTC

[causeway] branch master updated: CAUSEWAY-3401: always show disabled reason in prototyping mode

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

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/master by this push:
     new 7bf569768c CAUSEWAY-3401: always show disabled reason in prototyping mode
7bf569768c is described below

commit 7bf569768cf7af14e7cd566ce482a5376b727621
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Apr 1 07:34:50 2023 +0200

    CAUSEWAY-3401: always show disabled reason in prototyping mode
---
 .../ui/components/scalars/ScalarPanelAbstract2.java       | 15 +++++++++++----
 .../components/scalars/ScalarPanelAdditionalButton.java   | 13 +++++++++++++
 .../common/bootstrap/css/bootstrap-overrides-all-v2.css   |  4 ++++
 3 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index a173dcb141..a2e4cdeba3 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -262,7 +262,11 @@ extends ScalarPanelAbstract {
                     //XXX Future extension
                     break;
                 case DISABLED_REASON:
-                    addDisabledReasonIcon(buttonContainer);
+                    addDisabledReasonIcon(buttonContainer, "fa-solid fa-ban", "");
+                    break;
+                case DISABLED_REASON_PROTOTYPING:
+                    addDisabledReasonIcon(buttonContainer, "fa-solid fa-text-slash icon-prototyping",
+                            " Note: This icon only appears in prototyping mode.");
                     break;
                 case CLEAR_FIELD:
                     addClearFieldButton(buttonContainer);
@@ -274,15 +278,18 @@ extends ScalarPanelAbstract {
         }
     }
 
-    private void addDisabledReasonIcon(final @NonNull RepeatingView buttonContainer) {
+    private void addDisabledReasonIcon(
+            final @NonNull RepeatingView buttonContainer,
+            final @NonNull String faClass,
+            final @NonNull String reasonSuffix) {
         val disableReasonButton = Wkt.linkAddWithBody(buttonContainer,
-                Wkt.faIcon("fa-solid fa-ban"), ajaxTarget->{/*no-op*/});
+                Wkt.faIcon(faClass), ajaxTarget->{/*no-op*/});
 
         val disabledReason = scalarModel().disabledReason()
                 .flatMap(InteractionVeto::getReasonAsString)
                 .orElse("framework bug: should provide a reason");
 
-        WktTooltips.addTooltip(disableReasonButton, translate(disabledReason));
+        WktTooltips.addTooltip(disableReasonButton, translate(disabledReason) + translate(reasonSuffix));
 
         if(scalarModel().isParameter()) {
             // allow the client-side popover cleaner to kick in
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java
index 63d9c74140..2c4b584c96 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/scalars/ScalarPanelAdditionalButton.java
@@ -44,6 +44,19 @@ enum ScalarPanelAdditionalButton {
                     .orElse(false);
         }
     },
+    DISABLED_REASON_PROTOTYPING {
+        @Override
+        boolean isVisible(
+                final ScalarModel scalarModel,
+                final RenderScenario renderScenario,
+                final FieldFragement fieldFragement) {
+            return scalarModel.disabledReason()
+                    .map(InteractionVeto::getVetoConsent)
+                    .flatMap(Consent::getReason)
+                    .map(vetoReason->!vetoReason.showInUi())
+                    .orElse(false);
+        }
+    },
     CLEAR_FIELD {
         @Override
         boolean isVisible(
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css
index e1833041a3..9f331157de 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/bootstrap/css/bootstrap-overrides-all-v2.css
@@ -583,6 +583,10 @@ div.additionalLinkList {
 
 }
 
+.icon-prototyping {
+    color: silver;
+}
+
 /* dropdown-menu: distinguished rendering for disabled menu-items
    (assuming grey foreground text color is reasonable to apply to light as well as dark themes) */
 .dropdown-menu > .disabled > a,