Class StyleInjector
inject(java.lang.String)
, injectAtEnd(java.lang.String)
, and injectAtStart(java.lang.String)
use
Scheduler.scheduleFinally(com.google.gwt.core.client.Scheduler.RepeatingCommand)
to minimize the number of individual style
elements created.
The api here is a bit redundant, with similarly named methods returning
either void
or StyleElement
— e.g.,
void inject(String)
v.
StyleElement injectStylesheet(String)
. The
methods that return StyleElement
are not guaranteed to work as
expected on Internet Explorer. Because they are still useful to developers on
other browsers they are not deprecated, but IE developers should
avoid the methods with StyleElement
return values (at least
up until, and excluding, IE10).
-
Nested Class Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
flush()
Flushes any pending stylesheets to the document.static void
Add a stylesheet to the document.static void
Add a stylesheet to the document.static void
injectAtEnd
(String css) Add stylesheet data to the document as though it were declared after all stylesheets previously created byinject(String)
.static void
injectAtEnd
(String css, boolean immediate) Add stylesheet data to the document as though it were declared after all stylesheets previously created byinject(String)
.static void
injectAtStart
(String css) Add stylesheet data to the document as though it were declared before all stylesheets previously created byinject(String)
.static void
injectAtStart
(String css, boolean immediate) Add stylesheet data to the document as though it were declared before all stylesheets previously created byinject(String)
.static StyleElement
injectStylesheet
(String contents) Add a stylesheet to the document.static StyleElement
injectStylesheetAtEnd
(String contents) Add stylesheet data to the document as though it were declared after all stylesheets previously created byinjectStylesheet(String)
.static StyleElement
injectStylesheetAtStart
(String contents) Add stylesheet data to the document as though it were declared before any stylesheet previously created byinjectStylesheet(String)
.static void
setContents
(StyleElement style, String contents) Replace the contents of a previously-injected stylesheet.
-
Method Details
-
flush
public static void flush()Flushes any pending stylesheets to the document.This can be useful if you used CssResource.ensureInjected but now in the same event loop want to measure widths based on the new styles.
Note that calling this method excessively will decrease performance.
-
inject
Add a stylesheet to the document.- Parameters:
css
- the CSS contents of the stylesheet
-
inject
Add a stylesheet to the document.- Parameters:
css
- the CSS contents of the stylesheetimmediate
- iftrue
the DOM will be updated immediately instead of just before returning to the event loop. Using this option excessively will decrease performance, especially if used with an inject-css-on-init coding pattern
-
injectAtEnd
Add stylesheet data to the document as though it were declared after all stylesheets previously created byinject(String)
.- Parameters:
css
- the CSS contents of the stylesheet
-
injectAtEnd
Add stylesheet data to the document as though it were declared after all stylesheets previously created byinject(String)
.- Parameters:
css
- the CSS contents of the stylesheetimmediate
- iftrue
the DOM will be updated immediately instead of just before returning to the event loop. Using this option excessively will decrease performance, especially if used with an inject-css-on-init coding pattern
-
injectAtStart
Add stylesheet data to the document as though it were declared before all stylesheets previously created byinject(String)
.- Parameters:
css
- the CSS contents of the stylesheet
-
injectAtStart
Add stylesheet data to the document as though it were declared before all stylesheets previously created byinject(String)
.- Parameters:
css
- the CSS contents of the stylesheetimmediate
- iftrue
the DOM will be updated immediately instead of just before returning to the event loop. Using this option excessively will decrease performance, especially if used with an inject-css-on-init coding pattern
-
injectStylesheet
Add a stylesheet to the document.The returned StyleElement cannot be implemented consistently across all browsers. Specifically, applications that need to run on Internet Explorer should not use this method. Call
inject(String)
instead.- Parameters:
contents
- the CSS contents of the stylesheet- Returns:
- the StyleElement that contains the newly-injected CSS (unreliable on Internet Explorer)
-
injectStylesheetAtEnd
Add stylesheet data to the document as though it were declared after all stylesheets previously created byinjectStylesheet(String)
.The returned StyleElement cannot be implemented consistently across all browsers. Specifically, applications that need to run on Internet Explorer should not use this method. Call
injectAtEnd(String)
instead.- Parameters:
contents
- the CSS contents of the stylesheet- Returns:
- the StyleElement that contains the newly-injected CSS (unreliable on Internet Explorer)
-
injectStylesheetAtStart
Add stylesheet data to the document as though it were declared before any stylesheet previously created byinjectStylesheet(String)
.The returned StyleElement cannot be implemented consistently across all browsers. Specifically, applications that need to run on Internet Explorer should not use this method. Call
injectAtStart(String, boolean)
instead.- Parameters:
contents
- the CSS contents of the stylesheet- Returns:
- the StyleElement that contains the newly-injected CSS (unreliable on Internet Explorer)
-
setContents
Replace the contents of a previously-injected stylesheet. Updating the stylesheet in-place is typically more efficient than removing a previously-created element and adding a new one.This method should be used with some caution as StyleInjector may recycle StyleElements on certain browsers. Specifically, applications that need to run on Internet Explorer should not use this method.
- Parameters:
style
- a StyleElement previously-returned frominjectStylesheet(String)
.contents
- the new contents of the stylesheet.
-