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 88cca2f886 ISIS-3071: some refactoring yielding HeaderItem utils
88cca2f886 is described below
commit 88cca2f88688a40d0f5f2db4a34f867b903e3b1a
Author: Andi Huber <[email protected]>
AuthorDate: Sat Nov 12 07:27:42 2022 +0100
ISIS-3071: some refactoring yielding HeaderItem utils
---
.../fileinput/FileUploadFieldWithNestingFix.java | 14 ++++---
.../CausewayWicketViewerJsResourceReference.java | 28 +++++++-------
...yHeaderContributor.java => WktHeaderItems.java} | 45 ++++++++++++++--------
3 files changed, 52 insertions(+), 35 deletions(-)
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/fileinput/FileUploadFieldWithNestingFix.java
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/fileinput/FileUploadFieldWithNestingFix.java
index 442495f4b3..7d8e4ce77c 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/fileinput/FileUploadFieldWithNestingFix.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/widgets/fileinput/FileUploadFieldWithNestingFix.java
@@ -20,23 +20,27 @@ package
org.apache.causeway.viewer.wicket.ui.components.widgets.fileinput;
import java.util.List;
+import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.html.form.upload.FileUpload;
import org.apache.wicket.model.IModel;
-import org.apache.causeway.viewer.wicket.ui.util.OnDomReadyHeaderContributor;
+import org.apache.causeway.viewer.wicket.ui.util.WktHeaderItems;
import
de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.BootstrapFileInputField;
import
de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.FileInputConfig;
+import lombok.Getter;
import lombok.SneakyThrows;
+import lombok.experimental.Accessors;
public class FileUploadFieldWithNestingFix extends BootstrapFileInputField {
private static final long serialVersionUID = 1L;
- private static final OnDomReadyHeaderContributor
FILE_UPLOAD_NESTING_FIX_JS =
- OnDomReadyHeaderContributor.forScriptReference(
- FileUploadFieldWithNestingFix.class,
"causeway-file-upload-nesting-fix.nocompress.js");
+ @Getter(lazy = true) @Accessors(fluent = true)
+ private static final HeaderItem headerItem =
+ WktHeaderItems.forScriptReferenceAsOnDomReady(
+ FileUploadFieldWithNestingFix.class,
"causeway-file-upload-nesting-fix.nocompress.js");
public FileUploadFieldWithNestingFix(final String id,
final IModel<List<FileUpload>> model, final FileInputConfig
config) {
@@ -46,7 +50,7 @@ public class FileUploadFieldWithNestingFix extends
BootstrapFileInputField {
@Override @SneakyThrows
public void renderHead(final IHeaderResponse response) {
super.renderHead(response);
- FILE_UPLOAD_NESTING_FIX_JS.renderHead(response);
+ response.render(headerItem());
}
@Override
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/viewer/js/CausewayWicketViewerJsResourceReference.java
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/viewer/js/CausewayWicketViewerJsResourceReference.java
index 9da4c7d4f5..c2d0039c82 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/viewer/js/CausewayWicketViewerJsResourceReference.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/pages/common/viewer/js/CausewayWicketViewerJsResourceReference.java
@@ -18,31 +18,31 @@
*/
package org.apache.causeway.viewer.wicket.ui.pages.common.viewer.js;
-import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem;
-import org.apache.wicket.request.resource.JavaScriptResourceReference;
+import org.apache.wicket.markup.head.HeaderItem;
+
+import org.apache.causeway.viewer.wicket.ui.util.WktHeaderItems;
import lombok.Getter;
+import lombok.RequiredArgsConstructor;
import lombok.experimental.Accessors;
/**
* Javascript (client-side) extensions and fixes.
*/
-public class CausewayWicketViewerJsResourceReference
-extends JavaScriptResourceReference {
- private static final long serialVersionUID = 1L;
+@RequiredArgsConstructor
+public class CausewayWicketViewerJsResourceReference {
@Getter(lazy = true) @Accessors(fluent = true)
private static final CausewayWicketViewerJsResourceReference instance =
- new CausewayWicketViewerJsResourceReference();
+ new CausewayWicketViewerJsResourceReference(
+ WktHeaderItems.forScriptReference(
+ CausewayWicketViewerJsResourceReference.class,
+ "causeway-jquery-wicket-viewer.nocompress.js"));
- public static JavaScriptReferenceHeaderItem asHeaderItem() {
- return
JavaScriptReferenceHeaderItem.forReference(CausewayWicketViewerJsResourceReference.instance());
- }
+ private final HeaderItem headerItem;
- /**
- * Private constructor.
- */
- private CausewayWicketViewerJsResourceReference() {
- super(CausewayWicketViewerJsResourceReference.class,
"causeway-jquery-wicket-viewer.nocompress.js");
+ public static HeaderItem asHeaderItem() {
+ return instance().headerItem;
}
+
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/OnDomReadyHeaderContributor.java
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/WktHeaderItems.java
similarity index 66%
rename from
viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/OnDomReadyHeaderContributor.java
rename to
viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/WktHeaderItems.java
index f8e9d367d1..f7e18c47da 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/OnDomReadyHeaderContributor.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/WktHeaderItems.java
@@ -21,20 +21,24 @@ package org.apache.causeway.viewer.wicket.ui.util;
import java.nio.charset.StandardCharsets;
import java.util.stream.Collectors;
+import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.JavaScriptReferenceHeaderItem;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.IHeaderContributor;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.causeway.commons.internal.base._Strings;
import org.apache.causeway.commons.internal.base._Text;
+import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
+import lombok.experimental.UtilityClass;
-@RequiredArgsConstructor
-public class OnDomReadyHeaderContributor
-implements IHeaderContributor {
+@UtilityClass
+public class WktHeaderItems {
// -- FACTORIES
@@ -44,15 +48,34 @@ implements IHeaderContributor {
* @apiNote that could be done by the yui-compressor maven plugin as well,
* but at the time of writing did not look into it
*/
- public static OnDomReadyHeaderContributor forScriptReference(
+ public OnDomReadyHeaderItem forScriptReferenceAsOnDomReady(
final @NonNull Class<?> resourceLocation,
final @NonNull String resourceName) {
- return new
OnDomReadyHeaderContributor(readJsResource(resourceLocation, resourceName));
+ return OnDomReadyHeaderItem.forScript(readJsResource(resourceLocation,
resourceName));
}
+ public JavaScriptReferenceHeaderItem forScriptReference(
+ final @NonNull Class<?> resourceLocation,
+ final @NonNull String resourceName) {
+ return JavaScriptReferenceHeaderItem.forReference(
+ new JavaScriptResourceReference(resourceLocation,
resourceName));
+ }
+
+ @RequiredArgsConstructor
+ public class HeaderContributor
+ implements IHeaderContributor {
+ private static final long serialVersionUID = 1L;
+ @Getter private final HeaderItem headerItem;
+ @Override public void renderHead(final IHeaderResponse response) {
+ response.render(headerItem);
+ }
+ }
+
+ // -- HELPER
+
/** skips 18 license header lines and any single line comments as well as
empty lines */
@SneakyThrows
- private static String readJsResource(
+ private String readJsResource(
final @NonNull Class<?> resourceLocation,
final @NonNull String resourceName) {
return _Text.readLinesFromResource(
@@ -64,14 +87,4 @@ implements IHeaderContributor {
.collect(Collectors.joining("\n"));
}
- // -- HEADER CONTRIBUTOR
-
- private final String jsScriptSource;
-
- @Override
- public void renderHead(final IHeaderResponse response) {
- response.render(OnDomReadyHeaderItem.forScript(jsScriptSource));
- }
-
-
}