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 1fe809b734 ISIS-3172: wkt: adds ui debug info (when in XrayWkt mode)
1fe809b734 is described below

commit 1fe809b7344697dc3a00ee498eaef4be46e98846
Author: Andi Huber <[email protected]>
AuthorDate: Thu Aug 25 06:04:45 2022 +0200

    ISIS-3172: wkt: adds ui debug info (when in XrayWkt mode)
---
 .../ui/components/scalars/ScalarPanelAbstract.java |  2 +-
 .../scalars/ScalarPanelFormFieldAbstract.java      | 24 +++++++++++++++-----
 .../scalars/ScalarPanelFormFieldAbstract_xray.html |  8 +++++--
 .../wicket/ui/util/{WktXray.java => XrayWkt.java}  | 26 +++++++++++++++++++++-
 .../wicketapp/config/WicketViewerXrayEnable.java   |  4 ++--
 5 files changed, 52 insertions(+), 12 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 dce2407e73..1158c6bdb3 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
@@ -72,7 +72,6 @@ import lombok.val;
 
 import 
de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 
-
 public abstract class ScalarPanelAbstract
 extends PanelAbstract<ManagedObject, ScalarModel>
 implements ScalarModelSubscriber {
@@ -83,6 +82,7 @@ implements ScalarModelSubscriber {
 
     protected static final String ID_SCALAR_NAME = "scalarName";
     protected static final String ID_SCALAR_VALUE = "scalarValue";
+    protected static final String ID_XRAY_DETAILS = "xrayDetails";
 
     public enum FormatModifier {
         MARKUP,
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
index 928632ad47..d567781b66 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.java
@@ -27,6 +27,9 @@ import org.apache.wicket.markup.html.form.FormComponent;
 import org.apache.wicket.model.Model;
 import org.springframework.lang.Nullable;
 
+import org.apache.isis.commons.internal.base._NullSafe;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.viewer.wicket.model.models.ScalarModel;
 import 
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory.FieldFragement;
@@ -36,7 +39,7 @@ import 
org.apache.isis.viewer.wicket.ui.components.scalars.ScalarFragmentFactory
 import org.apache.isis.viewer.wicket.ui.components.widgets.bootstrap.FormGroup;
 import org.apache.isis.viewer.wicket.ui.util.Wkt;
 import org.apache.isis.viewer.wicket.ui.util.WktTooltips;
-import org.apache.isis.viewer.wicket.ui.util.WktXray;
+import org.apache.isis.viewer.wicket.ui.util.XrayWkt;
 
 import lombok.val;
 
@@ -136,10 +139,19 @@ extends ScalarPanelAbstract2 {
 
         val renderScenario = getRenderScenario();
 
-        //XXX debug (wicket viewer x-ray)
-        WktXray.ifEnabledDo(()->{
-            val debugInfo = String.format("%s", renderScenario.name());
-            Wkt.labelAdd(fieldFrame, "xrayLabel", debugInfo);
+        XrayWkt.ifEnabledDo(()->{
+            // debug (wicket viewer x-ray)
+            val xrayDetails = _Maps.<String, String>newLinkedHashMap();
+            xrayDetails.put("renderScenario", renderScenario.name());
+            xrayDetails.put("inputFragmentType", 
getInputFragmentType().map(x->x.name()).orElse("(none)"));
+            xrayDetails.put("formComponent", 
_Strings.nonEmpty(formComponent.getClass().getSimpleName())
+                    .orElseGet(()->formComponent.getClass().getName()));
+            xrayDetails.put("formComponent.id", formComponent.getId());
+            xrayDetails.put("formComponent.validators (count)", 
""+_NullSafe.size(formComponent.getValidators()));
+            xrayDetails.put("scalarModel.disableReasonIfAny", 
""+scalarModel().disableReasonIfAny());
+            xrayDetails.put("scalarModel.whetherHidden", 
""+scalarModel().whetherHidden());
+            xrayDetails.put("scalarModel.identifier", 
""+scalarModel().getIdentifier());
+            Wkt.markupAdd(fieldFrame, ID_XRAY_DETAILS, 
XrayWkt.formatAsListGroup(xrayDetails));
         });
 
         if(renderScenario.isReadonly()) {
@@ -225,7 +237,7 @@ extends ScalarPanelAbstract2 {
 
     @Override
     public String getVariation() {
-        return WktXray.isEnabled()
+        return XrayWkt.isEnabled()
                 ? "xray"
                 : super.getVariation();
     }
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract_xray.html
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract_xray.html
index be78b667f0..aa738dc115 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract_xray.html
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract_xray.html
@@ -97,8 +97,12 @@
                <wicket:fragment 
wicket:id="fragment-fieldFrame-withoutLink-editing">
                        <span class="scalarValueInput input-group">
                                <!-- input format (when editing or action 
dialog) -->
-                               <span wicket:id="xrayLabel" 
-                                       class="badge rounded-pill 
text-bg-warning">xrayLabel</span>
+                               
+                               <details>
+                                 <summary><span class="badge 
bg-info">Xray</span></summary>
+                                 <div wicket:id="xrayDetails" 
style="font-size: 0.75rem;"></div>
+                               </details>
+                               
                                <wicket:container 
                                        wicket:id="container-scalarValue"/>
                        
diff --git 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/WktXray.java
 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/XrayWkt.java
similarity index 62%
rename from 
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/WktXray.java
rename to 
viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/XrayWkt.java
index 2a9d88847c..34154e3e78 100644
--- 
a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/WktXray.java
+++ 
b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/XrayWkt.java
@@ -18,13 +18,18 @@
  */
 package org.apache.isis.viewer.wicket.ui.util;
 
+import java.util.Map;
+
+import org.springframework.lang.Nullable;
+
 import lombok.Getter;
 import lombok.NonNull;
 import lombok.Setter;
+import lombok.val;
 import lombok.experimental.UtilityClass;
 
 @UtilityClass
-public class WktXray {
+public class XrayWkt {
 
     @Getter @Setter
     private boolean enabled = false;
@@ -35,4 +40,23 @@ public class WktXray {
         }
     }
 
+    // -- FORMATTERS
+
+    public String formatAsListGroup(final @Nullable Map<String, String> 
keyValuePairs) {
+        val sb = new StringBuilder();
+        sb.append("<ul class=\"list-group\">");
+        if(keyValuePairs!=null) {
+            keyValuePairs.forEach((key, value)->{
+                sb
+                .append("<li class=\"list-group-item\">")
+                .append(key)
+                .append(": ")
+                .append("<b>").append(value).append("</b>")
+                .append("</li>");
+            });
+        }
+        sb.append("</ul>");
+        return sb.toString();
+    }
+
 }
diff --git 
a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXrayEnable.java
 
b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXrayEnable.java
index 36fc14247e..695d53b872 100644
--- 
a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXrayEnable.java
+++ 
b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXrayEnable.java
@@ -22,7 +22,7 @@ import org.apache.wicket.protocol.http.WebApplication;
 import org.springframework.context.annotation.Configuration;
 
 import org.apache.isis.viewer.wicket.model.isis.WicketApplicationInitializer;
-import org.apache.isis.viewer.wicket.ui.util.WktXray;
+import org.apache.isis.viewer.wicket.ui.util.XrayWkt;
 import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
 
 /**
@@ -37,7 +37,7 @@ implements WicketApplicationInitializer {
 
     @Override
     public void init(final WebApplication webApplication) {
-        WktXray.setEnabled(true);
+        XrayWkt.setEnabled(true);
         webApplication.getDebugSettings()
             .setOutputMarkupContainerClassName(true);
 

Reply via email to