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;
+}