org.apache.batik.css.engine
Class CSSEngine

java.lang.Object
  |
  +--org.apache.batik.css.engine.CSSEngine
Direct Known Subclasses:
SVGCSSEngine

public abstract class CSSEngine
extends java.lang.Object

This is the base class for all the CSS engines.


Inner Class Summary
protected static class CSSEngine.DocumentAdapter
          Provides an adapter for the DocumentHandler interface.
protected  class CSSEngine.DOMAttrModifiedListener
          To handle the element attributes modification in the associated document.
protected  class CSSEngine.DOMCharacterDataModifiedListener
          To handle the modification of a CSSStyleSheetNode.
protected  class CSSEngine.DOMNodeInsertedListener
          To handle the insertion of a CSSStyleSheetNode in the associated document.
protected  class CSSEngine.DOMNodeRemovedListener
          To handle the removal of a CSSStyleSheetNode from the associated document.
protected  class CSSEngine.DOMSubtreeModifiedListener
          To handle the removal of a CSSStyleSheetNode from the associated document.
protected  class CSSEngine.StyleDeclarationBuilder
          To build a StyleDeclaration object.
protected  class CSSEngine.StyleDeclarationDocumentHandler
          To parse a style declaration.
protected  class CSSEngine.StyleDeclarationUpdateHandler
          To parse a style declaration and update a StyleMap.
protected  class CSSEngine.StyleSheetDocumentHandler
          To parse a style sheet.
 
Field Summary
protected  int[] ALL_PROPERTIES
          Used to fire a change event for all the properties.
protected  java.lang.String alternateStyleSheet
          The alternate stylesheet title.
protected  java.lang.String classLocalName
          The class attribute local name.
protected  java.lang.String classNamespaceURI
          The class attribute namespace URI.
protected  int colorIndex
          The color property index.
protected  java.net.URL cssBaseURI
          The current base URI.
protected  CSSConditionFactory cssConditionFactory
          The CSS condition factory.
protected  CSSContext cssContext
          The CSS context.
protected  Document document
          The associated document.
protected  java.net.URL documentURI
          The document URI.
protected  EventListener domAttrModifiedListener
          The DOMAttrModified event listener.
protected  EventListener domCharacterDataModifiedListener
          The DOMCharacterDataModified event listener.
protected  EventListener domNodeInsertedListener
          The DOMNodeInserted event listener.
protected  EventListener domNodeRemovedListener
          The DOMNodeRemoved event listener.
protected  EventListener domSubtreeModifiedListener
          The DOMSubtreeModified event listener.
protected  CSSStylableElement element
          The current element.
protected  int fontSizeIndex
          The font-size property index.
protected  StringIntMap indexes
          The property/int mappings.
protected  int lineHeightIndex
          The line-height property index.
protected static CSSEngineListener[] LISTENER_ARRAY
           
protected  java.util.List listeners
          The listeners.
protected  SACMediaList media
          The media to use to cascade properties.
protected  java.util.Set nonCSSPresentationalHints
          The non CSS presentational hints.
protected  java.lang.String nonCSSPresentationalHintsNamespaceURI
          The non CSS presentational hints namespace URI.
protected  ExtendedParser parser
          The CSS parser.
protected  java.lang.String[] pseudoElementNames
          The pseudo-element names.
protected  Node removedStylableElementSibling
          The right sibling of the last removed node.
protected  java.util.Set selectorAttributes
          The attributes found in stylesheets selectors.
protected  StringIntMap shorthandIndexes
          The shorthand-property/int mappings.
protected  ShorthandManager[] shorthandManagers
          The shorthand managers.
protected  CSSEngine.StyleDeclarationBuilder styleDeclarationBuilder
          The style declaration document handler used to build a StyleDeclaration object.
protected  CSSEngine.StyleDeclarationDocumentHandler styleDeclarationDocumentHandler
          The style declaration document handler.
protected  CSSEngine.StyleDeclarationUpdateHandler styleDeclarationUpdateHandler
          The style declaration update handler.
protected  java.lang.String styleLocalName
          The style attribute local name.
protected  java.lang.String styleNamespaceURI
          The style attribute namespace URI.
protected  CSSEngine.StyleSheetDocumentHandler styleSheetDocumentHandler
          The style sheet document handler.
protected  java.util.List styleSheetNodes
          The DOM nodes which contains StyleSheets.
protected  boolean styleSheetRemoved
          Whether a style sheet as been removed from the document.
protected  StyleSheet userAgentStyleSheet
          The user-agent style-sheet.
protected  StyleSheet userStyleSheet
          The user style-sheet.
protected  ValueManager[] valueManagers
          The value managers.
 
Constructor Summary
protected CSSEngine(Document doc, java.net.URL uri, ExtendedParser p, ValueManager[] vm, ShorthandManager[] sm, java.lang.String[] pe, java.lang.String sns, java.lang.String sln, java.lang.String cns, java.lang.String cln, boolean hints, java.lang.String hintsNS, CSSContext ctx)
          Creates a new CSSEngine.
 
Method Summary
 void addCSSEngineListener(CSSEngineListener l)
          Adds a CSS engine listener.
protected  void addMatchingRules(java.util.List rules, StyleSheet ss, Element elt, java.lang.String pseudo)
          Adds the rules matching the element/pseudo-element of given style sheet to the list.
protected  void addRules(Element elt, java.lang.String pseudo, StyleMap sm, java.util.List rules, short origin)
          Adds the rules contained in the given list to a stylemap.
 void dispose()
          Disposes the CSSEngine and all the attached resources.
protected  void findSelectorAttributes(java.util.Set attrs, StyleSheet ss)
          Finds the selector attributes in the given stylesheet.
protected  void findStyleSheetNodes(Node n)
          An auxiliary method for getStyleSheets().
protected  void firePropertiesChangedEvent(Element target, int[] props)
          Fires a CSSEngineEvent, given a list of modified properties.
 StyleMap getCascadedStyleMap(CSSStylableElement elt, java.lang.String pseudo)
          Returns the cascaded style of the given element/pseudo-element.
 int getColorIndex()
          Returns the color property index.
 Value getComputedStyle(CSSStylableElement elt, java.lang.String pseudo, int propidx)
          Returns the computed style of the given element/pseudo for the property corresponding to the given index.
 java.net.URL getCSSBaseURI()
          Returns the current base-url.
 CSSContext getCSSContext()
          Returns the CSS context.
 Document getDocument()
          Returns the document associated with this engine.
 int getFontSizeIndex()
          Returns the font-size property index.
static Node getImportedChild(Node node)
          Returns the imported child of the given node, if any.
 int getLineHeightIndex()
          Returns the line-height property index.
static Node getLogicalParentNode(Node parent)
          Returns the logical parent of a node, given its physical parent.
 int getNumberOfProperties()
          Returns the number of properties.
static CSSStylableElement getParentCSSStylableElement(Element elt)
          Returns the next stylable parent of the given element.
static Element getParentElement(Element elt)
          Returns the next parent element of the given element, from the CSS point of view.
 int getPropertyIndex(java.lang.String name)
          Returns the property index, or -1.
 java.lang.String getPropertyName(int idx)
          Returns the name of the property at the given index.
 int getShorthandIndex(java.lang.String name)
          Returns the shorthand property index, or -1.
 java.util.List getStyleSheetNodes()
          Returns the document CSSStyleSheetNodes in a list.
 ValueManager[] getValueManagers()
          Returns the ValueManagers.
 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, MutationEvent evt)
          Called when the inline style of the given element has been updated.
protected  void invalidateProperties(Node node)
          Invalidates all the properties of the given node.
protected  void invalidateTreeProperties(Node node)
          Invalidates all the stylable elements descendant of the given node, and the node.
protected  boolean mediaMatch(SACMediaList ml)
          Whether the given media list matches the media list of this CSSEngine object.
protected  void nonCSSPresentationalHintUpdated(CSSStylableElement elt, StyleMap style, java.lang.String property, MutationEvent evt)
          Called when a non-CSS presentational hint has been updated.
 Value parsePropertyValue(java.lang.String prop, java.lang.String value)
          Parses and creates a property value.
 StyleDeclaration parseStyleDeclaration(java.lang.String value)
          Parses and creates a style declaration.
 StyleSheet parseStyleSheet(InputSource is, java.net.URL uri, java.lang.String media)
          Parses and creates a new style-sheet.
 StyleSheet parseStyleSheet(java.lang.String rules, java.net.URL uri, java.lang.String media)
          Parses and creates a new style-sheet.
protected  void parseStyleSheet(StyleSheet ss, InputSource is, java.net.URL uri)
          Parses and fills the given style-sheet.
 void parseStyleSheet(StyleSheet ss, java.lang.String rules, java.net.URL uri)
          Parses and fills the given style-sheet.
 void parseStyleSheet(StyleSheet ss, java.net.URL uri)
          Parses and fills the given style-sheet.
 StyleSheet parseStyleSheet(java.net.URL uri, java.lang.String media)
          Parses and creates a new style-sheet.
protected  void propagateChanges(Node node, int[] props)
          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 removeCSSEngineListener(CSSEngineListener l)
          Removes a CSS engine listener.
 void setAlternateStyleSheet(java.lang.String str)
          Sets the alternate style-sheet title.
 void setMedia(java.lang.String str)
          Sets the media to use to compute the styles.
 void setUserAgentStyleSheet(StyleSheet ss)
          Sets the user agent style-sheet.
 void setUserStyleSheet(StyleSheet ss)
          Sets the user style-sheet.
protected  void sortRules(java.util.List rules, Element elt, java.lang.String pseudo)
          Sorts the rules matching the element/pseudo-element of given style sheet to the list.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cssContext

protected CSSContext cssContext
The CSS context.

document

protected Document document
The associated document.

documentURI

protected java.net.URL documentURI
The document URI.

indexes

protected StringIntMap indexes
The property/int mappings.

shorthandIndexes

protected StringIntMap shorthandIndexes
The shorthand-property/int mappings.

valueManagers

protected ValueManager[] valueManagers
The value managers.

shorthandManagers

protected ShorthandManager[] shorthandManagers
The shorthand managers.

parser

protected ExtendedParser parser
The CSS parser.

pseudoElementNames

protected java.lang.String[] pseudoElementNames
The pseudo-element names.

fontSizeIndex

protected int fontSizeIndex
The font-size property index.

lineHeightIndex

protected int lineHeightIndex
The line-height property index.

colorIndex

protected int colorIndex
The color property index.

userAgentStyleSheet

protected StyleSheet userAgentStyleSheet
The user-agent style-sheet.

userStyleSheet

protected StyleSheet userStyleSheet
The user style-sheet.

media

protected SACMediaList media
The media to use to cascade properties.

styleSheetNodes

protected java.util.List styleSheetNodes
The DOM nodes which contains StyleSheets.

styleNamespaceURI

protected java.lang.String styleNamespaceURI
The style attribute namespace URI.

styleLocalName

protected java.lang.String styleLocalName
The style attribute local name.

classNamespaceURI

protected java.lang.String classNamespaceURI
The class attribute namespace URI.

classLocalName

protected java.lang.String classLocalName
The class attribute local name.

nonCSSPresentationalHints

protected java.util.Set nonCSSPresentationalHints
The non CSS presentational hints.

nonCSSPresentationalHintsNamespaceURI

protected java.lang.String nonCSSPresentationalHintsNamespaceURI
The non CSS presentational hints namespace URI.

styleDeclarationDocumentHandler

protected CSSEngine.StyleDeclarationDocumentHandler styleDeclarationDocumentHandler
The style declaration document handler.

styleDeclarationUpdateHandler

protected CSSEngine.StyleDeclarationUpdateHandler styleDeclarationUpdateHandler
The style declaration update handler.

styleSheetDocumentHandler

protected CSSEngine.StyleSheetDocumentHandler styleSheetDocumentHandler
The style sheet document handler.

styleDeclarationBuilder

protected CSSEngine.StyleDeclarationBuilder styleDeclarationBuilder
The style declaration document handler used to build a StyleDeclaration object.

element

protected CSSStylableElement element
The current element.

cssBaseURI

protected java.net.URL cssBaseURI
The current base URI.

alternateStyleSheet

protected java.lang.String alternateStyleSheet
The alternate stylesheet title.

domAttrModifiedListener

protected EventListener domAttrModifiedListener
The DOMAttrModified event listener.

domNodeInsertedListener

protected EventListener domNodeInsertedListener
The DOMNodeInserted event listener.

domNodeRemovedListener

protected EventListener domNodeRemovedListener
The DOMNodeRemoved event listener.

domSubtreeModifiedListener

protected EventListener domSubtreeModifiedListener
The DOMSubtreeModified event listener.

domCharacterDataModifiedListener

protected EventListener domCharacterDataModifiedListener
The DOMCharacterDataModified event listener.

styleSheetRemoved

protected boolean styleSheetRemoved
Whether a style sheet as been removed from the document.

removedStylableElementSibling

protected Node removedStylableElementSibling
The right sibling of the last removed node.

listeners

protected java.util.List listeners
The listeners.

selectorAttributes

protected java.util.Set selectorAttributes
The attributes found in stylesheets selectors.

ALL_PROPERTIES

protected final int[] ALL_PROPERTIES
Used to fire a change event for all the properties.

cssConditionFactory

protected CSSConditionFactory cssConditionFactory
The CSS condition factory.

LISTENER_ARRAY

protected static final CSSEngineListener[] LISTENER_ARRAY
Constructor Detail

CSSEngine

protected CSSEngine(Document doc,
                    java.net.URL uri,
                    ExtendedParser p,
                    ValueManager[] vm,
                    ShorthandManager[] sm,
                    java.lang.String[] pe,
                    java.lang.String sns,
                    java.lang.String sln,
                    java.lang.String cns,
                    java.lang.String cln,
                    boolean hints,
                    java.lang.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 Detail

getParentCSSStylableElement

public static CSSStylableElement getParentCSSStylableElement(Element elt)
Returns the next stylable parent of the given element.

getParentElement

public static Element getParentElement(Element elt)
Returns the next parent element of the given element, from the CSS point of view.

getLogicalParentNode

public static Node getLogicalParentNode(Node parent)
Returns the logical parent of a node, given its physical parent.

getImportedChild

public static Node getImportedChild(Node node)
Returns the imported child of the given node, if any.

dispose

public void dispose()
Disposes the CSSEngine and all the attached resources.

getCSSContext

public CSSContext getCSSContext()
Returns the CSS context.

getDocument

public Document 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

public int getPropertyIndex(java.lang.String name)
Returns the property index, or -1.

getShorthandIndex

public int getShorthandIndex(java.lang.String name)
Returns the shorthand property index, or -1.

getPropertyName

public java.lang.String getPropertyName(int idx)
Returns the name of the property at the given index.

setUserAgentStyleSheet

public void setUserAgentStyleSheet(StyleSheet ss)
Sets the user agent style-sheet.

setUserStyleSheet

public void setUserStyleSheet(StyleSheet ss)
Sets the user style-sheet.

getValueManagers

public ValueManager[] getValueManagers()
Returns the ValueManagers.

setMedia

public void setMedia(java.lang.String str)
Sets the media to use to compute the styles.

setAlternateStyleSheet

public void setAlternateStyleSheet(java.lang.String str)
Sets the alternate style-sheet title.

importCascadedStyleMaps

public void importCascadedStyleMaps(Element src,
                                    CSSEngine srceng,
                                    Element dest)
Recursively imports the cascaded style from a source element to an element of the current document.

getCSSBaseURI

public java.net.URL getCSSBaseURI()
Returns the current base-url.

getCascadedStyleMap

public StyleMap getCascadedStyleMap(CSSStylableElement elt,
                                    java.lang.String pseudo)
Returns the cascaded style of the given element/pseudo-element.
Parameters:
elt - The stylable element.
pseudo - Optional pseudo-element string (null if none).

getComputedStyle

public Value getComputedStyle(CSSStylableElement elt,
                              java.lang.String pseudo,
                              int propidx)
Returns the computed style of the given element/pseudo for the property corresponding to the given index.

getStyleSheetNodes

public java.util.List getStyleSheetNodes()
Returns the document CSSStyleSheetNodes in a list. This list is updated as the document is modified.

findStyleSheetNodes

protected void findStyleSheetNodes(Node n)
An auxiliary method for getStyleSheets().

findSelectorAttributes

protected void findSelectorAttributes(java.util.Set attrs,
                                      StyleSheet ss)
Finds the selector attributes in the given stylesheet.

parsePropertyValue

public Value parsePropertyValue(java.lang.String prop,
                                java.lang.String value)
Parses and creates a property value.
Parameters:
prop - The property name.
value - The property value.

parseStyleDeclaration

public StyleDeclaration parseStyleDeclaration(java.lang.String value)
Parses and creates a style declaration.
Parameters:
value - The style declaration text.

parseStyleSheet

public StyleSheet parseStyleSheet(java.net.URL uri,
                                  java.lang.String media)
                           throws DOMException
Parses and creates a new style-sheet.
Parameters:
uri - The style-sheet URI.
media - The target media of the style-sheet.

parseStyleSheet

public StyleSheet parseStyleSheet(InputSource is,
                                  java.net.URL uri,
                                  java.lang.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.

parseStyleSheet

public void parseStyleSheet(StyleSheet ss,
                            java.net.URL uri)
                     throws DOMException
Parses and fills the given style-sheet.
Parameters:
ss - The stylesheet to fill.
uri - The base URI.

parseStyleSheet

public StyleSheet parseStyleSheet(java.lang.String rules,
                                  java.net.URL uri,
                                  java.lang.String media)
                           throws DOMException
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.

parseStyleSheet

public void parseStyleSheet(StyleSheet ss,
                            java.lang.String rules,
                            java.net.URL uri)
                     throws DOMException
Parses and fills the given style-sheet.
Parameters:
ss - The stylesheet to fill.
rules - The style-sheet rules to parse.
uri - The base URI.

parseStyleSheet

protected void parseStyleSheet(StyleSheet ss,
                               InputSource is,
                               java.net.URL uri)
                        throws java.io.IOException
Parses and fills the given style-sheet.
Parameters:
ss - The stylesheet to fill.
uri - The base URI.

putAuthorProperty

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.

addMatchingRules

protected void addMatchingRules(java.util.List rules,
                                StyleSheet ss,
                                Element elt,
                                java.lang.String pseudo)
Adds the rules matching the element/pseudo-element of given style sheet to the list.

addRules

protected void addRules(Element elt,
                        java.lang.String pseudo,
                        StyleMap sm,
                        java.util.List rules,
                        short origin)
Adds the rules contained in the given list to a stylemap.

sortRules

protected void sortRules(java.util.List rules,
                         Element elt,
                         java.lang.String pseudo)
Sorts the rules matching the element/pseudo-element of given style sheet to the list.

mediaMatch

protected boolean mediaMatch(SACMediaList ml)
Whether the given media list matches the media list of this CSSEngine object.

addCSSEngineListener

public void addCSSEngineListener(CSSEngineListener l)
Adds a CSS engine listener.

removeCSSEngineListener

public void removeCSSEngineListener(CSSEngineListener l)
Removes a CSS engine listener.

firePropertiesChangedEvent

protected void firePropertiesChangedEvent(Element target,
                                          int[] props)
Fires a CSSEngineEvent, given a list of modified properties.

inlineStyleAttributeUpdated

protected void inlineStyleAttributeUpdated(CSSStylableElement elt,
                                           StyleMap style,
                                           MutationEvent evt)
Called when the inline style of the given element has been updated.

invalidateTreeProperties

protected void invalidateTreeProperties(Node node)
Invalidates all the stylable elements descendant of the given node, and the node.

invalidateProperties

protected void invalidateProperties(Node node)
Invalidates all the properties of the given node.

propagateChanges

protected void propagateChanges(Node node,
                                int[] props)
Propagates the changes that occurs on the parent of the given node.

nonCSSPresentationalHintUpdated

protected void nonCSSPresentationalHintUpdated(CSSStylableElement elt,
                                               StyleMap style,
                                               java.lang.String property,
                                               MutationEvent evt)
Called when a non-CSS presentational hint has been updated.


Copyright © 2002 Apache Software Foundation. All Rights Reserved.