A few tweaks on TAP5-2371
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/90e9bccb Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/90e9bccb Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/90e9bccb Branch: refs/heads/master Commit: 90e9bccb2cd3ebc8b502bee0bfc2aa03d11d9ba7 Parents: d70596d Author: Howard M. Lewis Ship <hls...@apache.org> Authored: Tue Sep 2 10:34:28 2014 -0700 Committer: Howard M. Lewis Ship <hls...@apache.org> Committed: Tue Sep 2 10:34:28 2014 -0700 ---------------------------------------------------------------------- .../AddBrowserCompatibilityStyles.java | 23 +++++++++++++++----- .../tapestry5/modules/JavaScriptModule.java | 6 +++-- 2 files changed, 22 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/90e9bccb/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/AddBrowserCompatibilityStyles.java ---------------------------------------------------------------------- diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/AddBrowserCompatibilityStyles.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/AddBrowserCompatibilityStyles.java index 30b20be..e5b01d7 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/AddBrowserCompatibilityStyles.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/javascript/AddBrowserCompatibilityStyles.java @@ -24,6 +24,22 @@ import org.apache.tapestry5.services.MarkupRendererFilter; */ public class AddBrowserCompatibilityStyles implements MarkupRendererFilter { + private final String ie9, ie8; + + public AddBrowserCompatibilityStyles() + { + this(.25); + } + + public AddBrowserCompatibilityStyles(double opacity) + { + // IE9 does not support CSS animations, so we make the loading mask translucent + ie9 = String.format("<!--[if IE 9]><style type=\"text/css\">.pageloading-mask{opacity:%.2f;}</style><![endif]-->", opacity); + // Older IE versions do not even support opacity, we'll have to resort to a filter + ie8 = String.format("<!--[if IE lt 9]><style type=\"text/css\">.pageloading-mask{filter:alpha(opacity=%d);}</style><![endif]-->", + (int) (100. * opacity)); + } + public void renderMarkup(MarkupWriter writer, MarkupRenderer renderer) { renderer.renderMarkup(writer); @@ -33,11 +49,8 @@ public class AddBrowserCompatibilityStyles implements MarkupRendererFilter // Only add the respective style documents if we've rendered an HTML document if (head != null) { - // IE9 does not support CSS animations, so we make the loading mask translucent - head.raw("<!--[if IE 9]><style type=\"text/css\">.pageloading-mask{opacity:.25;}</style><![endif]-->"); - // Older IE versions do not even support opacity, we'll have to resort to a filter - head.raw("<!--[if IE lt 9]><style type=\"text/css\">.pageloading-mask{filter:alpha(opacity=25);}</style><![endif]-->"); - + head.raw(ie9); + head.raw(ie8); } } } http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/90e9bccb/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java ---------------------------------------------------------------------- diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java b/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java index 4e7079e..6846e60 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/modules/JavaScriptModule.java @@ -415,12 +415,14 @@ public class JavaScriptModule /** * Contributes 'ConfigureHTMLElement', which writes the attributes into the HTML tag to describe locale, etc. + * Contributes 'AddBrowserCompatibilityStyles', which writes {@code <style/>} elements into the {@code <head/>} + * element that modifies the page loading mask to work on IE 8 and IE 9. */ @Contribute(MarkupRenderer.class) - public static void renderLocaleAttributeIntoPages(OrderedConfiguration<MarkupRendererFilter> configuration) + public static void prepareHTMLPageOnRender(OrderedConfiguration<MarkupRendererFilter> configuration) { configuration.addInstance("ConfigureHTMLElement", ConfigureHTMLElementFilter.class); - configuration.addInstance("AddBrowserCompatibilityStyles", AddBrowserCompatibilityStyles.class); + configuration.add("AddBrowserCompatibilityStyles", new AddBrowserCompatibilityStyles()); } }