You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/09/20 19:54:17 UTC

[isis] 02/02: ISIS-1920: show all disabled reasons on members except 'Always disabled'

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

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

commit 528671c63749d1e03c19562c50f1be626ac4de27
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Sep 20 21:53:43 2018 +0200

    ISIS-1920: show all disabled reasons on members except 'Always disabled'
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1920
---
 .../ui/components/scalars/ScalarPanelAbstract.java   | 19 +++++++++++--------
 .../ui/components/scalars/ScalarPanelAbstract2.java  | 20 +++++++++++++-------
 .../scalars/ScalarPanelTextFieldAbstract.java        |  5 +++--
 .../apache/isis/viewer/wicket/ui/util/Tooltips.java  |  5 ++---
 .../isis/viewer/wicket/ui/util/isis-tooltips.css     |  4 +++-
 5 files changed, 32 insertions(+), 21 deletions(-)

diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index 0c11a39..d7db095 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -21,8 +21,6 @@ package org.apache.isis.viewer.wicket.ui.components.scalars;
 
 import java.util.List;
 
-import org.apache.isis.commons.internal.collections._Lists;
-
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -35,6 +33,7 @@ import org.apache.wicket.model.Model;
 
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.commons.internal.collections._Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.core.metamodel.adapter.concurrency.ConcurrencyChecking;
@@ -177,14 +176,18 @@ public abstract class ScalarPanelAbstract extends PanelAbstract<ScalarModel> imp
         }
 
         final ScalarModel scalarModel = getModel();
+        
         final String disableReasonIfAny = scalarModel.whetherDisabled();
-
-        if (scalarModel.isViewMode()) {
-            onBeforeRenderWhenViewMode();
-        } else {
-            if (disableReasonIfAny != null) {
-                onBeforeRenderWhenDisabled(disableReasonIfAny);
+        if (disableReasonIfAny != null) {
+            if("Always disabled".equals(disableReasonIfAny)) {
+                onBeforeRenderWhenViewMode();
             } else {
+                onBeforeRenderWhenDisabled(disableReasonIfAny.toString());
+            }
+        } else {
+            if (scalarModel.isViewMode()) {
+                onBeforeRenderWhenViewMode();
+            } else {        
                 onBeforeRenderWhenEnabled();
             }
         }
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index 006e3a5..235f638 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -167,7 +167,7 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
         setOutputMarkupId(true);
 
     }
-
+    
     private void buildGuiAndCallHooks() {
 
         try {
@@ -186,16 +186,22 @@ public abstract class ScalarPanelAbstract2 extends PanelAbstract<ScalarModel> im
 
         final ScalarModel scalarModel = getModel();
 
-        if (scalarModel.isViewMode()) {
-            onInitializeWhenViewMode();
-        } else {
-            final String disableReasonIfAny = scalarModel.whetherDisabled();
-            if (disableReasonIfAny != null) {
-                onInitializeWhenDisabled(disableReasonIfAny);
+        final String disableReasonIfAny = scalarModel.whetherDisabled();
+        if (disableReasonIfAny != null) {
+            if("Always disabled".equals(disableReasonIfAny)) {
+                onInitializeWhenViewMode();
             } else {
+                onInitializeWhenDisabled(disableReasonIfAny.toString());
+            }
+        } else {
+            if (scalarModel.isViewMode()) {
+                onInitializeWhenViewMode();
+            } else {        
                 onInitializeWhenEnabled();
             }
         }
+        
+
     }
 
     /**
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index 0266460..470d537 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -36,6 +36,7 @@ import org.apache.wicket.validation.IValidatable;
 import org.apache.wicket.validation.IValidator;
 import org.apache.wicket.validation.ValidationError;
 
+import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
 import org.apache.isis.core.metamodel.facets.SingleIntValueFacet;
@@ -294,7 +295,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
     protected IModel<String> obtainInlinePromptModel() {
         IModel<T> model = textField.getModel();
         // must be "live", for ajax updates.
-        return (IModel<String>) model;
+        return _Casts.uncheckedCast(model);
     }
 
 
@@ -308,7 +309,7 @@ public abstract class ScalarPanelTextFieldAbstract<T extends Serializable> exten
         textField.setEnabled(false);
         addReplaceDisabledTagWithReadonlyTagBehaviourIfRequired(textField);
 
-        setTooltip("No editing.");
+        clearTooltip();
     }
 
     @Override
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Tooltips.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Tooltips.java
index 6829cb5..4695a88 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Tooltips.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Tooltips.java
@@ -17,8 +17,6 @@
 
 package org.apache.isis.viewer.wicket.ui.util;
 
-import static org.apache.isis.commons.internal.functions._Predicates.alwaysTrue;
-
 import org.apache.wicket.Component;
 import org.apache.wicket.behavior.AttributeAppender;
 import org.apache.wicket.markup.head.CssHeaderItem;
@@ -65,7 +63,8 @@ public class Tooltips {
     }
     
     public static void clearTooltip(Component target) {
-        target.getBehaviors(TooltipBehavior.class).removeIf(alwaysTrue());
+        target.getBehaviors(TooltipBehavior.class)
+        .forEach(target::remove);
     }
     
     // -- HELPER
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/isis-tooltips.css b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/isis-tooltips.css
index 65d50be..5cb47bc 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/isis-tooltips.css
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/isis-tooltips.css
@@ -13,4 +13,6 @@
 
 .isis-component-with-tooltip label, strong.isis-component-with-tooltip  {
 	text-decoration: underline dashed;
-}
\ No newline at end of file
+}
+
+.ui-helper-hidden-accessible { display:none; }
\ No newline at end of file