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 19:06:01 UTC
[isis] branch master updated: ISIS-3172: WicketViewer Xray support for ScalarPanelFormFieldAbstract
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 6afa5beb95 ISIS-3172: WicketViewer Xray support for ScalarPanelFormFieldAbstract
6afa5beb95 is described below
commit 6afa5beb9553d41fd5b4838a5361b20dea301f03
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Aug 24 21:05:53 2022 +0200
ISIS-3172: WicketViewer Xray support for ScalarPanelFormFieldAbstract
---
.../webapp/wicket/jdo/DemoAppWicketJdo.java | 2 +-
.../webapp/wicket/jpa/DemoAppWicketJpa.java | 2 +-
.../scalars/ScalarPanelFormFieldAbstract.html | 7 --
.../scalars/ScalarPanelFormFieldAbstract.java | 17 ++++-
...html => ScalarPanelFormFieldAbstract_xray.html} | 2 +
.../scalars/reference/ReferencePanel.java | 1 -
.../isis/viewer/wicket/ui/util/WktXray.java} | 34 +++------
.../viewer/wicketapp/config/DebugInitWkt.java | 3 +-
.../wicketapp/config/WicketViewerXrayEnable.java | 83 ++++++++++++++++++++++
9 files changed, 112 insertions(+), 39 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 109483fb67..96a1be9576 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
@@ -67,7 +67,7 @@ import demoapp.webapp.wicket.common.ui.DemoAppWicketCommon;
IsisModuleValMarkdownPersistenceJdoDn.class,
//XrayEnable.class // for debugging only
- //WicketViewerXray.Enable.class // for debugging only
+ //WicketViewerXrayEnable.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 3001caae6a..a90e96ae04 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,7 +68,7 @@ import demoapp.webapp.wicket.common.ui.DemoAppWicketCommon;
IsisModuleValMarkdownPersistenceJpa.class,
//XrayEnable.class // for debugging only
- //WicketViewerXray.Enable.class // for debugging only
+ //WicketViewerXrayEnable.class // for debugging only
})
//@Log4j2
public class DemoAppWicketJpa extends SpringBootServletInitializer {
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 62a6545143..b4ce467fb9 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,47 +115,40 @@
<!-- 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/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 4b8cb94cc3..928632ad47 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
@@ -36,6 +36,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 lombok.val;
@@ -135,8 +136,11 @@ extends ScalarPanelAbstract2 {
val renderScenario = getRenderScenario();
- //XXX debug
- Wkt.labelAdd(fieldFrame, "debugLabel", String.format("%s", renderScenario.name()));
+ //XXX debug (wicket viewer x-ray)
+ WktXray.ifEnabledDo(()->{
+ val debugInfo = String.format("%s", renderScenario.name());
+ Wkt.labelAdd(fieldFrame, "xrayLabel", debugInfo);
+ });
if(renderScenario.isReadonly()) {
fieldFrame.add(FieldFrame.SCALAR_VALUE_CONTAINER
@@ -217,6 +221,15 @@ extends ScalarPanelAbstract2 {
target.ifPresent(this::formComponentAddTo);
}
+ // -- XRAY
+
+ @Override
+ public String getVariation() {
+ return WktXray.isEnabled()
+ ? "xray"
+ : super.getVariation();
+ }
+
// -- HELPER
private void formComponentEnable(final boolean b) {
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_xray.html
similarity index 98%
copy from viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract.html
copy to viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/ScalarPanelFormFieldAbstract_xray.html
index 62a6545143..be78b667f0 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_xray.html
@@ -97,6 +97,8 @@
<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>
<wicket:container
wicket:id="container-scalarValue"/>
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
index 87c0cae502..c12e8116b8 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/reference/ReferencePanel.java
@@ -115,7 +115,6 @@ public class ReferencePanel extends ScalarPanelSelectAbstract {
return this.entityLink;
}
-
private void addSelect2Semantics(final Select2 select2) {
val scalarModel = scalarModel();
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXray.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/WktXray.java
similarity index 51%
rename from viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXray.java
rename to viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/WktXray.java
index 4d2c6242f9..2a9d88847c 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXray.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/WktXray.java
@@ -16,39 +16,23 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.isis.viewer.wicket.viewer.wicketapp.config;
-
-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.viewer.IsisModuleViewerWicketViewer;
+package org.apache.isis.viewer.wicket.ui.util;
import lombok.Getter;
+import lombok.NonNull;
+import lombok.Setter;
import lombok.experimental.UtilityClass;
@UtilityClass
-public class WicketViewerXray {
+public class WktXray {
- /**
- * 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 WicketApplicationInitializer {
+ @Getter @Setter
+ private boolean enabled = false;
- @Override
- public void init(final WebApplication webApplication) {
- WicketViewerXray.enabled = true;
- webApplication.getDebugSettings()
- .setOutputMarkupContainerClassName(true);
+ public void ifEnabledDo(final @NonNull Runnable runnable) {
+ if(isEnabled()) {
+ runnable.run();
}
}
- @Getter
- private boolean enabled = false;
-
}
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 7405f94aa1..49f7bddb67 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,8 +38,7 @@ public class DebugInitWkt implements WicketApplicationInitializer {
public void init(final WebApplication webApplication) {
webApplication.getDebugSettings()
- .setAjaxDebugModeEnabled(configuration.getViewer().getWicket().isAjaxDebugMode())
- .setOutputMarkupContainerClassName(WicketViewerXray.isEnabled());
+ .setAjaxDebugModeEnabled(configuration.getViewer().getWicket().isAjaxDebugMode());
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/WicketViewerXrayEnable.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXrayEnable.java
new file mode 100644
index 0000000000..36fc14247e
--- /dev/null
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/WicketViewerXrayEnable.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.viewer.wicket.viewer.wicketapp.config;
+
+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.viewer.IsisModuleViewerWicketViewer;
+
+/**
+ * Activates visual debugging mode for the Wicket Viewer.
+ * Use for troubleshooting and bug hunting.
+ * <p>
+ * Not imported by {@link IsisModuleViewerWicketViewer}.
+ */
+@Configuration
+public class WicketViewerXrayEnable
+implements WicketApplicationInitializer {
+
+ @Override
+ public void init(final WebApplication webApplication) {
+ WktXray.setEnabled(true);
+ webApplication.getDebugSettings()
+ .setOutputMarkupContainerClassName(true);
+
+ //debug
+ //replace the resource locator
+// val defaultResourceStreamLocator = webApplication.getResourceSettings()
+// .getResourceStreamLocator();
+// webApplication.getResourceSettings()
+// .setResourceStreamLocator(new XrayResourceStreamLocator(defaultResourceStreamLocator));
+ }
+
+//debug
+// @RequiredArgsConstructor
+// private static class XrayResourceStreamLocator
+// implements IResourceStreamLocator {
+// private final IResourceStreamLocator delegate;
+//
+// @Override
+// public IResourceStream locate(final Class<?> clazz, final String path) {
+// return delegate.locate(clazz, path);
+// }
+//
+// @Override
+// public IResourceStream locate(final Class<?> clazz, final String path,
+// final String style, final String variation, final Locale locale,
+// final String extension, final boolean strict) {
+// if(variation!=null) {
+// val result = delegate.locate(clazz, path, style, variation, locale, extension, strict);
+// System.err.printf("variation %s:%s->%b%n", clazz.getName(), variation, result!=null);
+// }
+//
+// return delegate.locate(clazz, path, style, variation, locale, extension, strict);
+// }
+//
+// @Override
+// public IResourceNameIterator newResourceNameIterator(final String path,
+// final Locale locale, final String style, final String variation,
+// final String extension, final boolean strict) {
+// return delegate.newResourceNameIterator(path, locale, style, variation, extension, strict);
+// }
+// }
+
+}