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/08/24 17:37:04 UTC

[isis] branch master updated: ISIS-3172: Demo/Wicket: prepares some visual UI debugging infrastructure

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 f2e91bc1d5 ISIS-3172: Demo/Wicket: prepares some visual UI debugging infrastructure
f2e91bc1d5 is described below

commit f2e91bc1d56dfcb40185a4f62e263308b3a0e7d3
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Aug 24 19:36:57 2022 +0200

    ISIS-3172: Demo/Wicket: prepares some visual UI debugging infrastructure
---
 .../webapp/wicket/jdo/DemoAppWicketJdo.java        |  3 +-
 .../webapp/wicket/jpa/DemoAppWicketJpa.java        |  1 +
 .../ApplicationUserManager_newDelegateUser.java    |  2 +-
 .../ApplicationUserManager_newLocalUser.java       |  2 +-
 .../scalars/ScalarPanelFormFieldAbstract.html      |  7 ++++
 .../viewer/wicketapp/config/DebugInitWkt.java      |  3 +-
 .../{DebugInitWkt.java => WicketViewerXray.java}   | 44 +++++++++++++---------
 7 files changed, 40 insertions(+), 22 deletions(-)

diff --git a/examples/demo/wicket/jdo/src/main/java/demoapp/webapp/wicket/jdo/DemoAppWicketJdo.java b/examples/demo/wicket/jdo/src/main/java/demoapp/webapp/wicket/jdo/DemoAppWicketJdo.java
index bfba83d2e7..109483fb67 100644
--- a/examples/demo/wicket/jdo/src/main/java/demoapp/webapp/wicket/jdo/DemoAppWicketJdo.java
+++ b/examples/demo/wicket/jdo/src/main/java/demoapp/webapp/wicket/jdo/DemoAppWicketJdo.java
@@ -66,7 +66,8 @@ import demoapp.webapp.wicket.common.ui.DemoAppWicketCommon;
     IsisModuleValAsciidocPersistenceJdoDn.class,
     IsisModuleValMarkdownPersistenceJdoDn.class,
 
-    // XrayEnable.class // for debugging only
+    //XrayEnable.class // for debugging only
+    //WicketViewerXray.Enable.class // for debugging only
 })
 //@Log4j2
 public class DemoAppWicketJdo extends SpringBootServletInitializer {
diff --git a/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java b/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java
index ead1d98db7..3001caae6a 100644
--- a/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java
+++ b/examples/demo/wicket/jpa/src/main/java/demoapp/webapp/wicket/jpa/DemoAppWicketJpa.java
@@ -68,6 +68,7 @@ import demoapp.webapp.wicket.common.ui.DemoAppWicketCommon;
     IsisModuleValMarkdownPersistenceJpa.class,
 
     //XrayEnable.class // for debugging only
+    //WicketViewerXray.Enable.class // for debugging only
 })
 //@Log4j2
 public class DemoAppWicketJpa extends SpringBootServletInitializer {
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.java
index 447519888b..16958e3ffb 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newDelegateUser.java
@@ -86,7 +86,7 @@ public class ApplicationUserManager_newDelegateUser {
         return target;
     }
 
-    @MemberSupport public ApplicationRole default1Act() {
+    @MemberSupport public ApplicationRole defaultInitialRole() {
         val regularUserRoleName = config.getExtensions().getSecman().getSeed().getRegularUser().getRoleName();
         return applicationRoleRepository
                 .findByNameCached(regularUserRoleName)
diff --git a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.java b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.java
index 5e9a105371..32f3822136 100644
--- a/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.java
+++ b/extensions/security/secman/applib/src/main/java/org/apache/isis/extensions/secman/applib/user/man/mixins/ApplicationUserManager_newLocalUser.java
@@ -123,7 +123,7 @@ extends ApplicationUserManager_newLocalUserAbstract {
         return null;
     }
 
-    @MemberSupport public ApplicationRole default3Act() {
+    @MemberSupport public ApplicationRole defaultInitialRole() {
         val regularUserRoleName = config.getExtensions().getSecman().getSeed().getRegularUser().getRoleName();
         return applicationRoleRepository
                 .findByNameCached(regularUserRoleName)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
index b4ce467fb9..62a6545143 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
@@ -115,40 +115,47 @@
 		<!-- INPUT FRAGMENTS -->
 
 		<wicket:fragment wicket:id="fragment-input-text">
+			<!-- fragment-input-text -->
 			<input wicket:id="scalarValue"
 				type="text" name="scalarValue"
 				class="form-control form-control-sm scalarValue"/>
 		</wicket:fragment>
 
 		<wicket:fragment wicket:id="fragment-input-textarea">
+			<!-- fragment-input-textarea -->
 			<textarea wicket:id="scalarValue" name="scalarValue"
 				class="form-control form-control-sm scalarValue"
 				data-isis-focus="true" />
 		</wicket:fragment>
 		
 		<wicket:fragment wicket:id="fragment-input-checkbox">
+			<!-- fragment-input-checkbox -->
 	        <input wicket:id="scalarValue" type="checkbox" name="scalarValue"
 	        	class="scalarValue"/>
 		</wicket:fragment>
 		
 		<wicket:fragment wicket:id="fragment-input-file">
+			<!-- fragment-input-file -->
 			<span class="uploadFile form-text">
       			<input wicket:id="scalarValue" type="file" name="scalarValue"/>
          	</span>
 		</wicket:fragment>
 		
 		<wicket:fragment wicket:id="fragment-input-date">
+			<!-- fragment-input-date -->
 			<input wicket:id="scalarValue"
 				type="text" name="scalarValue"
 				class="form-control form-control-sm scalarValue"/>
 		</wicket:fragment>
 		
 		<wicket:fragment wicket:id="fragment-input-select">
+			<!-- fragment-input-select -->
 			<select wicket:id="scalarValue"
 				class="choices form-control-sm select2-remote"/>
 		</wicket:fragment>
 		
 		<wicket:fragment wicket:id="fragment-input-select2">
+			<!-- fragment-input-select2 -->
 			<span wicket:id="entityLink" class="w-100">link or drop down</span>
 			<span wicket:id="entityTitleIfNull">(none)</span>
 		</wicket:fragment>
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/DebugInitWkt.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/DebugInitWkt.java
index 49f7bddb67..7405f94aa1 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/DebugInitWkt.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/DebugInitWkt.java
@@ -38,7 +38,8 @@ public class DebugInitWkt implements WicketApplicationInitializer {
     public void init(final WebApplication webApplication) {
 
         webApplication.getDebugSettings()
-            .setAjaxDebugModeEnabled(configuration.getViewer().getWicket().isAjaxDebugMode());
+            .setAjaxDebugModeEnabled(configuration.getViewer().getWicket().isAjaxDebugMode())
+            .setOutputMarkupContainerClassName(WicketViewerXray.isEnabled());
 
         if(systemEnvironment.isPrototyping()
                 && configuration.getViewer().getWicket().getDevelopmentUtilities().isEnable()) {
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/DebugInitWkt.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXray.java
similarity index 50%
copy from viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/DebugInitWkt.java
copy to viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXray.java
index 49f7bddb67..9d7c8c6ad8 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/DebugInitWkt.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXray.java
@@ -18,32 +18,40 @@
  */
 package org.apache.isis.viewer.wicket.viewer.wicketapp.config;
 
-import javax.inject.Inject;
-
-import org.apache.wicket.devutils.debugbar.DebugBarInitializer;
-import org.apache.wicket.protocol.http.WebApplication;
+import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.annotation.Configuration;
 
-import org.apache.isis.core.config.IsisConfiguration;
-import org.apache.isis.core.config.environment.IsisSystemEnvironment;
-import org.apache.isis.viewer.wicket.model.isis.WicketApplicationInitializer;
+import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
 
-@Configuration
-public class DebugInitWkt implements WicketApplicationInitializer {
+import lombok.experimental.UtilityClass;
 
-    @Inject private IsisSystemEnvironment systemEnvironment;
-    @Inject private IsisConfiguration configuration;
+@UtilityClass
+public class WicketViewerXray {
 
-    @Override
-    public void init(final WebApplication webApplication) {
+    private final String KEY = IsisModuleViewerWicketViewer.NAMESPACE + ".xray";
 
-        webApplication.getDebugSettings()
-            .setAjaxDebugModeEnabled(configuration.getViewer().getWicket().isAjaxDebugMode());
+    /**
+     * Activates visual debugging mode for the Wicket Viewer.
+     * Use for troubleshooting and bug hunting.
+     * <p>
+     * Not imported by {@link IsisModuleViewerWicketViewer}.
+     */
+    @Configuration
+    public static class Enable implements InitializingBean {
 
-        if(systemEnvironment.isPrototyping()
-                && configuration.getViewer().getWicket().getDevelopmentUtilities().isEnable()) {
-            new DebugBarInitializer().init(webApplication);
+        @Override
+        public void afterPropertiesSet() throws Exception {
+            System.setProperty(KEY, "true");
         }
+
+    }
+
+    public boolean isEnabled() {
+        return "true".equalsIgnoreCase(System.getProperty(KEY));
+    }
+
+    public void setEnabled(final boolean enabled) {
+        System.setProperty(KEY, "" + enabled);
     }
 
 }