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 2021/03/26 09:46:34 UTC

[isis] 02/02: ISIS-2589: Remove usage of deprecated Wicket API

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

commit 0d6e7dd5163aa85ad6f8d382b53c4115509ceb1f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Mar 26 10:46:19 2021 +0100

    ISIS-2589: Remove usage of deprecated Wicket API
    
    also enables bootlint only when prototyping
---
 .../isis/viewer/wicket/ui/pages/PageAbstract.java  | 51 +++++++++-------------
 .../isis/viewer/wicket/ui/pages/WebPageBase.java   | 12 +++--
 .../accmngt/AccountManagementPageAbstract.java     | 11 ++---
 .../wicket/ui/pages/mmverror/MmvErrorPage.java     | 13 +++---
 4 files changed, 41 insertions(+), 46 deletions(-)

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 0b20ce7..155dddc 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
@@ -47,9 +47,6 @@ import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.panel.EmptyPanel;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.protocol.http.ClientProperties;
-import org.apache.wicket.protocol.http.WebSession;
-import org.apache.wicket.protocol.http.request.WebClientInfo;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.CssResourceReference;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
@@ -149,7 +146,7 @@ implements ActionPromptProvider {
 
             themeDiv = new WebMarkupContainer(ID_THEME);
             add(themeDiv);
-            String applicationName = getIsisConfiguration().getViewer().getWicket().getApplication().getName();
+            String applicationName = getConfiguration().getViewer().getWicket().getApplication().getName();
             if(applicationName != null) {
                 themeDiv.add(new CssClassAppender(CssClassAppender.asCssStyle(applicationName)));
             }
@@ -237,7 +234,7 @@ implements ActionPromptProvider {
     protected void setTitle(final String title) {
         addOrReplace(new Label(ID_PAGE_TITLE, title != null
                 ? title
-                : getIsisConfiguration().getViewer().getWicket().getApplication().getName()));
+                : getConfiguration().getViewer().getWicket().getApplication().getName()));
     }
 
     private Class<? extends Page> getSignInPage() {
@@ -263,19 +260,21 @@ implements ActionPromptProvider {
         final JGrowlBehaviour jGrowlBehaviour = new JGrowlBehaviour(getCommonContext());
         jGrowlBehaviour.renderFeedbackMessages(response);
 
-        getIsisConfiguration().getViewer().getWicket().getApplication().getCss()
-                .ifPresent(applicationCss -> {
-                    response.render(CssReferenceHeaderItem.forUrl(applicationCss));
-                });
-        getIsisConfiguration().getViewer().getWicket().getApplication().getJs()
-                .ifPresent(applicationJs -> {
-                    response.render(JavaScriptReferenceHeaderItem.forUrl(applicationJs));
-                } );
-
-        getCommonContext().getConfiguration().getViewer().getWicket().getLiveReloadUrl().ifPresent(liveReloadUrl -> {
+        getConfiguration().getViewer().getWicket().getApplication().getCss()
+        .ifPresent(applicationCss -> {
+            response.render(CssReferenceHeaderItem.forUrl(applicationCss));
+        });
+        
+        getConfiguration().getViewer().getWicket().getApplication().getJs()
+        .ifPresent(applicationJs -> {
+            response.render(JavaScriptReferenceHeaderItem.forUrl(applicationJs));
+        } );
+        
+        getConfiguration().getViewer().getWicket().getLiveReloadUrl().ifPresent(liveReloadUrl -> {
             response.render(JavaScriptReferenceHeaderItem.forUrl(liveReloadUrl));
         });
-        if(isModernBrowser()) {
+        
+        if(getSystemEnvironment().isPrototyping()) {
             addBootLint(response);
         }
 
@@ -303,24 +302,14 @@ implements ActionPromptProvider {
         return null;
     }
 
+    /**
+     * BootLint checks for malformed bootstrap CSS. It is probably only needed in PROTOTYPE mode.
+     */
     private void addBootLint(final IHeaderResponse response) {
         // rather than using the default BootlintHeaderItem.INSTANCE;
         // this allows us to assign 'form-control' class to an <a> (for x-editable styling)
-        response.render(new BootlintHeaderItem("bootlint.showLintReportForCurrentDocument(['E042'], {'problemFree': false});"));
-    }
-
-    private boolean isModernBrowser() {
-        return !isIePre9();
-    }
-
-    @SuppressWarnings("deprecation")
-    private boolean isIePre9() {
-        final WebClientInfo clientInfo = WebSession.get().getClientInfo();
-        final ClientProperties properties = clientInfo.getProperties();
-        if (properties.isBrowserInternetExplorer())
-            if (properties.getBrowserVersionMajor() < 9)
-                return true;
-        return false;
+        response.render(new BootlintHeaderItem(
+                "bootlint.showLintReportForCurrentDocument(['E042'], {'problemFree': false});"));
     }
 
     /**
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
index 3af58d9..680e1d1 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/WebPageBase.java
@@ -26,6 +26,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.config.IsisConfiguration;
+import org.apache.isis.core.config.environment.IsisSystemEnvironment;
 import org.apache.isis.core.config.viewer.wicket.WebAppContextPath;
 import org.apache.isis.core.interaction.session.InteractionFactory;
 import org.apache.isis.core.runtime.context.IsisAppCommonContext;
@@ -42,7 +43,6 @@ implements HasCommonContext {
 
     private static final long serialVersionUID = 1L;
     
-    private transient IsisConfiguration isisConfiguration;
     private transient WebAppContextPath webAppContextPath;
     private transient PageClassRegistry pageClassRegistry;
     private transient IsisAppCommonContext commonContext;
@@ -65,7 +65,7 @@ implements HasCommonContext {
     // -- FAVICON SUPPORT
     
     protected void renderFavicon(IHeaderResponse response) {
-        getIsisConfiguration().getViewer().getWicket().getApplication().getFaviconUrl()
+        getConfiguration().getViewer().getWicket().getApplication().getFaviconUrl()
         .filter(_Strings::isNotEmpty)
         .map(getWebAppContextPath()::prependContextPathIfLocal)
         .ifPresent(faviconUrl->{
@@ -80,8 +80,8 @@ implements HasCommonContext {
         return commonContext = CommonContextUtils.computeIfAbsent(commonContext);
     }
     
-    public IsisConfiguration getIsisConfiguration() {
-        return isisConfiguration = computeIfAbsent(IsisConfiguration.class, isisConfiguration);
+    public IsisConfiguration getConfiguration() {
+        return getCommonContext().getConfiguration();
     }
 
     public WebAppContextPath getWebAppContextPath() {
@@ -96,6 +96,10 @@ implements HasCommonContext {
         return isisInteractionFactory = computeIfAbsent(InteractionFactory.class, isisInteractionFactory);
     }
     
+    public IsisSystemEnvironment getSystemEnvironment() {
+        return getCommonContext().getSystemEnvironment();
+    }
+    
     // -- HELPER
     
     private <X> X computeIfAbsent(Class<X> type, X existingIfAny) {
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
index 129f222..30af849 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/accmngt/AccountManagementPageAbstract.java
@@ -100,7 +100,7 @@ public class AccountManagementPageAbstract extends WebPageBase {
 
 
     private MarkupContainer addPageTitle() {
-        String applicationName = getIsisConfiguration().getViewer().getWicket().getApplication().getName();
+        String applicationName = getConfiguration().getViewer().getWicket().getApplication().getName();
         return add(new Label(ID_PAGE_TITLE, applicationName));
     }
 
@@ -120,10 +120,11 @@ public class AccountManagementPageAbstract extends WebPageBase {
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(
                 BootstrapJavaScriptReference.instance())));
 
-        getIsisConfiguration().getViewer().getWicket().getApplication().getCss()
-                .ifPresent(css -> response.render(CssReferenceHeaderItem.forUrl(css)));
-        getIsisConfiguration().getViewer().getWicket().getApplication().getJs()
-                .ifPresent(js -> response.render(JavaScriptReferenceHeaderItem.forUrl(js)));
+        getConfiguration().getViewer().getWicket().getApplication().getCss()
+        .ifPresent(css -> response.render(CssReferenceHeaderItem.forUrl(css)));
+        
+        getConfiguration().getViewer().getWicket().getApplication().getJs()
+        .ifPresent(js -> response.render(JavaScriptReferenceHeaderItem.forUrl(js)));
     }
 
 
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
index e15ef3f..1561446 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/mmverror/MmvErrorPage.java
@@ -69,11 +69,11 @@ public class MmvErrorPage extends WebPageBase {
     }
 
     private MarkupContainer addPageTitle() {
-        return add(new Label(ID_PAGE_TITLE, getIsisConfiguration().getViewer().getWicket().getApplication().getName()));
+        return add(new Label(ID_PAGE_TITLE, getConfiguration().getViewer().getWicket().getApplication().getName()));
     }
 
     private void addApplicationName() {
-        add(new Label(ID_APPLICATION_NAME, getIsisConfiguration().getViewer().getWicket().getApplication().getName()));
+        add(new Label(ID_APPLICATION_NAME, getConfiguration().getViewer().getWicket().getApplication().getName()));
     }
 
     private void addValidationErrors() {
@@ -95,10 +95,11 @@ public class MmvErrorPage extends WebPageBase {
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(BootstrapJavaScriptReference.instance())));
 
-        getIsisConfiguration().getViewer().getWicket().getApplication().getCss()
-                .ifPresent(css -> response.render(CssReferenceHeaderItem.forUrl(css)));
-        getIsisConfiguration().getViewer().getWicket().getApplication().getJs()
-                .ifPresent(js -> response.render(JavaScriptReferenceHeaderItem.forUrl(js)));
+        getConfiguration().getViewer().getWicket().getApplication().getCss()
+        .ifPresent(css -> response.render(CssReferenceHeaderItem.forUrl(css)));
+        
+        getConfiguration().getViewer().getWicket().getApplication().getJs()
+        .ifPresent(js -> response.render(JavaScriptReferenceHeaderItem.forUrl(js)));
     }
 
     @Override