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 2014/11/04 01:34:21 UTC

[23/27] git commit: ISIS-537 Add logic to be able to contribute CSS rules overriding Bootstrap theme's ones for the currently active theme

ISIS-537 Add logic to be able to contribute CSS rules overriding Bootstrap theme's ones for the currently active theme

https://trello.com/c/fQCoQ47M/85-workaround-required-for-darkly-theme-with-datepicker


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/3680adf0
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/3680adf0
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/3680adf0

Branch: refs/heads/master
Commit: 3680adf0aee9f4770b6c94bd218280d20f5cf1ed
Parents: 7466e7c
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sun Nov 2 22:22:50 2014 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sun Nov 2 22:22:50 2014 +0200

----------------------------------------------------------------------
 .../viewer/wicket/ui/pages/PageAbstract.java    | 24 ++++++++++++++++++++
 .../ui/pages/bootstrap-overrides-darkly.css     | 23 +++++++++++++++++++
 2 files changed, 47 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/3680adf0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
index 8ace237..8c94106 100644
--- a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/PageAbstract.java
@@ -19,12 +19,16 @@
 
 package org.apache.isis.viewer.wicket.ui.pages;
 
+import de.agilecoders.wicket.core.Bootstrap;
 import de.agilecoders.wicket.core.markup.html.references.BootlintJavaScriptReference;
+import de.agilecoders.wicket.core.settings.IBootstrapSettings;
+import de.agilecoders.wicket.core.settings.ITheme;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesomeCssReference;
 
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Locale;
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 import org.apache.wicket.MarkupContainer;
@@ -45,7 +49,10 @@ 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;
+import org.apache.wicket.request.resource.PackageResource;
+import org.apache.wicket.request.resource.ResourceReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
@@ -240,6 +247,7 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
         response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(getApplication().getJavaScriptLibrarySettings().getJQueryReference())));
         response.render(CssHeaderItem.forReference(FontAwesomeCssReference.instance()));
         response.render(CssHeaderItem.forReference(new BootstrapOverridesCssResourceReference()));
+        contributeThemeSpecificOverrides(response);
         PanelUtil.renderHead(response, PageAbstract.class);
 
         response.render(JavaScriptReferenceHeaderItem.forReference(JQUERY_LIVEQUERY_JS));
@@ -264,6 +272,22 @@ public abstract class PageAbstract extends WebPage implements ActionPromptProvid
         }
     }
 
+    /**
+     * Contributes theme specific Bootstrap CSS overrides if there is such resource
+     *
+     * @param response The header response to contribute to
+     */
+    private void contributeThemeSpecificOverrides(IHeaderResponse response) {
+        IBootstrapSettings bootstrapSettings = Bootstrap.getSettings(getApplication());
+        ITheme activeTheme = bootstrapSettings.getActiveThemeProvider().getActiveTheme();
+        String name = activeTheme.name().toLowerCase(Locale.ENGLISH);
+        String themeSpecificOverride = "bootstrap-overrides-" + name + ".css";
+        ResourceReference.Key themeSpecificOverrideKey = new ResourceReference.Key(PageAbstract.class.getName(), themeSpecificOverride, null, null, null);
+        if (PackageResource.exists(themeSpecificOverrideKey)) {
+            response.render(CssHeaderItem.forReference(new CssResourceReference(themeSpecificOverrideKey)));
+        }
+    }
+
     private void addUserName(MarkupContainer themeDiv) {
         Label userName = new Label("userName", getAuthenticationSession().getUserName());
         themeDiv.add(userName);

http://git-wip-us.apache.org/repos/asf/isis/blob/3680adf0/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-darkly.css
----------------------------------------------------------------------
diff --git a/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-darkly.css b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-darkly.css
new file mode 100644
index 0000000..dae7b57
--- /dev/null
+++ b/component/viewer/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/bootstrap-overrides-darkly.css
@@ -0,0 +1,23 @@
+/*
+ *  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.
+ */
+
+.bootstrap-datetimepicker-widget {
+    background-color: #ffffff;
+    color: #000000;
+}