A few tweaks on TAP5-2371
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 @@
*/
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 @@
// 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);
}
}
}
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 @@
/**
* 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());
}
}