You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by hi...@apache.org on 2001/04/18 15:51:18 UTC

cvs commit: xml-batik/sources/org/apache/batik/util SVGConstants.java

hillion     01/04/18 06:51:17

  Modified:    sources/org/apache/batik/apps/svgbrowser
                        JSVGViewerFrame.java
               sources/org/apache/batik/bridge SVGUtilities.java
                        UserAgent.java
               sources/org/apache/batik/css/parser Parser.java
               sources/org/apache/batik/swing/svg JSVGComponent.java
                        SVGUserAgent.java
               sources/org/apache/batik/transcoder/image
                        ImageTranscoder.java
               sources/org/apache/batik/transcoder/print
                        PrintTranscoder.java
               sources/org/apache/batik/util SVGConstants.java
  Log:
  - Completed the <switch> implementation.
  - Fixed a CSS parser bug (infinite recursive calls on error).
  
  Revision  Changes    Path
  1.21      +13 -2     xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java
  
  Index: JSVGViewerFrame.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- JSVGViewerFrame.java	2001/04/17 14:07:47	1.20
  +++ JSVGViewerFrame.java	2001/04/18 13:50:59	1.21
  @@ -128,7 +128,7 @@
    * This class represents a SVG viewer swing frame.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: JSVGViewerFrame.java,v 1.20 2001/04/17 14:07:47 hillion Exp $
  + * @version $Id: JSVGViewerFrame.java,v 1.21 2001/04/18 13:50:59 hillion Exp $
    */
   public class JSVGViewerFrame
       extends    JFrame
  @@ -973,7 +973,10 @@
       public class ResetTransformAction extends AbstractAction {
           public ResetTransformAction() {}
           public void actionPerformed(ActionEvent e) {
  -            svgCanvas.setRenderingTransform(initialTransform);
  +            svgCanvas.setFragmentIdentifier(null);
  +            if (initialTransform != null) {
  +                svgCanvas.setRenderingTransform(initialTransform);
  +            }
           }
       }
   
  @@ -1586,6 +1589,14 @@
            */
           public void openLink(String uri) {
               application.openLink(uri);
  +        }
  +
  +        /**
  +         * Tells whether the given extension is supported by this
  +         * user agent.
  +         */
  +        public boolean supportExtension(String s) {
  +            return false;
           }
       }
   }
  
  
  
  1.12      +28 -7     xml-batik/sources/org/apache/batik/bridge/SVGUtilities.java
  
  Index: SVGUtilities.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGUtilities.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- SVGUtilities.java	2001/03/30 17:18:30	1.11
  +++ SVGUtilities.java	2001/04/18 13:51:01	1.12
  @@ -50,7 +50,8 @@
    * A collection of utility methods for SVG.
    *
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
  - * @version $Id: SVGUtilities.java,v 1.11 2001/03/30 17:18:30 tkormann Exp $
  + * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  + * @version $Id: SVGUtilities.java,v 1.12 2001/04/18 13:51:01 hillion Exp $
    */
   public abstract class SVGUtilities implements SVGConstants, ErrorConstants {
   
  @@ -148,21 +149,41 @@
        * @param ua the user agent
        */
       public static boolean matchUserAgent(Element elt, UserAgent ua) {
  -        if (elt.hasAttributeNS(null, SVG_SYSTEM_LANGUAGE_ATTRIBUTE)) {
  -            // Evaluates the system languages
  +        test: if (elt.hasAttributeNS(null, SVG_SYSTEM_LANGUAGE_ATTRIBUTE)) {
  +            // Tests the system languages.
               String sl = elt.getAttributeNS(null, SVG_SYSTEM_LANGUAGE_ATTRIBUTE);
               StringTokenizer st = new StringTokenizer(sl, ",");
               while (st.hasMoreTokens()) {
                   String s = st.nextToken();
                   if (matchUserLanguage(s, ua.getLanguages())) {
  -                    return true;
  +                    break test;
                   }
               }
               return false;
  -        } else {
  -            return true;
           }
  -        // <!> FIXME TODO requiredFeatures, requiredExtensions
  +        if (elt.hasAttributeNS(null, SVG_REQUIRED_FEATURES_ATTRIBUTE)) {
  +            // Tests the system features.
  +            String sf = elt.getAttributeNS(null, SVG_REQUIRED_FEATURES_ATTRIBUTE);
  +            StringTokenizer st = new StringTokenizer(sf, " ");
  +            while (st.hasMoreTokens()) {
  +                String s = st.nextToken();
  +                if (!ua.hasFeature(s)) {
  +                    return false;
  +                }
  +            }
  +        }
  +        if (elt.hasAttributeNS(null, SVG_REQUIRED_EXTENSIONS_ATTRIBUTE)) {
  +            // Tests the system features.
  +            String sf = elt.getAttributeNS(null, SVG_REQUIRED_EXTENSIONS_ATTRIBUTE);
  +            StringTokenizer st = new StringTokenizer(sf, " ");
  +            while (st.hasMoreTokens()) {
  +                String s = st.nextToken();
  +                if (!ua.supportExtension(s)) {
  +                    return false;
  +                }
  +            }
  +        }
  +        return true;
       }
   
       /**
  
  
  
  1.13      +13 -1     xml-batik/sources/org/apache/batik/bridge/UserAgent.java
  
  Index: UserAgent.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/UserAgent.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- UserAgent.java	2001/03/15 20:03:00	1.12
  +++ UserAgent.java	2001/04/18 13:51:01	1.13
  @@ -25,7 +25,7 @@
    *
    * @author <a href="mailto:cjolif@ilog.fr">Christophe Jolif</a>
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: UserAgent.java,v 1.12 2001/03/15 20:03:00 tkormann Exp $
  + * @version $Id: UserAgent.java,v 1.13 2001/04/18 13:51:01 hillion Exp $
    */
   public interface UserAgent {
   
  @@ -94,4 +94,16 @@
        * client area in the UserAgent.
        */
       Point getClientAreaLocationOnScreen();
  +
  +    /**
  +     * Tells whether the given feature is supported by this
  +     * user agent.
  +     */
  +    boolean hasFeature(String s);
  +
  +    /**
  +     * Tells whether the given extension is supported by this
  +     * user agent.
  +     */
  +    boolean supportExtension(String s);
   }
  
  
  
  1.10      +2 -2      xml-batik/sources/org/apache/batik/css/parser/Parser.java
  
  Index: Parser.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/css/parser/Parser.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Parser.java	2001/04/10 17:27:10	1.9
  +++ Parser.java	2001/04/18 13:51:04	1.10
  @@ -45,7 +45,7 @@
    * This class implements the {@link org.w3c.css.sac.Parser} interface.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: Parser.java,v 1.9 2001/04/10 17:27:10 hillion Exp $
  + * @version $Id: Parser.java,v 1.10 2001/04/18 13:51:04 hillion Exp $
    */
   public class Parser
       implements org.w3c.css.sac.Parser,
  @@ -1679,7 +1679,7 @@
               }
               return current;
           } catch (ParseException e) {
  -            reportError(e.getMessage());
  +            errorHandler.error(createCSSParseException(e.getMessage()));
               return current;
           }
       }
  
  
  
  1.14      +29 -1     xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java
  
  Index: JSVGComponent.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- JSVGComponent.java	2001/04/17 14:07:55	1.13
  +++ JSVGComponent.java	2001/04/18 13:51:05	1.14
  @@ -19,9 +19,11 @@
   import java.net.MalformedURLException;
   import java.net.URL;
   
  +import java.util.HashSet;
   import java.util.Iterator;
   import java.util.LinkedList;
   import java.util.List;
  +import java.util.Set;
   
   import javax.swing.JComponent;
   
  @@ -61,7 +63,7 @@
    * This class represents a Swing component which can display SVG.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: JSVGComponent.java,v 1.13 2001/04/17 14:07:55 hillion Exp $
  + * @version $Id: JSVGComponent.java,v 1.14 2001/04/18 13:51:05 hillion Exp $
    */
   public class JSVGComponent extends JGVTComponent {
   
  @@ -659,5 +661,31 @@
           public Point getClientAreaLocationOnScreen() {
               return getLocationOnScreen();
           }
  +
  +        /**
  +         * Tells whether the given feature is supported by this
  +         * user agent.
  +         */
  +        public boolean hasFeature(String s) {
  +            return FEATURES.contains(s);
  +        }
  +
  +        /**
  +         * Tells whether the given extension is supported by this
  +         * user agent.
  +         */
  +        public boolean supportExtension(String s) {
  +            if (svgUserAgent != null) {
  +                return svgUserAgent.supportExtension(s);
  +            }
  +            return false;
  +        }
  +    }
  +
  +    protected final static Set FEATURES = new HashSet();
  +    static {
  +        FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_FEATURE);
  +        FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_LANG_FEATURE);
  +        FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_STATIC_FEATURE);
       }
   }
  
  
  
  1.2       +6 -1      xml-batik/sources/org/apache/batik/swing/svg/SVGUserAgent.java
  
  Index: SVGUserAgent.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/svg/SVGUserAgent.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SVGUserAgent.java	2001/03/08 01:21:10	1.1
  +++ SVGUserAgent.java	2001/04/18 13:51:06	1.2
  @@ -13,7 +13,7 @@
    * a JSVGComponent.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: SVGUserAgent.java,v 1.1 2001/03/08 01:21:10 hillion Exp $
  + * @version $Id: SVGUserAgent.java,v 1.2 2001/04/18 13:51:06 hillion Exp $
    */
   public interface SVGUserAgent {
       
  @@ -60,4 +60,9 @@
        */
       void openLink(String uri);
   
  +    /**
  +     * Tells whether the given extension is supported by this
  +     * user agent.
  +     */
  +    boolean supportExtension(String s);
   }
  
  
  
  1.21      +27 -1     xml-batik/sources/org/apache/batik/transcoder/image/ImageTranscoder.java
  
  Index: ImageTranscoder.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/transcoder/image/ImageTranscoder.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- ImageTranscoder.java	2001/04/13 13:11:33	1.20
  +++ ImageTranscoder.java	2001/04/18 13:51:09	1.21
  @@ -25,6 +25,9 @@
   import java.net.MalformedURLException;
   import java.net.URL;
   
  +import java.util.HashSet;
  +import java.util.Set;
  +
   import org.apache.batik.bridge.BridgeContext;
   import org.apache.batik.bridge.BridgeException;
   import org.apache.batik.bridge.GVTBuilder;
  @@ -96,7 +99,7 @@
    * millimeter conversion factor.
    *
    * @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
  - * @version $Id: ImageTranscoder.java,v 1.20 2001/04/13 13:11:33 tkormann Exp $
  + * @version $Id: ImageTranscoder.java,v 1.21 2001/04/18 13:51:09 hillion Exp $
    */
   public abstract class ImageTranscoder extends XMLAbstractTranscoder {
   
  @@ -411,6 +414,29 @@
           public Point getClientAreaLocationOnScreen() {
               return new Point();
           }
  +
  +        /**
  +         * Tells whether the given feature is supported by this
  +         * user agent.
  +         */
  +        public boolean hasFeature(String s) {
  +            return FEATURES.contains(s);
  +        }
  +
  +        /**
  +         * Tells whether the given extension is supported by this
  +         * user agent.
  +         */
  +        public boolean supportExtension(String s) {
  +            return false;
  +        }
  +    }
  +
  +    protected final static Set FEATURES = new HashSet();
  +    static {
  +        FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_FEATURE);
  +        FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_LANG_FEATURE);
  +        FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_STATIC_FEATURE);
       }
   
       // --------------------------------------------------------------------
  
  
  
  1.6       +25 -1     xml-batik/sources/org/apache/batik/transcoder/print/PrintTranscoder.java
  
  Index: PrintTranscoder.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/transcoder/print/PrintTranscoder.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- PrintTranscoder.java	2001/04/13 13:11:34	1.5
  +++ PrintTranscoder.java	2001/04/18 13:51:13	1.6
  @@ -33,6 +33,8 @@
   import java.io.IOException;
   import java.io.OutputStream;
   
  +import java.util.HashSet;
  +import java.util.Set;
   import java.util.StringTokenizer;
   import java.util.Vector;
   
  @@ -105,7 +107,7 @@
    * </ul>
    *
    * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
  - * @version $Id: PrintTranscoder.java,v 1.5 2001/04/13 13:11:34 tkormann Exp $
  + * @version $Id: PrintTranscoder.java,v 1.6 2001/04/18 13:51:13 hillion Exp $
    */
   public class PrintTranscoder extends XMLAbstractTranscoder
       implements Printable {
  @@ -875,6 +877,28 @@
           public Point getClientAreaLocationOnScreen() {
               return new Point();
           }
  +        /**
  +         * Tells whether the given feature is supported by this
  +         * user agent.
  +         */
  +        public boolean hasFeature(String s) {
  +            return FEATURES.contains(s);
  +        }
  +
  +        /**
  +         * Tells whether the given extension is supported by this
  +         * user agent.
  +         */
  +        public boolean supportExtension(String s) {
  +            return false;
  +        }
  +    }
  +
  +    protected final static Set FEATURES = new HashSet();
  +    static {
  +        FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_FEATURE);
  +        FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_LANG_FEATURE);
  +        FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_STATIC_FEATURE);
       }
   
       /**
  
  
  
  1.48      +11 -1     xml-batik/sources/org/apache/batik/util/SVGConstants.java
  
  Index: SVGConstants.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/util/SVGConstants.java,v
  retrieving revision 1.47
  retrieving revision 1.48
  diff -u -r1.47 -r1.48
  --- SVGConstants.java	2001/04/01 18:05:11	1.47
  +++ SVGConstants.java	2001/04/18 13:51:16	1.48
  @@ -14,7 +14,7 @@
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
    * @author <a href="vincent.hardy@eng.sun.com">Vincent Hardy</a>
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: SVGConstants.java,v 1.47 2001/04/01 18:05:11 hillion Exp $
  + * @version $Id: SVGConstants.java,v 1.48 2001/04/18 13:51:16 hillion Exp $
    */
   public interface SVGConstants extends CSSConstants {
   
  @@ -33,6 +33,14 @@
           "http://www.w3.org/2000/svg";
   
       /////////////////////////////////////////////////////////////////////////
  +    // SVG features
  +    /////////////////////////////////////////////////////////////////////////
  +
  +    String SVG_ORG_W3C_SVG_FEATURE = "org.w3c.svg";
  +    String SVG_ORG_W3C_SVG_LANG_FEATURE = "org.w3c.svg.lang";
  +    String SVG_ORG_W3C_SVG_STATIC_FEATURE = "org.w3c.svg.static";
  +
  +    /////////////////////////////////////////////////////////////////////////
       // SVG tags
       /////////////////////////////////////////////////////////////////////////
   
  @@ -210,6 +218,8 @@
       String SVG_REF_X_ATTRIBUTE = "refX";
       String SVG_REF_Y_ATTRIBUTE = "refY";
       String SVG_RENDERING_INTENT_ATTRIBUTE = "rendering-intent";
  +    String SVG_REQUIRED_FEATURES_ATTRIBUTE = "requiredFeatures";
  +    String SVG_REQUIRED_EXTENSIONS_ATTRIBUTE = "requiredExtensions";
       String SVG_RESULT_ATTRIBUTE = "result";
       String SVG_RESULT_SCALE_ATTRIBUTE = "resultScale";
       String SVG_RX_ATTRIBUTE = "rx";
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org