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/20 04:47:42 UTC
[isis] branch master updated: ISIS-3054: don't let CheckBoxX re-express font-awesome css dependencies
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 793a60dd7f ISIS-3054: don't let CheckBoxX re-express font-awesome css dependencies
793a60dd7f is described below
commit 793a60dd7f8a5e0302450d387759da8d3a5e2b20
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri May 20 06:47:34 2022 +0200
ISIS-3054: don't let CheckBoxX re-express font-awesome css dependencies
---
.../select2/Select2BootstrapCssReference.java | 30 +++++++++++++++++-----
.../BootstrapOverridesCssResourceReference.java | 15 ++++++++++-
.../isis/viewer/wicket/ui/pages/PageAbstract.java | 6 ++---
.../ui/pages/SidebarCssResourceReference.java | 17 +++++++++++-
.../wicket/ui/util/FontAwesomeCssReferenceWkt.java | 22 ++++++++--------
.../org/apache/isis/viewer/wicket/ui/util/Wkt.java | 21 ++++++++++-----
.../wicket/viewer/wicketapp/config/Select2Wkt.java | 2 +-
7 files changed, 82 insertions(+), 31 deletions(-)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
index 55feb3b615..1291516ed2 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/select2/Select2BootstrapCssReference.java
@@ -21,10 +21,13 @@ package org.apache.isis.viewer.wicket.ui.components.widgets.select2;
import java.util.List;
import org.apache.wicket.markup.head.CssHeaderItem;
-import org.apache.wicket.markup.head.CssReferenceHeaderItem;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.request.resource.CssResourceReference;
-import org.apache.isis.commons.internal.collections._Lists;
+
+import org.apache.isis.viewer.wicket.ui.pages.SidebarCssResourceReference;
+
+import lombok.Getter;
+import lombok.experimental.Accessors;
/**
* A CSS reference that loads <a href="https://github.com/ivaynberg/select2/">Select2.css</a>
@@ -34,14 +37,29 @@ import org.apache.isis.commons.internal.collections._Lists;
public class Select2BootstrapCssReference extends CssResourceReference {
private static final long serialVersionUID = 1L;
- public Select2BootstrapCssReference() {
+ @Getter(lazy = true) @Accessors(fluent = true)
+ private static final Select2BootstrapCssReference instance =
+ new Select2BootstrapCssReference();
+
+ public static CssHeaderItem asHeaderItem() {
+ return CssHeaderItem.forReference(SidebarCssResourceReference.instance());
+ }
+
+ /**
+ * Private constructor.
+ */
+ private Select2BootstrapCssReference() {
super(Select2BootstrapCssReference.class, "select2-bootstrap.css");
}
@Override
public List<HeaderItem> getDependencies() {
- // CssReferenceHeaderItem select2CssReference = CssHeaderItem.forReference(new CssResourceReference(ApplicationSettings.class, "res/css/select2.css"));
- CssReferenceHeaderItem select2CssReference = CssHeaderItem.forReference(new CssResourceReference(Select2BootstrapCssReference.class, "res/css/select2.css"));
- return _Lists.<HeaderItem>of(select2CssReference);
+ return dependencies();
}
+
+ @Getter(lazy = true) @Accessors(fluent = true)
+ private static final List<HeaderItem> dependencies =
+ List.<HeaderItem>of(CssHeaderItem.forReference(
+ new CssResourceReference(Select2BootstrapCssReference.class, "res/css/select2.css")));
+
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/BootstrapOverridesCssResourceReference.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/BootstrapOverridesCssResourceReference.java
index de53f010f2..682365fa2f 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/BootstrapOverridesCssResourceReference.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/BootstrapOverridesCssResourceReference.java
@@ -18,8 +18,12 @@
*/
package org.apache.isis.viewer.wicket.ui.pages;
+import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.request.resource.CssResourceReference;
+import lombok.Getter;
+import lombok.experimental.Accessors;
+
/**
* A CSS resource reference that provides CSS rules which override the CSS rules
* provided by the currently active Bootstrap theme.
@@ -29,7 +33,16 @@ public class BootstrapOverridesCssResourceReference extends CssResourceReference
private static final long serialVersionUID = 1L;
- public BootstrapOverridesCssResourceReference() {
+ @Getter(lazy = true) @Accessors(fluent = true)
+ private static final BootstrapOverridesCssResourceReference instance =
+ new BootstrapOverridesCssResourceReference();
+
+ public static CssHeaderItem asHeaderItem() {
+ return CssHeaderItem.forReference(BootstrapOverridesCssResourceReference.instance());
+ }
+
+ private BootstrapOverridesCssResourceReference() {
super(BootstrapOverridesCssResourceReference.class, "bootstrap-overrides-all-v2.css");
}
+
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index 3db0cf0ccb..f4c91a6fa1 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -255,9 +255,9 @@ implements ActionPromptProvider {
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(getApplication().getJavaScriptLibrarySettings().getJQueryReference())));
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(BootstrapJavaScriptReference.instance())));
- response.render(CssHeaderItem.forReference(FontAwesomeCssReferenceWkt.instance()));
- response.render(CssHeaderItem.forReference(new BootstrapOverridesCssResourceReference()));
- response.render(CssHeaderItem.forReference(new SidebarCssResourceReference()));
+ response.render(FontAwesomeCssReferenceWkt.asHeaderItem());
+ response.render(BootstrapOverridesCssResourceReference.asHeaderItem());
+ response.render(SidebarCssResourceReference.asHeaderItem());
contributeThemeSpecificOverrides(response);
response.render(JavaScriptReferenceHeaderItem.forReference(JQUERY_LIVEQUERY_JS));
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/SidebarCssResourceReference.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/SidebarCssResourceReference.java
index e1c6ac752d..9d3a998d4d 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/SidebarCssResourceReference.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/SidebarCssResourceReference.java
@@ -18,8 +18,12 @@
*/
package org.apache.isis.viewer.wicket.ui.pages;
+import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.request.resource.CssResourceReference;
+import lombok.Getter;
+import lombok.experimental.Accessors;
+
/**
* A CSS resource reference that provides CSS rules which override the CSS rules
* provided by the currently active Bootstrap theme.
@@ -28,7 +32,18 @@ import org.apache.wicket.request.resource.CssResourceReference;
public class SidebarCssResourceReference extends CssResourceReference {
private static final long serialVersionUID = 1L;
- public SidebarCssResourceReference() {
+ @Getter(lazy = true) @Accessors(fluent = true)
+ private static final SidebarCssResourceReference instance =
+ new SidebarCssResourceReference();
+
+ public static CssHeaderItem asHeaderItem() {
+ return CssHeaderItem.forReference(SidebarCssResourceReference.instance());
+ }
+
+ /**
+ * Private constructor.
+ */
+ private SidebarCssResourceReference() {
super(SidebarCssResourceReference.class, "simple-sidebar.css");
}
}
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/FontAwesomeCssReferenceWkt.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/FontAwesomeCssReferenceWkt.java
index 2671622267..c2310d98c1 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/FontAwesomeCssReferenceWkt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/FontAwesomeCssReferenceWkt.java
@@ -18,26 +18,24 @@
*/
package org.apache.isis.viewer.wicket.ui.util;
+import org.apache.wicket.markup.head.CssHeaderItem;
+
import org.apache.isis.viewer.common.model.decorators.IconDecorator;
+import lombok.Getter;
+import lombok.experimental.Accessors;
+
import de.agilecoders.wicket.webjars.request.resource.WebjarsCssResourceReference;
public class FontAwesomeCssReferenceWkt extends WebjarsCssResourceReference {
private static final long serialVersionUID = 1L;
- /**
- * Singleton instance of this reference
- */
- private static final class Holder {
-
- private static final FontAwesomeCssReferenceWkt INSTANCE = new FontAwesomeCssReferenceWkt();
- }
+ @Getter(lazy = true) @Accessors(fluent = true)
+ private static final FontAwesomeCssReferenceWkt instance =
+ new FontAwesomeCssReferenceWkt();
- /**
- * @return the single instance of the resource reference
- */
- public static FontAwesomeCssReferenceWkt instance() {
- return Holder.INSTANCE;
+ public static CssHeaderItem asHeaderItem() {
+ return CssHeaderItem.forReference(FontAwesomeCssReferenceWkt.instance());
}
/**
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java
index d0ae70c970..a81529da5b 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/util/Wkt.java
@@ -38,8 +38,10 @@ import org.apache.wicket.event.IEvent;
import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupStream;
+import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptContentHeaderItem;
+import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
@@ -62,8 +64,10 @@ import org.apache.wicket.markup.repeater.OddEvenItem;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.resource.CssResourceReference;
import org.apache.wicket.request.resource.IResource;
import org.apache.wicket.request.resource.ResourceReference;
+import org.apache.wicket.resource.JQueryPluginResourceReference;
import org.apache.wicket.util.convert.IConverter;
import org.apache.wicket.validation.IValidationError;
import org.apache.wicket.validation.ValidationError;
@@ -101,6 +105,8 @@ import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.checkboxx.Che
import de.agilecoders.wicket.extensions.markup.html.bootstrap.form.fileinput.BootstrapFileInputField;
import de.agilecoders.wicket.jquery.Key;
+import static de.agilecoders.wicket.jquery.JQuery.$;
+
/**
* Wicket common idioms, in alphabetical order.
*/
@@ -396,14 +402,16 @@ public class Wkt {
.withThreeState(!required);
final CheckBoxX checkBox = new CheckBoxX(id, checkedModel) {
-
private static final long serialVersionUID = 1L;
-
- @Override
- public CheckBoxXConfig getConfig() {
+ @Override public CheckBoxXConfig getConfig() {
return config;
}
-
+ //override to don't express FontAwesome twice, we already do that for all pages
+ @Override public void renderHead(final IHeaderResponse response) {
+ response.render(CssHeaderItem.forReference(new CssResourceReference(CheckBoxX.class, "css/checkbox-x.css")));
+ response.render(JavaScriptHeaderItem.forReference(new JQueryPluginResourceReference(CheckBoxX.class, "js/checkbox-x.js")));
+ response.render(OnDomReadyHeaderItem.forScript($(this).chain("checkboxX", getConfig()).get()));
+ }
@Override protected void onComponentTag(final ComponentTag tag) {
super.onComponentTag(tag);
//
@@ -423,8 +431,7 @@ public class Wkt {
tag.put("type", "xx");
}
};
- checkBox.setOutputMarkupId(true); // allows AJAX updates to work
- return checkBox;
+ return ajaxEnable(checkBox);
}
public static AjaxCheckBox checkbox(
diff --git a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/Select2Wkt.java b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/Select2Wkt.java
index d82cf93f99..69dd6a5b25 100644
--- a/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/Select2Wkt.java
+++ b/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/wicketapp/config/Select2Wkt.java
@@ -33,7 +33,7 @@ public class Select2Wkt implements WicketApplicationInitializer {
@Override
public void init(final WebApplication webApplication) {
val select2Settings = org.wicketstuff.select2.ApplicationSettings.get();
- select2Settings.setCssReference(new Select2BootstrapCssReference());
+ select2Settings.setCssReference(Select2BootstrapCssReference.instance());
select2Settings.setJavascriptReferenceFull(new Select2JsReference());
select2Settings.setIncludeJavascriptFull(true);
}