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 2022/05/13 12:17:29 UTC

[isis] branch master updated: ISIS-3050: replace empty text-area when in output mode with html badge

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/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new f4fc8303b5 ISIS-3050: replace empty text-area when in output mode with html badge
f4fc8303b5 is described below

commit f4fc8303b57269ca407bbfc463bd8a5dc2498126
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri May 13 14:17:23 2022 +0200

    ISIS-3050: replace empty text-area when in output mode with html badge
---
 .../ui/components/scalars/ScalarPanelAbstract.java  |  4 ++--
 .../ui/components/scalars/ScalarPanelAbstract2.java | 20 ++++++++++++++++----
 .../scalars/ScalarPanelTextFieldAbstract.java       | 21 ---------------------
 3 files changed, 18 insertions(+), 27 deletions(-)

diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
index a9f7ac8a87..51c7c04d7f 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract.java
@@ -85,12 +85,12 @@ implements ScalarModelSubscriber {
     protected static final String ID_SCALAR_VALUE = "scalarValue";
 
     public enum FormatModifier {
-        READONLY,
+        //READONLY,
         MARKUP,
         MULITLINE,
         COMPOSITE,
         TRISTATE,
-        FLEX,
+        //FLEX,
         BLOB,
     }
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
index efb7dbae14..5b15e560ab 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelAbstract2.java
@@ -122,9 +122,7 @@ extends ScalarPanelAbstract {
      * However, it may be overridden if required.
      */
     protected Component createComponentForOutput(final String id) {
-        if(getFormatModifiers().contains(FormatModifier.MULITLINE)
-                && !getFormatModifiers().contains(FormatModifier.MARKUP)
-                && !getRenderScenario().isCompact()) {
+        if(isUsingTextarea()) {
             return PromptFragment.TEXTAREA
                     .createFragment(id, this, scalarValueId->{
                         val textArea = Wkt.textAreaNoTab(scalarValueId, this::obtainOutputFormat);
@@ -141,12 +139,26 @@ extends ScalarPanelAbstract {
                         Wkt.markup(scalarValueId, this::obtainOutputFormat));
     }
 
+    private boolean isUsingTextarea() {
+        if(getRenderScenario().isCompact()
+                || getFormatModifiers().contains(FormatModifier.MARKUP)
+                || !getFormatModifiers().contains(FormatModifier.MULITLINE)) {
+            return false;
+        }
+        // only render a text-area if it has content
+        return !scalarModel().isEmpty();
+    }
+
     /**
      * Output format (usually HTML) as String, for any non editing scenario.
+     * <p>
+     * Usually HTML, except for (non-empty) text-areas.
      */
     protected String obtainOutputFormat() {
         return _Strings.nonEmpty(
-                    scalarModel().proposedValue().getValueAsHtml().getValue())
+                    isUsingTextarea()
+                        ? scalarModel().proposedValue().getValueAsTitle().getValue()
+                        : scalarModel().proposedValue().getValueAsHtml().getValue())
                 .orElseGet(()->
                     PlaceholderLiteral.NULL_REPRESENTATION.asHtml(this::translate));
     }
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
index decc88be45..e0e23548e7 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelTextFieldAbstract.java
@@ -134,27 +134,6 @@ extends ScalarPanelFormFieldAbstract<T> {
         return super.obtainOutputFormat();
     }
 
-//    protected class ToStringConvertingModel<X> extends Model<String> {
-//        private static final long serialVersionUID = 1L;
-//
-//        @NonNull private final IConverter<X> converter;
-//
-//        private ToStringConvertingModel(final @NonNull IConverter<X> converter) {
-//            this.converter = converter;
-//        }
-//
-//        @Override public String getObject() {
-//            val adapter = scalarModel().getObject();
-//            val value = ManagedObjects.UnwrapUtil.single(adapter);
-//            final String str = value != null
-//                    ? converter.convertToString(
-//                            _Casts.uncheckedCast(value),
-//                            getLanguageProvider().getPreferredLanguage().orElseGet(Locale::getDefault))
-//                    : null;
-//            return str;
-//        }
-//    }
-
     // -- HELPER
 
     <F extends FormComponent<?>> F applyFormComponentAttributes(final F formComponent) {