Package org.apache.batik.css.engine
Class CSSEngine
java.lang.Object
org.apache.batik.css.engine.CSSEngine
- Direct Known Subclasses:
SVGCSSEngine
This is the base class for all the CSS engines.
- Version:
- $Id: CSSEngine.java 1804130 2017-08-04 14:41:11Z ssteiner $
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
To handle mutations of a CSSNavigableDocument.protected static class
Provides an (empty) adapter for the DocumentHandler interface.protected class
To handle the element attributes modification in the associated document.protected class
To handle the modification of a CSSStyleSheetNode.protected class
To handle the insertion of a CSSStyleSheetNode in the associated document.protected class
To handle the removal of a CSSStyleSheetNode from the associated document.protected class
To handle the removal of a CSSStyleSheetNode from the associated document.static interface
Interface for people interesting in having 'primary' properties set.protected class
To build a StyleDeclaration object.protected class
To parse a style declaration.protected class
To parse a style declaration and update a StyleMap.protected class
To parse a style sheet. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final int[]
Used to fire a change event for all the properties.protected String
The alternate stylesheet title.protected String
The class attribute local name.protected String
The class attribute namespace URI.protected int
The color property index.protected ParsedURL
The current base URI.protected CSSConditionFactory
The CSS condition factory.protected CSSContext
The CSS context.protected CSSEngine.CSSNavigableDocumentHandler
Listener for CSSNavigableDocument events.protected Document
The associated document.protected ParsedURL
The document URI.protected EventListener
The DOMAttrModified event listener.protected EventListener
The DOMCharacterDataModified event listener.protected EventListener
The DOMNodeInserted event listener.protected EventListener
The DOMNodeRemoved event listener.protected EventListener
The DOMSubtreeModified event listener.protected CSSStylableElement
The current element.protected List
List of StyleMap objects, one for each @font-face rule encountered by this CSSEngine.protected int
The font-size property index.protected StringIntMap
The property/int mappings.protected boolean
Whether the document is a CSSNavigableDocument.protected int
The line-height property index.protected static final CSSEngineListener[]
protected List
The listeners.protected org.w3c.css.sac.SACMediaList
The media to use to cascade properties.protected Set
The non CSS presentational hints.protected String
The non CSS presentational hints namespace URI.protected ExtendedParser
The CSS parser.protected String[]
The pseudo-element names.protected Node
The right sibling of the last removed node.protected Set
The attributes found in stylesheets selectors.protected StringIntMap
The shorthand-property/int mappings.protected ShorthandManager[]
The shorthand managers.protected CSSEngine.StyleDeclarationBuilder
The style declaration document handler used to build a StyleDeclaration object.The style declaration document handler.protected CSSEngine.StyleDeclarationUpdateHandler
The style declaration update handler.protected String
The style attribute local name.protected String
The style attribute namespace URI.protected CSSEngine.StyleSheetDocumentHandler
The style sheet document handler.protected List
The DOM nodes which contains StyleSheets.protected boolean
Whether a style sheet as been removed from the document.protected CSSEngineUserAgent
The user agent used for showing error messages.protected StyleSheet
The user-agent style-sheet.protected StyleSheet
The user style-sheet.protected ValueManager[]
The value managers. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
CSSEngine
(Document doc, ParsedURL uri, ExtendedParser p, ValueManager[] vm, ShorthandManager[] sm, String[] pe, String sns, String sln, String cns, String cln, boolean hints, String hintsNS, CSSContext ctx) Creates a new CSSEngine. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a CSS engine listener.protected void
Adds event listeners to the document to track CSS changes.protected void
addMatchingRules
(List rules, StyleSheet ss, Element elt, String pseudo) Adds the rules matching the element/pseudo-element of given style sheet to the list.protected void
Adds the rules contained in the given list to a stylemap.private static void
clearComputedValue
(StyleMap style, int n) void
dispose()
Disposes the CSSEngine and all the attached resources.protected void
disposeStyleMaps
(Node node) Removes the style maps from each CSSStylableElement in the document.protected void
findSelectorAttributes
(Set attrs, StyleSheet ss) Finds the selector attributes in the given stylesheet.protected void
An auxiliary method for getStyleSheets().protected void
firePropertiesChangedEvent
(Element target, int[] props) Fires a CSSEngineEvent, given a list of modified properties.getCascadedStyleMap
(CSSStylableElement elt, String pseudo) Returns the cascaded style of the given element/pseudo-element.int
Returns the color property index.getComputedStyle
(CSSStylableElement elt, String pseudo, int propidx) Returns the computed style of the given element/pseudo for the property corresponding to the given index.Returns the current base-url.Returns the CSS context.protected static Node
Returns the CSS first child node of the given node.protected static Node
Returns the CSS next sibling node of the given node.static Node
Returns the CSS parent node of the given node.protected static Node
Returns the CSS previous sibling node of the given node.Returns the document associated with this engine.Gets the StyleMaps generated by @font-face rules encountered by this CSSEngine thus far.int
Returns the font-size property index.int
Returns the line-height property index.int
Returns the number of properties.static CSSStylableElement
Returns the next stylable parent of the given element.int
getPropertyIndex
(String name) Returns the property index, or -1.getPropertyName
(int idx) Returns the name of the property at the given index.int
getShorthandIndex
(String name) Returns the shorthand property index, or -1.Returns the ShorthandManagers.Returns the document CSSStyleSheetNodes in a list.Returns the ValueManagers.protected void
handleAttrModified
(Element e, Attr attr, short attrChange, String prevValue, String newValue) Handles an attribute change in the document.protected void
Handles a character data modification in the document.protected void
Handles a node insertion in the document.protected void
Handles a node removal from the document.protected void
handleSubtreeModified
(Node ignored) Handles a subtree modification in the document.protected boolean
Returns whether the DOM subtree rooted at the specified node contains aCSSStyleSheetNode
.void
importCascadedStyleMaps
(Element src, CSSEngine srceng, Element dest) Recursively imports the cascaded style from a source element to an element of the current document.protected void
inlineStyleAttributeUpdated
(CSSStylableElement elt, StyleMap style, short attrChange, String prevValue, String newValue) Called when the inline style of the given element has been updated.protected void
invalidateProperties
(Node node, int[] properties, boolean[] updated, boolean recascade) Invalidates all the properties of the given node.protected boolean
mediaMatch
(org.w3c.css.sac.SACMediaList ml) Whether the given media list matches the media list of this CSSEngine object.protected void
nonCSSPresentationalHintUpdated
(CSSStylableElement elt, StyleMap style, String property, short attrChange, String newValue) Called when a non-CSS presentational hint has been updated.parsePropertyValue
(CSSStylableElement elt, String prop, String value) Parses and creates a property value from elt.parseStyleDeclaration
(CSSStylableElement elt, String value) Parses and creates a style declaration.parseStyleSheet
(String rules, ParsedURL uri, String media) Parses and creates a new style-sheet.void
parseStyleSheet
(StyleSheet ss, String rules, ParsedURL uri) Parses and fills the given style-sheet.void
parseStyleSheet
(StyleSheet ss, ParsedURL uri) Parses and fills the given style-sheet.protected void
parseStyleSheet
(StyleSheet ss, org.w3c.css.sac.InputSource is, ParsedURL uri) Parses and fills the given style-sheet.parseStyleSheet
(ParsedURL uri, String media) Parses and creates a new style-sheet.parseStyleSheet
(org.w3c.css.sac.InputSource is, ParsedURL uri, String media) Parses and creates a new style-sheet.protected void
propagateChanges
(Node node, int[] props, boolean recascade) Propagates the changes that occurs on the parent of the given node.protected void
putAuthorProperty
(StyleMap dest, int idx, Value sval, boolean imp, short origin) Puts an author property from a style-map in another style-map, if possible.void
Removes a CSS engine listener.protected void
Removes the event listeners from the document.void
Sets the alternate style-sheet title.void
setCSSEngineUserAgent
(CSSEngineUserAgent userAgent) void
setMainProperties
(CSSStylableElement elt, CSSEngine.MainPropertyReceiver dst, String pname, String value, boolean important) void
Sets the media to use to compute the styles.void
Sets the user agent style-sheet.void
Sets the user style-sheet.protected void
Sorts the rules matching the element/pseudo-element of given style sheet to the list.
-
Field Details
-
userAgent
The user agent used for showing error messages. -
cssContext
The CSS context. -
document
The associated document. -
documentURI
The document URI. -
indexes
The property/int mappings. -
shorthandIndexes
The shorthand-property/int mappings. -
valueManagers
The value managers. -
shorthandManagers
The shorthand managers. -
parser
The CSS parser. -
pseudoElementNames
The pseudo-element names. -
fontSizeIndex
protected int fontSizeIndexThe font-size property index. -
lineHeightIndex
protected int lineHeightIndexThe line-height property index. -
colorIndex
protected int colorIndexThe color property index. -
userAgentStyleSheet
The user-agent style-sheet. -
userStyleSheet
The user style-sheet. -
media
protected org.w3c.css.sac.SACMediaList mediaThe media to use to cascade properties. -
styleSheetNodes
The DOM nodes which contains StyleSheets. -
fontFaces
List of StyleMap objects, one for each @font-face rule encountered by this CSSEngine. -
styleNamespaceURI
The style attribute namespace URI. -
styleLocalName
The style attribute local name. -
classNamespaceURI
The class attribute namespace URI. -
classLocalName
The class attribute local name. -
nonCSSPresentationalHints
The non CSS presentational hints. -
nonCSSPresentationalHintsNamespaceURI
The non CSS presentational hints namespace URI. -
styleDeclarationDocumentHandler
The style declaration document handler. -
styleDeclarationUpdateHandler
The style declaration update handler. -
styleSheetDocumentHandler
The style sheet document handler. -
styleDeclarationBuilder
The style declaration document handler used to build a StyleDeclaration object. -
element
The current element. -
cssBaseURI
The current base URI. -
alternateStyleSheet
The alternate stylesheet title. -
domAttrModifiedListener
The DOMAttrModified event listener. -
domNodeInsertedListener
The DOMNodeInserted event listener. -
domNodeRemovedListener
The DOMNodeRemoved event listener. -
domSubtreeModifiedListener
The DOMSubtreeModified event listener. -
domCharacterDataModifiedListener
The DOMCharacterDataModified event listener. -
styleSheetRemoved
protected boolean styleSheetRemovedWhether a style sheet as been removed from the document. -
removedStylableElementSibling
The right sibling of the last removed node. -
listeners
The listeners. -
selectorAttributes
The attributes found in stylesheets selectors. -
ALL_PROPERTIES
protected final int[] ALL_PROPERTIESUsed to fire a change event for all the properties. -
cssConditionFactory
The CSS condition factory. -
LISTENER_ARRAY
-
-
Constructor Details
-
CSSEngine
protected CSSEngine(Document doc, ParsedURL uri, ExtendedParser p, ValueManager[] vm, ShorthandManager[] sm, String[] pe, String sns, String sln, String cns, String cln, boolean hints, String hintsNS, CSSContext ctx) Creates a new CSSEngine.- Parameters:
doc
- The associated document.uri
- The document URI.p
- The CSS parser.vm
- The property value managers.sm
- The shorthand properties managers.pe
- The pseudo-element names supported by the associated XML dialect. Must be null if no support for pseudo- elements is required.sns
- The namespace URI of the style attribute.sln
- The local name of the style attribute.cns
- The namespace URI of the class attribute.cln
- The local name of the class attribute.hints
- Whether the CSS engine should support non CSS presentational hints.hintsNS
- The hints namespace URI.ctx
- The CSS context.
-
-
Method Details
-
getCSSParentNode
Returns the CSS parent node of the given node. -
getCSSFirstChild
Returns the CSS first child node of the given node. -
getCSSNextSibling
Returns the CSS next sibling node of the given node. -
getCSSPreviousSibling
Returns the CSS previous sibling node of the given node. -
getParentCSSStylableElement
Returns the next stylable parent of the given element. -
addEventListeners
Adds event listeners to the document to track CSS changes. -
removeEventListeners
Removes the event listeners from the document. -
dispose
public void dispose()Disposes the CSSEngine and all the attached resources. -
disposeStyleMaps
Removes the style maps from each CSSStylableElement in the document. -
getCSSContext
Returns the CSS context. -
getDocument
Returns the document associated with this engine. -
getFontSizeIndex
public int getFontSizeIndex()Returns the font-size property index. -
getLineHeightIndex
public int getLineHeightIndex()Returns the line-height property index. -
getColorIndex
public int getColorIndex()Returns the color property index. -
getNumberOfProperties
public int getNumberOfProperties()Returns the number of properties. -
getPropertyIndex
Returns the property index, or -1. -
getShorthandIndex
Returns the shorthand property index, or -1. -
getPropertyName
Returns the name of the property at the given index. -
setCSSEngineUserAgent
-
getCSSEngineUserAgent
-
setUserAgentStyleSheet
Sets the user agent style-sheet. -
setUserStyleSheet
Sets the user style-sheet. -
getValueManagers
Returns the ValueManagers. -
getShorthandManagers
Returns the ShorthandManagers. -
getFontFaces
Gets the StyleMaps generated by @font-face rules encountered by this CSSEngine thus far. -
setMedia
Sets the media to use to compute the styles. -
setAlternateStyleSheet
Sets the alternate style-sheet title. -
importCascadedStyleMaps
Recursively imports the cascaded style from a source element to an element of the current document. -
getCSSBaseURI
Returns the current base-url. -
getCascadedStyleMap
Returns the cascaded style of the given element/pseudo-element.- Parameters:
elt
- The stylable element.pseudo
- Optional pseudo-element string (null if none).
-
getComputedStyle
Returns the computed style of the given element/pseudo for the property corresponding to the given index. -
getStyleSheetNodes
Returns the document CSSStyleSheetNodes in a list. This list is updated as the document is modified. -
findStyleSheetNodes
An auxiliary method for getStyleSheets(). -
findSelectorAttributes
Finds the selector attributes in the given stylesheet. -
setMainProperties
public void setMainProperties(CSSStylableElement elt, CSSEngine.MainPropertyReceiver dst, String pname, String value, boolean important) -
parsePropertyValue
Parses and creates a property value from elt.- Parameters:
elt
- The element property is from.prop
- The property name.value
- The property value.
-
parseStyleDeclaration
Parses and creates a style declaration.- Parameters:
value
- The style declaration text.
-
parseStyleSheet
Parses and creates a new style-sheet.- Parameters:
uri
- The style-sheet URI.media
- The target media of the style-sheet.- Throws:
DOMException
-
parseStyleSheet
public StyleSheet parseStyleSheet(org.w3c.css.sac.InputSource is, ParsedURL uri, String media) throws DOMException Parses and creates a new style-sheet.- Parameters:
is
- The input source used to read the document.uri
- The base URI.media
- The target media of the style-sheet.- Throws:
DOMException
-
parseStyleSheet
Parses and fills the given style-sheet.- Parameters:
ss
- The stylesheet to fill.uri
- The base URI.- Throws:
DOMException
-
parseStyleSheet
Parses and creates a new style-sheet.- Parameters:
rules
- The style-sheet rules to parse.uri
- The style-sheet URI.media
- The target media of the style-sheet.- Throws:
DOMException
-
parseStyleSheet
Parses and fills the given style-sheet.- Parameters:
ss
- The stylesheet to fill.rules
- The style-sheet rules to parse.uri
- The base URI.- Throws:
DOMException
-
parseStyleSheet
protected void parseStyleSheet(StyleSheet ss, org.w3c.css.sac.InputSource is, ParsedURL uri) throws IOException Parses and fills the given style-sheet.- Parameters:
ss
- The stylesheet to fill.uri
- The base URI.- Throws:
IOException
-
putAuthorProperty
Puts an author property from a style-map in another style-map, if possible. -
addMatchingRules
Adds the rules matching the element/pseudo-element of given style sheet to the list. -
addRules
Adds the rules contained in the given list to a stylemap. -
sortRules
Sorts the rules matching the element/pseudo-element of given style sheet to the list. -
mediaMatch
protected boolean mediaMatch(org.w3c.css.sac.SACMediaList ml) Whether the given media list matches the media list of this CSSEngine object. -
addCSSEngineListener
Adds a CSS engine listener. -
removeCSSEngineListener
Removes a CSS engine listener. -
firePropertiesChangedEvent
Fires a CSSEngineEvent, given a list of modified properties. -
inlineStyleAttributeUpdated
protected void inlineStyleAttributeUpdated(CSSStylableElement elt, StyleMap style, short attrChange, String prevValue, String newValue) Called when the inline style of the given element has been updated. -
clearComputedValue
-
invalidateProperties
protected void invalidateProperties(Node node, int[] properties, boolean[] updated, boolean recascade) Invalidates all the properties of the given node. -
propagateChanges
Propagates the changes that occurs on the parent of the given node. Props is a list of known 'changed' properties. If recascade is true then the stylesheets will be applied again to see if the any new rules apply (or old rules don't apply). -
nonCSSPresentationalHintUpdated
protected void nonCSSPresentationalHintUpdated(CSSStylableElement elt, StyleMap style, String property, short attrChange, String newValue) Called when a non-CSS presentational hint has been updated. -
hasStyleSheetNode
Returns whether the DOM subtree rooted at the specified node contains aCSSStyleSheetNode
. -
handleAttrModified
protected void handleAttrModified(Element e, Attr attr, short attrChange, String prevValue, String newValue) Handles an attribute change in the document. -
handleNodeInserted
Handles a node insertion in the document. -
handleNodeRemoved
Handles a node removal from the document. -
handleSubtreeModified
Handles a subtree modification in the document. todo the incoming Node is actually ignored (not used) here, but it seems caller-sites assume that it is used - is this done right?? -
handleCharacterDataModified
Handles a character data modification in the document.
-