You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2020/01/21 16:09:30 UTC
[isis] 05/11: ISIS-2264: converts some config props to Optional
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 73c2704728cfc061969c3a09acad17eb5a75a2d4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Jan 21 13:11:45 2020 +0000
ISIS-2264: converts some config props to Optional<T>
---
.../apache/isis/core/config/IsisConfiguration.java | 20 +++++++++-----
.../config/viewer/wicket/WebAppContextPath.java | 5 ++++
.../ui/components/widgets/favicon/Favicon.java | 31 +++++++++++++---------
3 files changed, 38 insertions(+), 18 deletions(-)
diff --git a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
index e4ead26..fac0ca3 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/IsisConfiguration.java
@@ -2329,12 +2329,20 @@ public class IsisConfiguration {
*/
@javax.validation.constraints.Pattern(regexp="^[^/].*$")
private String css;
-
- // since 2.0
- private String faviconContentType;
-
- // since 2.0
- private String faviconUrl;
+
+ /**
+ * Specifies the content type of the favIcon, if any.
+ */
+ private Optional<String> faviconContentType = Optional.empty();
+
+ /**
+ * Specifies the URL to use of the favIcon.
+ *
+ * <p>
+ * This is expected to be a local resource.
+ * </p>
+ */
+ private Optional<String> faviconUrl = Optional.empty();
/**
*/
diff --git a/core/config/src/main/java/org/apache/isis/core/config/viewer/wicket/WebAppContextPath.java b/core/config/src/main/java/org/apache/isis/core/config/viewer/wicket/WebAppContextPath.java
index 24ffbbc..9383c52 100644
--- a/core/config/src/main/java/org/apache/isis/core/config/viewer/wicket/WebAppContextPath.java
+++ b/core/config/src/main/java/org/apache/isis/core/config/viewer/wicket/WebAppContextPath.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.config.viewer.wicket;
import java.io.Serializable;
+import java.util.Optional;
import java.util.regex.Pattern;
import javax.annotation.Nullable;
@@ -100,6 +101,10 @@ public class WebAppContextPath implements Serializable {
return urlOrLocalPath;
}
+ public Optional<String> prependContextPathIfLocal(final Optional<String> urlOrLocalPath) {
+ return urlOrLocalPath.map(this::prependContextPathIfLocal);
+ }
+
// -- HELPER
private final Pattern pattern = Pattern.compile("^[/]*(.+?)[/]*$");
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/favicon/Favicon.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/favicon/Favicon.java
index f4885cc..998f9e4 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/favicon/Favicon.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/favicon/Favicon.java
@@ -18,6 +18,8 @@
*/
package org.apache.isis.viewer.wicket.ui.components.widgets.favicon;
+import java.util.Optional;
+
import javax.inject.Inject;
import org.apache.wicket.markup.ComponentTag;
@@ -37,31 +39,36 @@ public class Favicon extends WebComponent {
@Inject private transient IsisConfiguration isisConfiguration;
@Inject private transient WebAppContextPath webAppContextPath;
- private String url;
- private String contentType;
+ private Optional<String> url = Optional.empty();
+ private Optional<String> contentType = Optional.empty();
public Favicon(String id) {
super(id);
- if(webAppContextPath!=null) {
- url = webAppContextPath.prependContextPathIfLocal(isisConfiguration.getViewer().getWicket().getApplication().getFaviconUrl());
- contentType = isisConfiguration.getViewer().getWicket().getApplication().getFaviconContentType();
- }
+
}
@Override
protected void onConfigure() {
super.onConfigure();
- setVisible(!Strings.isEmpty(url));
+
+ if(webAppContextPath != null && isisConfiguration != null) {
+
+ url = isisConfiguration.getViewer().getWicket().getApplication().getFaviconUrl()
+ .filter(x -> !Strings.isEmpty(x))
+ .map(webAppContextPath::prependContextPathIfLocal);
+
+ contentType = isisConfiguration.getViewer().getWicket().getApplication().getFaviconContentType()
+ .filter(x -> !Strings.isEmpty(x));
+ }
+
+ setVisible(url.isPresent());
}
@Override
protected void onComponentTag(ComponentTag tag) {
super.onComponentTag(tag);
- tag.put("href", url);
-
- if (!Strings.isEmpty(contentType)) {
- tag.put("type", contentType);
- }
+ url.ifPresent(url -> tag.put("href", url));
+ contentType.ifPresent(contentType -> tag.put("type", contentType));
}
}