hillion 02/04/29 05:25:05 Modified: sources/org/apache/batik/css/engine CSSEngine.java sources/org/apache/batik/css/engine/value AbstractValueFactory.java sources/org/apache/batik/dom/svg SVGStyleSheetProcessingInstruction.java Log: Modified Batik's CSS to used ParsedURL. Revision Changes Path 1.10 +24 -1 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.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- CSSEngine.java 15 Apr 2002 17:01:44 -0000 1.9 +++ CSSEngine.java 29 Apr 2002 12:25:05 -0000 1.10 @@ -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.9 2002/04/15 17:01:44 hillion Exp $ + * @version $Id: CSSEngine.java,v 1.10 2002/04/29 12:25:05 hillion Exp $ */ public abstract class CSSEngine { @@ -796,6 +796,29 @@ throw new DOMException(DOMException.SYNTAX_ERR, s); } parseStyleSheet(ss, uri); + return ss; + } + + /** + * Parses and creates a new style-sheet. + * @param is The input source used to read the document. + * @param uri The base URI. + * @param media The target media of the style-sheet. + */ + public StyleSheet parseStyleSheet(InputSource is, URL uri, String media) + throws DOMException { + StyleSheet ss = new StyleSheet(); + try { + ss.setMedia(parser.parseMedia(media)); + parseStyleSheet(ss, is, uri); + } catch (Exception e) { + String m = e.getMessage(); + String s = + Messages.formatMessage("syntax.error.at", + new Object[] { documentURI.toString(), + (m == null) ? "" : m }); + throw new DOMException(DOMException.SYNTAX_ERR, s); + } return ss; } 1.2 +4 -7 xml-batik/sources/org/apache/batik/css/engine/value/AbstractValueFactory.java Index: AbstractValueFactory.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/css/engine/value/AbstractValueFactory.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AbstractValueFactory.java 18 Mar 2002 10:28:22 -0000 1.1 +++ AbstractValueFactory.java 29 Apr 2002 12:25:05 -0000 1.2 @@ -8,18 +8,19 @@ package org.apache.batik.css.engine.value; -import java.net.MalformedURLException; import java.net.URL; import org.w3c.css.sac.LexicalUnit; import org.w3c.dom.DOMException; +import org.apache.batik.util.ParsedURL; + /** * This class provides a base implementation for the value factories. * * @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a> - * @version $Id: AbstractValueFactory.java,v 1.1 2002/03/18 10:28:22 hillion Exp $ + * @version $Id: AbstractValueFactory.java,v 1.2 2002/04/29 12:25:05 hillion Exp $ */ public abstract class AbstractValueFactory { @@ -32,11 +33,7 @@ * Resolves an URI. */ protected static String resolveURI(URL base, String value) { - try { - value = new URL(base, value).toString(); - } catch (MalformedURLException e) { - } - return value; + return new ParsedURL(base, value).toString(); } /** 1.3 +21 -14 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.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SVGStyleSheetProcessingInstruction.java 18 Mar 2002 10:28:26 -0000 1.2 +++ SVGStyleSheetProcessingInstruction.java 29 Apr 2002 12:25:05 -0000 1.3 @@ -21,6 +21,10 @@ import org.apache.batik.dom.util.HashTable; +import org.apache.batik.util.ParsedURL; + +import org.w3c.css.sac.InputSource; + import org.w3c.dom.Node; /** @@ -28,7 +32,7 @@ * instructions. * * @author <a href="mailto:[EMAIL PROTECTED]">Stephane Hillion</a> - * @version $Id: SVGStyleSheetProcessingInstruction.java,v 1.2 2002/03/18 10:28:26 hillion Exp $ + * @version $Id: SVGStyleSheetProcessingInstruction.java,v 1.3 2002/04/29 12:25:05 hillion Exp $ */ public class SVGStyleSheetProcessingInstruction extends StyleSheetProcessingInstruction @@ -80,21 +84,24 @@ String type = (String)attrs.get("type"); if ("text/css".equals(type)) { + String title = (String)attrs.get("title"); + String media = (String)attrs.get("media"); + String href = (String)attrs.get("href"); + String alternate = (String)attrs.get("alternate"); + SVGOMDocument doc = (SVGOMDocument)getOwnerDocument(); + URL durl = doc.getURLObject(); + URL burl = durl; try { - String title = (String)attrs.get("title"); - String media = (String)attrs.get("media"); - String href = (String)attrs.get("href"); - String alternate = (String)attrs.get("alternate"); - SVGOMDocument doc = (SVGOMDocument)getOwnerDocument(); - URL url = doc.getURLObject(); - CSSEngine e = doc.getCSSEngine(); - styleSheet = e.parseStyleSheet(new URL(url, href), media); - styleSheet.setAlternate("yes".equals(alternate)); - styleSheet.setTitle(title); - } catch (MalformedURLException e) { - // !!! TODO exception handling. - e.printStackTrace(); + burl = new URL(durl, href); + } catch (Exception ex) { } + CSSEngine e = doc.getCSSEngine(); + styleSheet = e.parseStyleSheet + (new InputSource(new ParsedURL(durl, href).toString()), + burl, + media); + styleSheet.setAlternate("yes".equals(alternate)); + styleSheet.setTitle(title); } } return styleSheet;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]