hillion 02/05/21 02:51:38
Modified: sources/org/apache/batik/bridge
BaseScriptingEnvironment.java
ScriptingEnvironment.java
sources/org/apache/batik/css/engine CSSEngine.java
sources/org/apache/batik/css/engine/sac
AbstractElementSelector.java CSSAndCondition.java
CSSAttributeCondition.java CSSChildSelector.java
CSSClassCondition.java CSSConditionFactory.java
CSSConditionalSelector.java
CSSDescendantSelector.java
CSSDirectAdjacentSelector.java CSSIdCondition.java
CSSLangCondition.java CSSPseudoClassCondition.java
ExtendedCondition.java ExtendedSelector.java
sources/org/apache/batik/dom/svg SVGOMStyleElement.java
SVGStyleSheetProcessingInstruction.java
Log:
- Added support for addition/modification/removal of CSS stylesheets,
- added support for attribute/id/adjacent selector and :first-child
dynamic updates,
- external scripts can now be gzipped.
Revision Changes Path
1.9 +7 -3
xml-batik/sources/org/apache/batik/bridge/BaseScriptingEnvironment.java
Index: BaseScriptingEnvironment.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/BaseScriptingEnvironment.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- BaseScriptingEnvironment.java 2 May 2002 12:40:59 -0000 1.8
+++ BaseScriptingEnvironment.java 21 May 2002 09:51:37 -0000 1.9
@@ -35,6 +35,7 @@
import org.apache.batik.script.InterpreterException;
import org.apache.batik.script.ScriptHandler;
+import org.apache.batik.util.ParsedURL;
import org.apache.batik.util.SVGConstants;
import org.w3c.dom.Document;
@@ -55,9 +56,10 @@
* This class is the base class for SVG scripting.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: BaseScriptingEnvironment.java,v 1.8 2002/05/02 12:40:59 vhardy Exp
$
+ * @version $Id: BaseScriptingEnvironment.java,v 1.9 2002/05/21 09:51:37 hillion
Exp $
*/
public class BaseScriptingEnvironment {
+
/**
* Tells whether the given SVG document is dynamic.
*/
@@ -307,7 +309,8 @@
url = new URL(XMLBaseSupport.getCascadedXMLBase(script));
url = new URL(url, href);
checkCompatibleScriptURL(type, url);
- reader = new InputStreamReader(url.openStream());
+ ParsedURL purl = new ParsedURL(url);
+ reader = new InputStreamReader(purl.openStream());
} else {
// Inline script.
Node n = script.getFirstChild();
@@ -353,7 +356,8 @@
docURL);
if (security == null) {
- security = new DefaultScriptSecurity(scriptType, scriptURL, docURL);
+ security = new DefaultScriptSecurity(scriptType, scriptURL,
+ docURL);
}
security.checkLoadScript();
1.28 +5 -3
xml-batik/sources/org/apache/batik/bridge/ScriptingEnvironment.java
Index: ScriptingEnvironment.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/ScriptingEnvironment.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- ScriptingEnvironment.java 14 May 2002 08:57:31 -0000 1.27
+++ ScriptingEnvironment.java 21 May 2002 09:51:38 -0000 1.28
@@ -47,7 +47,7 @@
* This class contains the informations needed by the SVG scripting.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: ScriptingEnvironment.java,v 1.27 2002/05/14 08:57:31 vhardy Exp $
+ * @version $Id: ScriptingEnvironment.java,v 1.28 2002/05/21 09:51:38 hillion Exp $
*/
public class ScriptingEnvironment extends BaseScriptingEnvironment {
@@ -332,10 +332,12 @@
target.addEventListener("DOMFocusIn", focusinListener, false);
}
if (elt.hasAttributeNS(null, "onfocusout")) {
- target.addEventListener("DOMFocusOut", focusoutListener, false);
+ target.addEventListener("DOMFocusOut", focusoutListener,
+ false);
}
if (elt.hasAttributeNS(null, "onactivate")) {
- target.addEventListener("DOMActivate", activateListener, false);
+ target.addEventListener("DOMActivate", activateListener,
+ false);
}
if (elt.hasAttributeNS(null, "onclick")) {
target.addEventListener("click", clickListener, false);
1.12 +300 -76 xml-batik/sources/org/apache/batik/css/engine/CSSEngine.java
Index: CSSEngine.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/css/engine/CSSEngine.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- CSSEngine.java 16 May 2002 16:33:41 -0000 1.11
+++ CSSEngine.java 21 May 2002 09:51:38 -0000 1.12
@@ -58,7 +58,7 @@
* This is the base class for all the CSS engines.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSEngine.java,v 1.11 2002/05/16 16:33:41 hillion Exp $
+ * @version $Id: CSSEngine.java,v 1.12 2002/05/21 09:51:38 hillion Exp $
*/
public abstract class CSSEngine {
@@ -277,16 +277,56 @@
protected EventListener domAttrModifiedListener;
/**
+ * The DOMNodeInserted event listener.
+ */
+ protected EventListener domNodeInsertedListener;
+
+ /**
+ * The DOMNodeRemoved event listener.
+ */
+ protected EventListener domNodeRemovedListener;
+
+ /**
+ * The DOMSubtreeModified event listener.
+ */
+ protected EventListener domSubtreeModifiedListener;
+
+ /**
+ * The DOMCharacterDataModified event listener.
+ */
+ protected EventListener domCharacterDataModifiedListener;
+
+ /**
+ * Whether a style sheet as been removed from the document.
+ */
+ protected boolean styleSheetRemoved;
+
+ /**
+ * The right sibling of the last removed node.
+ */
+ protected Node removedStylableElementSibling;
+
+ /**
* The listeners.
*/
protected List listeners = Collections.synchronizedList(new LinkedList());
/**
+ * The attributes found in stylesheets selectors.
+ */
+ protected Set selectorAttributes;
+
+ /**
* Used to fire a change event for all the properties.
*/
protected final int[] ALL_PROPERTIES;
/**
+ * The CSS condition factory.
+ */
+ protected CSSConditionFactory cssConditionFactory;
+
+ /**
* Creates a new CSSEngine.
* @param doc The associated document.
* @param uri The document URI.
@@ -328,6 +368,8 @@
classLocalName = cln;
cssContext = ctx;
+ cssConditionFactory = new CSSConditionFactory(cns, cln, null, "id");
+
int len = vm.length;
indexes = new StringIntMap(len);
valueManagers = vm;
@@ -373,6 +415,23 @@
et.addEventListener("DOMAttrModified",
domAttrModifiedListener,
false);
+ domNodeInsertedListener = new DOMNodeInsertedListener();
+ et.addEventListener("DOMNodeInserted",
+ domNodeInsertedListener,
+ false);
+ domNodeRemovedListener = new DOMNodeRemovedListener();
+ et.addEventListener("DOMNodeRemoved",
+ domNodeRemovedListener,
+ false);
+ domSubtreeModifiedListener = new DOMSubtreeModifiedListener();
+ et.addEventListener("DOMSubtreeModified",
+ domSubtreeModifiedListener,
+ false);
+ domCharacterDataModifiedListener =
+ new DOMCharacterDataModifiedListener();
+ et.addEventListener("DOMCharacterDataModified",
+ domCharacterDataModifiedListener,
+ false);
styleDeclarationUpdateHandler =
new StyleDeclarationUpdateHandler();
}
@@ -394,6 +453,18 @@
et.removeEventListener("DOMAttrModified",
domAttrModifiedListener,
false);
+ et.removeEventListener("DOMNodeInserted",
+ domNodeInsertedListener,
+ false);
+ et.removeEventListener("DOMNodeRemoved",
+ domNodeRemovedListener,
+ false);
+ et.removeEventListener("DOMSubtreeModified",
+ domSubtreeModifiedListener,
+ false);
+ et.removeEventListener("DOMCharacterDataModified",
+ domCharacterDataModifiedListener,
+ false);
}
}
@@ -642,7 +713,7 @@
if (style.length() > 0) {
try {
parser.setSelectorFactory(CSSSelectorFactory.INSTANCE);
- parser.setConditionFactory(CSSConditionFactory.INSTANCE);
+ parser.setConditionFactory(cssConditionFactory);
styleDeclarationDocumentHandler.styleMap = result;
parser.setDocumentHandler(styleDeclarationDocumentHandler);
parser.parseStyleDeclaration(style);
@@ -723,13 +794,66 @@
public List getStyleSheetNodes() {
if (styleSheetNodes == null) {
styleSheetNodes = new ArrayList();
+ selectorAttributes = new HashSet();
// Find all the style-sheets in the document.
findStyleSheetNodes(document);
+ int len = styleSheetNodes.size();
+ for (int i = 0; i < len; i++) {
+ CSSStyleSheetNode ssn;
+ ssn = (CSSStyleSheetNode)styleSheetNodes.get(i);
+ StyleSheet ss = ssn.getCSSStyleSheet();
+ if (ss != null) {
+ findSelectorAttributes(selectorAttributes, ss);
+ }
+ }
}
return styleSheetNodes;
}
/**
+ * An auxiliary method for getStyleSheets().
+ */
+ protected void findStyleSheetNodes(Node n) {
+ if (n instanceof CSSStyleSheetNode) {
+ styleSheetNodes.add(n);
+ }
+ for (Node nd = n.getFirstChild();
+ nd != null;
+ nd = nd.getNextSibling()) {
+ findStyleSheetNodes(nd);
+ }
+ }
+
+ /**
+ * Finds the selector attributes in the given stylesheet.
+ */
+ protected void findSelectorAttributes(Set attrs, StyleSheet ss) {
+ int len = ss.getSize();
+ for (int i = 0; i < len; i++) {
+ Rule r = ss.getRule(i);
+ switch (r.getType()) {
+ case StyleRule.TYPE:
+ StyleRule style = (StyleRule)r;
+ SelectorList sl = style.getSelectorList();
+ int slen = sl.getLength();
+ for (int j = 0; j < slen; j++) {
+ ExtendedSelector s = (ExtendedSelector)sl.item(j);
+ s.fillAttributeSet(attrs);
+ }
+ break;
+
+ case MediaRule.TYPE:
+ case ImportRule.TYPE:
+ MediaRule mr = (MediaRule)r;
+ if (mediaMatch(mr.getMediaList())) {
+ findSelectorAttributes(attrs, mr);
+ }
+ break;
+ }
+ }
+ }
+
+ /**
* Parses and creates a property value.
* @param prop The property name.
* @param value The property value.
@@ -760,7 +884,7 @@
public StyleDeclaration parseStyleDeclaration(String value) {
try {
parser.setSelectorFactory(CSSSelectorFactory.INSTANCE);
- parser.setConditionFactory(CSSConditionFactory.INSTANCE);
+ parser.setConditionFactory(cssConditionFactory);
cssBaseURI = documentURI;
styleDeclarationBuilder.styleDeclaration = new StyleDeclaration();
parser.setDocumentHandler(styleDeclarationBuilder);
@@ -893,7 +1017,7 @@
protected void parseStyleSheet(StyleSheet ss, InputSource is, URL uri)
throws IOException {
parser.setSelectorFactory(CSSSelectorFactory.INSTANCE);
- parser.setConditionFactory(CSSConditionFactory.INSTANCE);
+ parser.setConditionFactory(cssConditionFactory);
cssBaseURI = uri;
styleSheetDocumentHandler.styleSheet = ss;
parser.setDocumentHandler(styleSheetDocumentHandler);
@@ -915,20 +1039,6 @@
}
/**
- * An auxiliary method for getStyleSheets().
- */
- protected void findStyleSheetNodes(Node n) {
- if (n instanceof CSSStyleSheetNode) {
- styleSheetNodes.add(n);
- }
- for (Node nd = n.getFirstChild();
- nd != null;
- nd = nd.getNextSibling()) {
- findStyleSheetNodes(nd);
- }
- }
-
- /**
* Adds the rules of the given style-sheet to a style-map.
*/
protected void putStyleSheetRules(Element elt,
@@ -1481,7 +1591,7 @@
element = elt;
try {
parser.setSelectorFactory(CSSSelectorFactory.INSTANCE);
- parser.setConditionFactory(CSSConditionFactory.INSTANCE);
+ parser.setConditionFactory(cssConditionFactory);
styleDeclarationUpdateHandler.styleMap = style;
parser.setDocumentHandler(styleDeclarationUpdateHandler);
parser.parseStyleDeclaration(decl);
@@ -1533,10 +1643,6 @@
n != null;
n = n.getNextSibling()) {
propagateChanges(n, ALL_PROPERTIES);
- c = getImportedChild(n);
- if (c != null) {
- propagateChanges(c, ALL_PROPERTIES);
- }
}
} else {
int count = 0;
@@ -1589,16 +1695,12 @@
Node c = getImportedChild(elt);
if (c != null) {
- propagateChanges(c, ALL_PROPERTIES);
+ propagateChanges(c, props);
}
for (Node n = elt.getFirstChild();
n != null;
n = n.getNextSibling()) {
propagateChanges(n, props);
- c = getImportedChild(n);
- if (c != null) {
- propagateChanges(c, props);
- }
}
}
}
@@ -1625,6 +1727,55 @@
}
/**
+ * Invalidates all the stylable elements descendant of the given
+ * node, and the node.
+ */
+ protected void invalidateTreeProperties(Node node) {
+ if (node instanceof CSSStylableElement) {
+ CSSStylableElement elt = (CSSStylableElement)node;
+ StyleMap style = elt.getComputedStyleMap(null);
+ if (style != null) {
+ elt.setComputedStyleMap(null, null);
+ firePropertiesChangedEvent(elt, ALL_PROPERTIES);
+ }
+ }
+
+ Node c = getImportedChild(node);
+ if (c != null) {
+ propagateChanges(c, ALL_PROPERTIES);
+ }
+ for (Node n = node.getFirstChild();
+ n != null;
+ n = n.getNextSibling()) {
+ invalidateTreeProperties(n);
+ }
+ }
+
+ /**
+ * Invalidates all the properties of the given node.
+ */
+ protected void invalidateProperties(Node node) {
+ if (node instanceof CSSStylableElement) {
+ CSSStylableElement elt = (CSSStylableElement)node;
+ StyleMap style = elt.getComputedStyleMap(null);
+ if (style != null) {
+ elt.setComputedStyleMap(null, null);
+ firePropertiesChangedEvent(elt, ALL_PROPERTIES);
+ }
+ }
+
+ Node c = getImportedChild(node);
+ if (c != null) {
+ propagateChanges(c, ALL_PROPERTIES);
+ }
+ for (Node n = node.getFirstChild();
+ n != null;
+ n = n.getNextSibling()) {
+ propagateChanges(n, ALL_PROPERTIES);
+ }
+ }
+
+ /**
* Propagates the changes that occurs on the parent of the given node.
*/
protected void propagateChanges(Node node, int[] props) {
@@ -1699,16 +1850,12 @@
if (props != null) {
Node c = getImportedChild(node);
if (c != null) {
- propagateChanges(c, ALL_PROPERTIES);
+ propagateChanges(c, props);
}
for (Node n = node.getFirstChild();
n != null;
n = n.getNextSibling()) {
propagateChanges(n, props);
- c = getImportedChild(n);
- if (c != null) {
- propagateChanges(c, props);
- }
}
}
}
@@ -1858,15 +2005,100 @@
Node c = getImportedChild(elt);
if (c != null) {
- propagateChanges(c, ALL_PROPERTIES);
+ propagateChanges(c, props);
}
for (Node n = elt.getFirstChild();
n != null;
n = n.getNextSibling()) {
propagateChanges(n, props);
- c = getImportedChild(n);
- if (c != null) {
- propagateChanges(c, props);
+ }
+ }
+
+ /**
+ * To handle the insertion of a CSSStyleSheetNode in the
+ * associated document.
+ */
+ protected class DOMNodeInsertedListener implements EventListener {
+ public void handleEvent(Event evt) {
+ EventTarget et = evt.getTarget();
+ if (et instanceof CSSStyleSheetNode) {
+ styleSheetNodes = null;
+
+ // Invalidate all the CSSStylableElements in the document.
+ invalidateTreeProperties(document.getDocumentElement());
+ return;
+ }
+ if (et instanceof CSSStylableElement) {
+ // Invalidate the CSSStylableElement siblings, to
+ // correctly match the adjacent selectors and
+ // first-child pseudo-class.
+ for (Node n = ((Node)evt.getTarget()).getNextSibling();
+ n != null;
+ n = n.getNextSibling()) {
+ invalidateProperties(n);
+ }
+ }
+ }
+ }
+
+ /**
+ * To handle the removal of a CSSStyleSheetNode from the
+ * associated document.
+ */
+ protected class DOMNodeRemovedListener implements EventListener {
+ public void handleEvent(Event evt) {
+ EventTarget et = evt.getTarget();
+ if (et instanceof CSSStyleSheetNode) {
+ // Wait for the DOMSubtreeModified to do the invalidations
+ // because at this time the node is in the tree.
+ styleSheetRemoved = true;
+ } else if (et instanceof CSSStylableElement) {
+ // Wait for the DOMSubtreeModified to do the invalidations
+ // because at this time the node is in the tree.
+ removedStylableElementSibling = ((Node)et).getNextSibling();
+ }
+ // Clears the computed styles in the removed tree.
+ disposeStyleMaps((Node)et);
+ }
+ }
+
+ /**
+ * To handle the removal of a CSSStyleSheetNode from the
+ * associated document.
+ */
+ protected class DOMSubtreeModifiedListener implements EventListener {
+ public void handleEvent(Event evt) {
+ if (styleSheetRemoved) {
+ styleSheetRemoved = false;
+ styleSheetNodes = null;
+
+ // Invalidate all the CSSStylableElements in the document.
+ invalidateTreeProperties(document.getDocumentElement());
+ } else if (removedStylableElementSibling != null) {
+ // Invalidate the CSSStylableElement siblings, to
+ // correctly match the adjacent selectors and
+ // first-child pseudo-class.
+ for (Node n = removedStylableElementSibling;
+ n != null;
+ n = n.getNextSibling()) {
+ invalidateProperties(n);
+ }
+ removedStylableElementSibling = null;
+ }
+ }
+ }
+
+ /**
+ * To handle the modification of a CSSStyleSheetNode.
+ */
+ protected class DOMCharacterDataModifiedListener implements EventListener {
+ public void handleEvent(Event evt) {
+ Node n = (Node)evt.getTarget();
+ if (n.getParentNode() instanceof CSSStyleSheetNode) {
+ styleSheetNodes = null;
+
+ // Invalidate all the CSSStylableElements in the document.
+ invalidateTreeProperties(document.getDocumentElement());
}
}
}
@@ -1907,52 +2139,44 @@
return;
}
}
- if ((attrNS == null && classNamespaceURI == null) ||
- (attrNS != null && attrNS.equals(classNamespaceURI))) {
- String name = (attrNS == null)
- ? attr.getNodeName()
- : attr.getLocalName();
- if (name.equals(classLocalName)) {
- // The class attribute has been modified...
- // ...invalidate all the properties.
-
- elt.setComputedStyleMap(null, null);
- firePropertiesChangedEvent(elt, ALL_PROPERTIES);
+ String name = (attrNS == null)
+ ? attr.getNodeName()
+ : attr.getLocalName();
- Node c = getImportedChild(elt);
- if (c != null) {
- propagateChanges(c, ALL_PROPERTIES);
+ if (nonCSSPresentationalHints != null) {
+ if ((attrNS == null &&
+ nonCSSPresentationalHintsNamespaceURI == null) ||
+ (attrNS != null &&
+ attrNS.equals(nonCSSPresentationalHintsNamespaceURI))) {
+ if (nonCSSPresentationalHints.contains(name)) {
+ // The 'name' attribute which represents a non CSS
+ // presentational hint has been modified.
+
+ nonCSSPresentationalHintUpdated(elt, style, name,
+ mevt);
+ return;
}
- for (Node n = elt.getFirstChild();
- n != null;
- n = n.getNextSibling()) {
- propagateChanges(n, ALL_PROPERTIES);
- c = getImportedChild(n);
- if (c != null) {
- propagateChanges(c, ALL_PROPERTIES);
- }
- }
-
- return;
}
}
- if (nonCSSPresentationalHints == null) {
- return;
- }
- if ((attrNS == null &&
- nonCSSPresentationalHintsNamespaceURI == null) ||
- (attrNS != null &&
- attrNS.equals(nonCSSPresentationalHintsNamespaceURI))) {
- String name = (attrNS == null)
- ? attr.getNodeName()
- : attr.getLocalName();
- if (nonCSSPresentationalHints.contains(name)) {
- // The 'name' attribute which represents a non CSS
- // presentational hint has been modified.
+ if (selectorAttributes != null &&
+ selectorAttributes.contains(name)) {
+ // An attribute has been modified, invalidate all the
+ // properties to correctly match attribute selectors.
- nonCSSPresentationalHintUpdated(elt, style, name, mevt);
+ elt.setComputedStyleMap(null, null);
+
+ firePropertiesChangedEvent(elt, ALL_PROPERTIES);
+
+ Node c = getImportedChild(elt);
+ if (c != null) {
+ propagateChanges(c, ALL_PROPERTIES);
+ }
+ for (Node n = elt.getFirstChild();
+ n != null;
+ n = n.getNextSibling()) {
+ propagateChanges(n, ALL_PROPERTIES);
}
}
}
1.2 +9 -1
xml-batik/sources/org/apache/batik/css/engine/sac/AbstractElementSelector.java
Index: AbstractElementSelector.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/AbstractElementSelector.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractElementSelector.java 18 Mar 2002 10:31:09 -0000 1.1
+++ AbstractElementSelector.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.css.sac.ElementSelector;
/**
@@ -15,7 +17,7 @@
* interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: AbstractElementSelector.java,v 1.1 2002/03/18 10:31:09 hillion Exp
$
+ * @version $Id: AbstractElementSelector.java,v 1.2 2002/05/21 09:51:38 hillion Exp
$
*/
public abstract class AbstractElementSelector
implements ElementSelector,
@@ -66,5 +68,11 @@
*/
public String getLocalName() {
return localName;
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
}
}
1.2 +11 -1
xml-batik/sources/org/apache/batik/css/engine/sac/CSSAndCondition.java
Index: CSSAndCondition.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSAndCondition.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSAndCondition.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSAndCondition.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.css.sac.Condition;
import org.w3c.dom.Element;
@@ -16,7 +18,7 @@
* {@link org.w3c.css.sac.CombinatorCondition} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSAndCondition.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: CSSAndCondition.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public class CSSAndCondition extends AbstractCombinatorCondition {
/**
@@ -40,6 +42,14 @@
public boolean match(Element e, String pseudoE) {
return ((ExtendedCondition)getFirstCondition()).match(e, pseudoE) &&
((ExtendedCondition)getSecondCondition()).match(e, pseudoE);
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
+ ((ExtendedCondition)getFirstCondition()).fillAttributeSet(attrSet);
+ ((ExtendedCondition)getSecondCondition()).fillAttributeSet(attrSet);
}
/**
1.2 +10 -1
xml-batik/sources/org/apache/batik/css/engine/sac/CSSAttributeCondition.java
Index: CSSAttributeCondition.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSAttributeCondition.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSAttributeCondition.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSAttributeCondition.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.dom.Element;
/**
@@ -15,7 +17,7 @@
* {@link org.w3c.css.sac.AttributeCondition} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSAttributeCondition.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: CSSAttributeCondition.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public class CSSAttributeCondition extends AbstractAttributeCondition {
/**
@@ -101,6 +103,13 @@
return !e.getAttribute(getLocalName()).equals("");
}
return e.getAttribute(getLocalName()).equals(val);
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
+ attrSet.add(localName);
}
/**
1.2 +11 -1
xml-batik/sources/org/apache/batik/css/engine/sac/CSSChildSelector.java
Index: CSSChildSelector.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSChildSelector.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSChildSelector.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSChildSelector.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.css.sac.Selector;
import org.w3c.css.sac.SimpleSelector;
import org.w3c.dom.Element;
@@ -18,7 +20,7 @@
* {@link org.w3c.css.sac.DescendantSelector} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSChildSelector.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: CSSChildSelector.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public class CSSChildSelector extends AbstractDescendantSelector {
@@ -48,6 +50,14 @@
((ExtendedSelector)getSimpleSelector()).match(e, pseudoE);
}
return false;
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
+ ((ExtendedSelector)getAncestorSelector()).fillAttributeSet(attrSet);
+ ((ExtendedSelector)getSimpleSelector()).fillAttributeSet(attrSet);
}
/**
1.2 +4 -3
xml-batik/sources/org/apache/batik/css/engine/sac/CSSClassCondition.java
Index: CSSClassCondition.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSClassCondition.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSClassCondition.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSClassCondition.java 21 May 2002 09:51:38 -0000 1.2
@@ -17,16 +17,17 @@
* {@link org.w3c.css.sac.AttributeCondition} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSClassCondition.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: CSSClassCondition.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public class CSSClassCondition extends CSSAttributeCondition {
/**
* Creates a new CSSAttributeCondition object.
*/
- public CSSClassCondition(String namespaceURI,
+ public CSSClassCondition(String localName,
+ String namespaceURI,
String value) {
- super("class", namespaceURI, true, value);
+ super(localName, namespaceURI, true, value);
}
/**
1.2 +27 -7
xml-batik/sources/org/apache/batik/css/engine/sac/CSSConditionFactory.java
Index: CSSConditionFactory.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSConditionFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSConditionFactory.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSConditionFactory.java 21 May 2002 09:51:38 -0000 1.2
@@ -24,19 +24,39 @@
* {@link org.w3c.css.sac.ConditionFactory} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSConditionFactory.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: CSSConditionFactory.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public class CSSConditionFactory implements ConditionFactory {
/**
- * The instance of this class.
+ * The class attribute namespace URI.
*/
- public final static ConditionFactory INSTANCE = new CSSConditionFactory();
+ protected String classNamespaceURI;
/**
- * This class does not need to be instantiated.
+ * The class attribute local name.
*/
- protected CSSConditionFactory() {
+ protected String classLocalName;
+
+ /**
+ * The id attribute namespace URI.
+ */
+ protected String idNamespaceURI;
+
+ /**
+ * The id attribute local name.
+ */
+ protected String idLocalName;
+
+ /**
+ * Creates a new condition factory.
+ */
+ public CSSConditionFactory(String cns, String cln,
+ String idns, String idln) {
+ classNamespaceURI = cns;
+ classLocalName = cln;
+ idNamespaceURI = idns;
+ idLocalName = idln;
}
/**
@@ -98,7 +118,7 @@
*/
public AttributeCondition createIdCondition(String value)
throws CSSException {
- return new CSSIdCondition(value);
+ return new CSSIdCondition(idNamespaceURI, idLocalName, value);
}
/**
@@ -143,7 +163,7 @@
public AttributeCondition createClassCondition(String namespaceURI,
String value)
throws CSSException {
- return new CSSClassCondition(namespaceURI, value);
+ return new CSSClassCondition(classLocalName, classNamespaceURI, value);
}
/**
1.2 +11 -1
xml-batik/sources/org/apache/batik/css/engine/sac/CSSConditionalSelector.java
Index: CSSConditionalSelector.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSConditionalSelector.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSConditionalSelector.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSConditionalSelector.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.css.sac.Condition;
import org.w3c.css.sac.ConditionalSelector;
import org.w3c.css.sac.SimpleSelector;
@@ -18,7 +20,7 @@
* {@link org.w3c.css.sac.ConditionalSelector} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSConditionalSelector.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: CSSConditionalSelector.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public class CSSConditionalSelector
implements ConditionalSelector,
@@ -69,6 +71,14 @@
public boolean match(Element e, String pseudoE) {
return ((ExtendedSelector)getSimpleSelector()).match(e, pseudoE) &&
((ExtendedCondition)getCondition()).match(e, pseudoE);
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
+ ((ExtendedSelector)getSimpleSelector()).fillAttributeSet(attrSet);
+ ((ExtendedCondition)getCondition()).fillAttributeSet(attrSet);
}
/**
1.2 +10 -1
xml-batik/sources/org/apache/batik/css/engine/sac/CSSDescendantSelector.java
Index: CSSDescendantSelector.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSDescendantSelector.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSDescendantSelector.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSDescendantSelector.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.css.sac.Selector;
import org.w3c.css.sac.SimpleSelector;
import org.w3c.dom.Element;
@@ -18,7 +20,7 @@
* {@link org.w3c.css.sac.DescendantSelector} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSDescendantSelector.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: CSSDescendantSelector.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public class CSSDescendantSelector extends AbstractDescendantSelector {
@@ -53,6 +55,13 @@
}
}
return false;
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
+ ((ExtendedSelector)getSimpleSelector()).fillAttributeSet(attrSet);
}
/**
1.2 +11 -1
xml-batik/sources/org/apache/batik/css/engine/sac/CSSDirectAdjacentSelector.java
Index: CSSDirectAdjacentSelector.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSDirectAdjacentSelector.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSDirectAdjacentSelector.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSDirectAdjacentSelector.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.css.sac.Selector;
import org.w3c.css.sac.SimpleSelector;
import org.w3c.dom.Element;
@@ -18,7 +20,7 @@
* {@link org.w3c.css.sac.DescendantSelector} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSDirectAdjacentSelector.java,v 1.1 2002/03/18 10:31:09 hillion
Exp $
+ * @version $Id: CSSDirectAdjacentSelector.java,v 1.2 2002/05/21 09:51:38 hillion
Exp $
*/
public class CSSDirectAdjacentSelector extends AbstractSiblingSelector {
@@ -53,6 +55,14 @@
((ExtendedSelector)getSiblingSelector()).match(e, pseudoE);
}
return false;
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
+ ((ExtendedSelector)getSelector()).fillAttributeSet(attrSet);
+ ((ExtendedSelector)getSiblingSelector()).fillAttributeSet(attrSet);
}
/**
1.2 +26 -4
xml-batik/sources/org/apache/batik/css/engine/sac/CSSIdCondition.java
Index: CSSIdCondition.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSIdCondition.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSIdCondition.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSIdCondition.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.apache.batik.css.engine.CSSStylableElement;
import org.w3c.dom.Element;
@@ -16,15 +18,28 @@
* {@link org.w3c.css.sac.AttributeCondition} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSIdCondition.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: CSSIdCondition.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public class CSSIdCondition extends AbstractAttributeCondition {
+
+ /**
+ * The id attribute namespace URI.
+ */
+ protected String namespaceURI;
+
+ /**
+ * The id attribute local name.
+ */
+ protected String localName;
+
/**
* Creates a new CSSAttributeCondition object.
*/
- public CSSIdCondition(String value) {
+ public CSSIdCondition(String ns, String ln, String value) {
super(value);
+ namespaceURI = ns;
+ localName = ln;
}
/**
@@ -40,7 +55,7 @@
* org.w3c.css.sac.AttributeCondition#getNamespaceURI()}.
*/
public String getNamespaceURI() {
- return null;
+ return namespaceURI;
}
/**
@@ -48,7 +63,7 @@
* org.w3c.css.sac.AttributeCondition#getLocalName()}.
*/
public String getLocalName() {
- return "id";
+ return localName;
}
/**
@@ -66,6 +81,13 @@
return (e instanceof CSSStylableElement)
? ((CSSStylableElement)e).getXMLId().equals(getValue())
: false;
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
+ attrSet.add(localName);
}
/**
1.2 +10 -1
xml-batik/sources/org/apache/batik/css/engine/sac/CSSLangCondition.java
Index: CSSLangCondition.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSLangCondition.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSLangCondition.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSLangCondition.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.css.sac.LangCondition;
import org.w3c.dom.Element;
@@ -16,7 +18,7 @@
* {@link org.w3c.css.sac.LangCondition} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSLangCondition.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: CSSLangCondition.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public class CSSLangCondition
@@ -73,6 +75,13 @@
*/
public boolean match(Element e, String pseudoE) {
return e.getAttribute("lang").startsWith(getLang());
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
+ attrSet.add("lang");
}
/**
1.2 +9 -1
xml-batik/sources/org/apache/batik/css/engine/sac/CSSPseudoClassCondition.java
Index: CSSPseudoClassCondition.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/CSSPseudoClassCondition.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CSSPseudoClassCondition.java 18 Mar 2002 10:31:09 -0000 1.1
+++ CSSPseudoClassCondition.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.apache.batik.css.engine.CSSStylableElement;
import org.w3c.dom.Element;
@@ -16,7 +18,7 @@
* {@link org.w3c.css.sac.AttributeCondition} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: CSSPseudoClassCondition.java,v 1.1 2002/03/18 10:31:09 hillion Exp
$
+ * @version $Id: CSSPseudoClassCondition.java,v 1.2 2002/05/21 09:51:38 hillion Exp
$
*/
public class CSSPseudoClassCondition extends AbstractAttributeCondition {
/**
@@ -83,6 +85,12 @@
return (e instanceof CSSStylableElement)
? ((CSSStylableElement)e).isPseudoInstanceOf(getValue())
: false;
+ }
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ public void fillAttributeSet(Set attrSet) {
}
/**
1.2 +8 -1
xml-batik/sources/org/apache/batik/css/engine/sac/ExtendedCondition.java
Index: ExtendedCondition.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/ExtendedCondition.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ExtendedCondition.java 18 Mar 2002 10:31:09 -0000 1.1
+++ ExtendedCondition.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.css.sac.Condition;
import org.w3c.dom.Element;
@@ -16,7 +18,7 @@
* {@link org.w3c.css.sac.Condition} interface.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: ExtendedCondition.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: ExtendedCondition.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public interface ExtendedCondition extends Condition {
@@ -29,4 +31,9 @@
* Returns the specificity of this condition.
*/
int getSpecificity();
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ void fillAttributeSet(Set attrSet);
}
1.2 +8 -1
xml-batik/sources/org/apache/batik/css/engine/sac/ExtendedSelector.java
Index: ExtendedSelector.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/css/engine/sac/ExtendedSelector.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ExtendedSelector.java 18 Mar 2002 10:31:09 -0000 1.1
+++ ExtendedSelector.java 21 May 2002 09:51:38 -0000 1.2
@@ -8,6 +8,8 @@
package org.apache.batik.css.engine.sac;
+import java.util.Set;
+
import org.w3c.css.sac.Selector;
import org.w3c.dom.Element;
@@ -15,7 +17,7 @@
* This interface extends the {@link org.w3c.css.sac.Selector}.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: ExtendedSelector.java,v 1.1 2002/03/18 10:31:09 hillion Exp $
+ * @version $Id: ExtendedSelector.java,v 1.2 2002/05/21 09:51:38 hillion Exp $
*/
public interface ExtendedSelector extends Selector {
@@ -28,4 +30,9 @@
* Returns the specificity of this selector.
*/
int getSpecificity();
+
+ /**
+ * Fills the given set with the attribute names found in this selector.
+ */
+ void fillAttributeSet(Set attrSet);
}
1.12 +30 -13
xml-batik/sources/org/apache/batik/dom/svg/SVGOMStyleElement.java
Index: SVGOMStyleElement.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMStyleElement.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGOMStyleElement.java 24 Apr 2002 13:01:26 -0000 1.11
+++ SVGOMStyleElement.java 21 May 2002 09:51:38 -0000 1.12
@@ -20,15 +20,21 @@
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
-import org.w3c.dom.stylesheets.LinkStyle;
+
import org.w3c.dom.css.DOMImplementationCSS;
+
+import org.w3c.dom.events.Event;
+import org.w3c.dom.events.EventListener;
+
+import org.w3c.dom.stylesheets.LinkStyle;
+
import org.w3c.dom.svg.SVGStyleElement;
/**
* This class implements {@link SVGStyleElement}.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: SVGOMStyleElement.java,v 1.11 2002/04/24 13:01:26 hillion Exp $
+ * @version $Id: SVGOMStyleElement.java,v 1.12 2002/05/21 09:51:38 hillion Exp $
*/
public class SVGOMStyleElement
extends SVGOMElement
@@ -51,12 +57,18 @@
/**
* The style sheet.
*/
- protected org.w3c.dom.stylesheets.StyleSheet sheet;
+ protected transient org.w3c.dom.stylesheets.StyleSheet sheet;
/**
- * The style-sheet.
+ * The DOM CSS style-sheet.
*/
- protected StyleSheet styleSheet;
+ protected transient StyleSheet styleSheet;
+
+ /**
+ * The listener used to track the content changes.
+ */
+ protected transient EventListener domCharacterDataModifiedListener =
+ new DOMCharacterDataModifiedListener();
/**
* Creates a new SVGOMStyleElement object.
@@ -71,7 +83,6 @@
*/
public SVGOMStyleElement(String prefix, AbstractDocument owner) {
super(prefix, owner);
-
}
/**
@@ -112,6 +123,9 @@
}
String media = getAttributeNS(null, SVG_MEDIA_ATTRIBUTE);
styleSheet = e.parseStyleSheet(text, burl, media);
+ addEventListener("DOMCharacterDataModified",
+ domCharacterDataModifiedListener,
+ false);
}
}
return styleSheet;
@@ -126,13 +140,6 @@
}
/**
- * Returns the URI of the referenced stylesheet.
- */
- public String getStyleSheetURI() {
- return XMLBaseSupport.getCascadedXMLBase(this);
- }
-
- /**
* <b>DOM</b>: Implements {@link SVGStyleElement#getXMLspace()}.
*/
public String getXMLspace() {
@@ -203,5 +210,15 @@
*/
protected Node newNode() {
return new SVGOMStyleElement();
+ }
+
+ /**
+ * The DOMCharacterDataModified listener.
+ */
+ protected class DOMCharacterDataModifiedListener
+ implements EventListener {
+ public void handleEvent(Event evt) {
+ styleSheet = null;
+ }
}
}
1.4 +11 -1
xml-batik/sources/org/apache/batik/dom/svg/SVGStyleSheetProcessingInstruction.java
Index: SVGStyleSheetProcessingInstruction.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGStyleSheetProcessingInstruction.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SVGStyleSheetProcessingInstruction.java 29 Apr 2002 12:25:05 -0000 1.3
+++ SVGStyleSheetProcessingInstruction.java 21 May 2002 09:51:38 -0000 1.4
@@ -25,6 +25,7 @@
import org.w3c.css.sac.InputSource;
+import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
/**
@@ -32,7 +33,7 @@
* instructions.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a>
- * @version $Id: SVGStyleSheetProcessingInstruction.java,v 1.3 2002/04/29 12:25:05
hillion Exp $
+ * @version $Id: SVGStyleSheetProcessingInstruction.java,v 1.4 2002/05/21 09:51:38
hillion Exp $
*/
public class SVGStyleSheetProcessingInstruction
extends StyleSheetProcessingInstruction
@@ -105,6 +106,15 @@
}
}
return styleSheet;
+ }
+
+ /**
+ * <b>DOM</b>: Implements {@link
+ * org.w3c.dom.ProcessingInstruction#setData(String)}.
+ */
+ public void setData(String data) throws DOMException {
+ super.setData(data);
+ styleSheet = null;
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]