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 tk...@apache.org on 2001/11/13 16:20:59 UTC

cvs commit: xml-batik/sources/org/apache/batik/bridge AbstractGraphicsNodeBridge.java SVGGElementBridge.java SVGImageElementBridge.java SVGSVGElementBridge.java SVGShapeElementBridge.java SVGTextElementBridge.java SVGUseElementBridge.java

tkormann    01/11/13 07:20:59

  Modified:    sources/org/apache/batik/bridge
                        AbstractGraphicsNodeBridge.java
                        SVGGElementBridge.java SVGImageElementBridge.java
                        SVGSVGElementBridge.java SVGShapeElementBridge.java
                        SVGTextElementBridge.java SVGUseElementBridge.java
  Added:       samples/tests/spec/structure requiredFeatures.svg
                        requiredFeaturesCombo.svg
  Log:
  add support for requiredFeatures on graphical elements.
  2 new tests added.
  
  Other elements need clarifications from the WG.
  
  Revision  Changes    Path
  1.1                  xml-batik/samples/tests/spec/structure/requiredFeatures.svg
  
  Index: requiredFeatures.svg
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
  "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
  
  <!-- ========================================================================= -->
  <!-- Copyright (C) The Apache Software Foundation. All rights reserved.        -->
  <!--                                                                           -->
  <!-- This software is published under the terms of the Apache Software License -->
  <!-- version 1.1, a copy of which has been included with this distribution in  -->
  <!-- the LICENSE file.                                                         -->
  <!-- ========================================================================= -->
  
  <!-- ========================================================================= -->
  <!-- Test the 'requiredFeatures' attribute                                     -->
  <!--                                                                           -->
  <!-- @author tkormann@ilog.fr                                                  -->
  <!-- @version $Id: requiredFeatures.svg,v 1.1 2001/11/13 15:20:58 tkormann Exp $ -->
  <!-- ========================================================================= -->
  
  <?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?>
  
  <svg width="450" height="500" viewBox="0 0 450 500">
  <title>Test the 'requiredFeatures' attribute</title>
  
      <!-- ============================================================= -->
      <!-- Test content                                                  -->
      <!-- ============================================================= -->
      <g id="testContent">
      <text x="225" y="50" class="title">Test the 'requiredFeatures' attribute</text>
  
  
  <g style="fill:#eee; stroke:black">
  	<rect x="50" y="80" width="360" height="20" />
  
  	<rect x="30" y="100" width="20" height="85" />
  	<rect x="30" y="185" width="20" height="85" />
  	<rect x="30" y="270" width="20" height="85" />
  	<rect x="30" y="355" width="20" height="85" />
  </g>
  <g style="fill:none; stroke:black">
  	<rect x="50" y="80" width="360" height="360" />
  
  	<line x1="170" y1="80" x2="170" y2="440" />
  	<line x1="290" y1="80" x2="290" y2="440" />
  
  	<line x1="50" y1="185" x2="410" y2="185" />
  	<line x1="50" y1="270" x2="410" y2="270" />
  	<line x1="50" y1="355" x2="410" y2="355" />
  </g>
  <g style="fill:black; text-anchor:middle;">
  	<text x="110" y="94">default</text>
  	<text x="230" y="94">org.w3c.svg.static</text>
  	<text x="350" y="94">invalid</text>
  
  	<text x="0" y="0" transform="translate(44, 145) rotate(-90)">Graphic Obj.</text>
  	<text x="0" y="0" transform="translate(44, 230) rotate(-90)">&lt;svg></text>
  	<text x="0" y="0" transform="translate(44, 315) rotate(-90)">&lt;g></text>
  	<text x="0" y="0" transform="translate(44, 400) rotate(-90)">&lt;use></text>
  
  </g>
  
  <defs>
  
  </defs>
  
  <!-- ####################################################################################### -->
  <g transform="translate(60, 110)">
  	<g>
  		<rect x="0" y="0" width="30" height="20" style="fill:crimson" />
  		<circle cx="50" cy="10" r="10" style="fill:orange" />
  		<ellipse cx="85" cy="10" rx="15" ry="10" style="fill:gold" />
  	</g>
  
  	<g style="stroke-width:3; fill:none">
  		<line x1="0" y1="25" x2="30" y2="45" style="stroke:crimson" />
  		<polyline points="35 25 45 42 55 25 65 42" style="stroke:orange" />
  		<polygon points="70 25 80 42 90 25 100 42" style="fill: gold" />
  	</g>
  
  	<g style="stroke-width:3; fill:none">
  		<path d="M0 60C5 55 10 55 15 60C20 65 25 65 30 60" style="stroke:gold" />
  		<image xlink:href="../../resources/images/tde.jpg" x="35" y="50" width="30" height="20" />
  		<text x="85" y="65" style="fill:black; stroke:none; text-anchor:middle">text</text>
  	</g>
  
  </g>
  
  <g transform="translate(180, 110)">
  	<g>
  		<rect x="0" y="0" width="30" height="20" style="fill:crimson" requiredFeatures="org.w3c.svg.static" />
  		<circle cx="50" cy="10" r="10" style="fill:orange" requiredFeatures="org.w3c.svg.static"/>
  		<ellipse cx="85" cy="10" rx="15" ry="10" style="fill:gold" requiredFeatures="org.w3c.svg.static"/>
  	</g>
  
  	<g style="stroke-width:3; fill:none">
  		<line x1="0" y1="25" x2="30" y2="45" style="stroke:crimson" requiredFeatures="org.w3c.svg.static"/>
  		<polyline points="35 25 45 42 55 25 65 42" style="stroke:orange" requiredFeatures="org.w3c.svg.static"/>
  		<polygon points="70 25 80 42 90 25 100 42" style="fill: gold" requiredFeatures="org.w3c.svg.static"/>
  	</g>
  
  	<g style="stroke-width:3; fill:none">
  		<path d="M0 60C5 55 10 55 15 60C20 65 25 65 30 60" style="stroke:gold" requiredFeatures="org.w3c.svg.static"/>
  		<image xlink:href="../../resources/images/tde.jpg" x="35" y="50" width="30" height="20" requiredFeatures="org.w3c.svg.static"/>
  		<text x="85" y="65" style="fill:black; stroke:none; text-anchor:middle" requiredFeatures="org.w3c.svg.static">text</text>
  	</g>
  
  </g>
  
  <g transform="translate(300, 110)">
  	<g>
  		<rect x="0" y="0" width="30" height="20" style="fill:crimson" requiredFeatures="invalid"/>
  		<circle cx="50" cy="10" r="10" style="fill:orange" requiredFeatures="invalid"/>
  		<ellipse cx="85" cy="10" rx="15" ry="10" style="fill:gold" requiredFeatures="invalid"/>
  	</g>
  
  	<g style="stroke-width:3; fill:none">
  		<line x1="0" y1="25" x2="30" y2="45" style="stroke:crimson" requiredFeatures="invalid"/>
  		<polyline points="35 25 45 42 55 25 65 42" style="stroke:orange" requiredFeatures="invalid"/>
  		<polygon points="70 25 80 42 90 25 100 42" style="fill: gold" requiredFeatures="invalid"/>
  	</g>
  
  	<g style="stroke-width:3; fill:none">
  		<path d="M0 60C5 55 10 55 15 60C20 65 25 65 30 60" style="stroke:gold" requiredFeatures="invalid"/>
  		<image xlink:href="../../resources/images/tde.jpg" x="35" y="50" width="30" height="20" requiredFeatures="invalid"/>
  		<text x="85" y="65" style="fill:black; stroke:none; text-anchor:middle" requiredFeatures="invalid">text</text>
  	</g>
  
  </g>
  <!-- ####################################################################################### -->
  
  <g style="fill:crimson">
  	<svg x="52" y="187" width="116" height="81">
  	   <rect x="0" y="0" width="100%" height="100%" />
  	</svg>
  
  	<svg x="172" y="187" width="116" height="81" requiredFeatures="org.w3c.svg.static">
  	   <rect x="0" y="0" width="100%" height="100%" />
  	</svg>
  
  	<svg x="292" y="187" width="116" height="81" requiredFeatures="invalid">
  	   <rect x="0" y="0" width="100%" height="100%" />
  	</svg>
  </g>
  
  <!-- ####################################################################################### -->
  <g style="fill:crimson" transform="translate(0 85)">
  	<g>
  		<rect x="52" y="187" width="116" height="81" />
  	</g>
  
  	<g>
  		<rect x="172" y="187" width="116" height="81" requiredFeatures="org.w3c.svg.static" />
  	</g>
  
  	<g>
  		<rect x="292" y="187" width="116" height="81" requiredFeatures="invalid" />
  	</g>
  </g>
  <!-- ####################################################################################### -->
  <defs>
  	<rect id="use" x="0" y="0" width="116" height="81" style="fill:crimson"/>
  </defs>
  
  <g>
  
  	<use xlink:href="#use" x="52" y="357" />
  
  	<use xlink:href="#use" x="172" y="357" requiredFeatures="org.w3c.svg.static" />
  
  	<use xlink:href="#use" x="292" y="357"   requiredFeatures="invalid" />
  
  </g>
  
  
  	</g>
  
      <!-- ============================================================= -->
      <!-- Batik sample mark                                             -->
      <!-- ============================================================= -->
      <use xlink:href="../../../batikLogo.svg#Batik_Tag_Box" />
      
  </svg>
  
  
  
  1.1                  xml-batik/samples/tests/spec/structure/requiredFeaturesCombo.svg
  
  Index: requiredFeaturesCombo.svg
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
  "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
  
  <!-- ========================================================================= -->
  <!-- Copyright (C) The Apache Software Foundation. All rights reserved.        -->
  <!--                                                                           -->
  <!-- This software is published under the terms of the Apache Software License -->
  <!-- version 1.1, a copy of which has been included with this distribution in  -->
  <!-- the LICENSE file.                                                         -->
  <!-- ========================================================================= -->
  
  <!-- ========================================================================= -->
  <!-- Test the 'requiredFeatures' attribtue combo                               -->
  <!--                                                                           -->
  <!-- @author tkormann@ilog.fr                                                  -->
  <!-- @version $Id: requiredFeaturesCombo.svg,v 1.1 2001/11/13 15:20:58 tkormann Exp $ -->
  <!-- ========================================================================= -->
  
  <?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?>
  
  <svg width="450" height="500" viewBox="0 0 450 500">
  <title>Test the 'requiredFeatures' attribute combo</title>
  
      <!-- ============================================================= -->
      <!-- Test content                                                  -->
      <!-- ============================================================= -->
      <g id="testContent">
  	    <text x="225" y="50" class="title">Test the 'requiredFeatures' attribute combo</text>
  
  <g style="stroke:black; fill:#eee">
  	<rect x="45" y="80" width="120" height="20" />
  	<rect x="165" y="80" width="120" height="20" />
  	<rect x="285" y="80" width="120" height="20" />
  
  	<rect x="25" y="100" width="20" height="120" />
  	<rect x="25" y="220" width="20" height="120" />
  	<rect x="25" y="340" width="20" height="120" />
  </g>
  <g style="stroke:black; fill:none">
  	<rect x="45" y="100" width="360" height="360" />
  
  	<line x1="165" y1="100" x2="165" y2="460" />
  	<line x1="285" y1="100" x2="285" y2="460" />
  
  	<line x1="45" y1="220" x2="405" y2="220" />
  
  	<line x1="45" y1="340" x2="405" y2="340" />
  </g>
  <g style="stroke:none; fill:black; text-anchor:middle">
  	<text x="105" y="94">org.w3c.svg</text>
  	<text x="225" y="94">org.w3c.svg.static</text>
  	<text x="345" y="94">invalid</text>
  
  	<text x="0" y="0" transform="translate(40 160) rotate(-90)">org.w3c.svg</text>
  	<text x="0" y="0" transform="translate(40 280) rotate(-90)">org.w3c.svg.static</text>
  	<text x="0" y="0" transform="translate(40 400) rotate(-90)">invalid</text>
  </g>
  
  
  <rect x="65" y="120" width="80" height="80" style="fill:crimson" requiredFeatures="org.w3c.svg" />
  <rect x="65" y="120" width="80" height="80" style="fill:crimson" requiredFeatures="org.w3c.svg org.w3c.svg.static" transform="translate(120 0)" />
  <rect x="65" y="120" width="80" height="80" style="fill:crimson" requiredFeatures="org.w3c.svg invalid" transform="translate(240 0)" />
  
  <g transform="translate(0 120)">
  <rect x="65" y="120" width="80" height="80" style="fill:crimson" requiredFeatures="org.w3c.svg.static org.w3c.svg" />
  <rect x="65" y="120" width="80" height="80" style="fill:crimson" requiredFeatures="org.w3c.svg.static" transform="translate(120 0)" />
  <rect x="65" y="120" width="80" height="80" style="fill:crimson" requiredFeatures="org.w3c.svg.static invalid" transform="translate(240 0)" />
  </g>
  
  <g transform="translate(0 240)">
  <rect x="65" y="120" width="80" height="80" style="fill:crimson" requiredFeatures="invalid org.w3c.svg"/>
  <rect x="65" y="120" width="80" height="80" style="fill:crimson" requiredFeatures="invalid org.w3c.svg.static" transform="translate(120 0)" />
  <rect x="65" y="120" width="80" height="80" style="fill:crimson" requiredFeatures="invalid" transform="translate(240 0)" />
  </g>
  
      </g>
  
      <!-- ============================================================= -->
      <!-- Batik sample mark                                             -->
      <!-- ============================================================= -->
      <use xlink:href="../../../batikLogo.svg#Batik_Tag_Box" />
      
  </svg>
  
  
  
  1.5       +6 -1      xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java
  
  Index: AbstractGraphicsNodeBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AbstractGraphicsNodeBridge.java	2001/08/03 16:33:42	1.4
  +++ AbstractGraphicsNodeBridge.java	2001/11/13 15:20:58	1.5
  @@ -35,7 +35,7 @@
    * </ul>
    *
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
  - * @version $Id: AbstractGraphicsNodeBridge.java,v 1.4 2001/08/03 16:33:42 vhardy Exp $
  + * @version $Id: AbstractGraphicsNodeBridge.java,v 1.5 2001/11/13 15:20:58 tkormann Exp $
    */
   public abstract class AbstractGraphicsNodeBridge extends AbstractSVGBridge
       implements GraphicsNodeBridge, ErrorConstants {
  @@ -53,6 +53,11 @@
        * @return a graphics node that represents the specified element
        */
       public GraphicsNode createGraphicsNode(BridgeContext ctx, Element e) {
  +	// 'requiredFeatures', 'requiredExtensions' and 'systemLanguage'
  +	if (!SVGUtilities.matchUserAgent(e, ctx.getUserAgent())) {
  +	    return null;
  +	}
  +
           GraphicsNode node = instantiateGraphicsNode();
           // 'transform'
           String s = e.getAttributeNS(null, SVG_TRANSFORM_ATTRIBUTE);
  
  
  
  1.11      +6 -1      xml-batik/sources/org/apache/batik/bridge/SVGGElementBridge.java
  
  Index: SVGGElementBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGGElementBridge.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SVGGElementBridge.java	2001/05/02 14:34:01	1.10
  +++ SVGGElementBridge.java	2001/11/13 15:20:58	1.11
  @@ -21,7 +21,7 @@
    * Bridge class for the &lt;g> element.
    *
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
  - * @version $Id: SVGGElementBridge.java,v 1.10 2001/05/02 14:34:01 tkormann Exp $
  + * @version $Id: SVGGElementBridge.java,v 1.11 2001/11/13 15:20:58 tkormann Exp $
    */
   public class SVGGElementBridge extends AbstractGraphicsNodeBridge {
   
  @@ -45,6 +45,11 @@
        * @return a graphics node that represents the specified element
        */
       public GraphicsNode createGraphicsNode(BridgeContext ctx, Element e) {
  +	// 'requiredFeatures', 'requiredExtensions' and 'systemLanguage'
  +	if (!SVGUtilities.matchUserAgent(e, ctx.getUserAgent())) {
  +	    return null;
  +	}
  +
           CompositeGraphicsNode gn =
               (CompositeGraphicsNode)super.createGraphicsNode(ctx, e);
   
  
  
  
  1.30      +5 -1      xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java
  
  Index: SVGImageElementBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- SVGImageElementBridge.java	2001/10/09 22:17:10	1.29
  +++ SVGImageElementBridge.java	2001/11/13 15:20:58	1.30
  @@ -45,7 +45,7 @@
    * Bridge class for the &lt;image> element.
    *
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
  - * @version $Id: SVGImageElementBridge.java,v 1.29 2001/10/09 22:17:10 deweese Exp $
  + * @version $Id: SVGImageElementBridge.java,v 1.30 2001/11/13 15:20:58 tkormann Exp $
    */
   public class SVGImageElementBridge extends AbstractGraphicsNodeBridge {
   
  @@ -70,6 +70,10 @@
        * @return a graphics node that represents the specified element 
        */
       public GraphicsNode createGraphicsNode(BridgeContext ctx, Element e) {
  +	// 'requiredFeatures', 'requiredExtensions' and 'systemLanguage'
  +	if (!SVGUtilities.matchUserAgent(e, ctx.getUserAgent())) {
  +	    return null;
  +	}
   
           ImageNode imageNode = (ImageNode)super.createGraphicsNode(ctx, e);
   
  
  
  
  1.18      +6 -1      xml-batik/sources/org/apache/batik/bridge/SVGSVGElementBridge.java
  
  Index: SVGSVGElementBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGSVGElementBridge.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- SVGSVGElementBridge.java	2001/09/18 21:18:59	1.17
  +++ SVGSVGElementBridge.java	2001/11/13 15:20:58	1.18
  @@ -29,7 +29,7 @@
    * Bridge class for the &lt;svg> element.
    *
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
  - * @version $Id: SVGSVGElementBridge.java,v 1.17 2001/09/18 21:18:59 deweese Exp $
  + * @version $Id: SVGSVGElementBridge.java,v 1.18 2001/11/13 15:20:58 tkormann Exp $
    */
   public class SVGSVGElementBridge extends AbstractSVGBridge
       implements GraphicsNodeBridge, ErrorConstants {
  @@ -54,6 +54,11 @@
        * @return a graphics node that represents the specified element
        */
       public GraphicsNode createGraphicsNode(BridgeContext ctx, Element e) {
  +	// 'requiredFeatures', 'requiredExtensions' and 'systemLanguage'
  +	if (!SVGUtilities.matchUserAgent(e, ctx.getUserAgent())) {
  +	    return null;
  +	}
  +
           CanvasGraphicsNode gn = new CanvasGraphicsNode();
   
           UnitProcessor.Context uctx = UnitProcessor.createContext(ctx, e);
  
  
  
  1.12      +4 -1      xml-batik/sources/org/apache/batik/bridge/SVGShapeElementBridge.java
  
  Index: SVGShapeElementBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGShapeElementBridge.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- SVGShapeElementBridge.java	2001/09/18 09:23:39	1.11
  +++ SVGShapeElementBridge.java	2001/11/13 15:20:58	1.12
  @@ -21,7 +21,7 @@
    * The base bridge class for shapes. Subclasses bridge <tt>ShapeNode</tt>.
    *
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
  - * @version $Id: SVGShapeElementBridge.java,v 1.11 2001/09/18 09:23:39 tkormann Exp $
  + * @version $Id: SVGShapeElementBridge.java,v 1.12 2001/11/13 15:20:58 tkormann Exp $
    */
   public abstract class SVGShapeElementBridge extends AbstractGraphicsNodeBridge {
   
  @@ -40,6 +40,9 @@
        */
       public GraphicsNode createGraphicsNode(BridgeContext ctx, Element e) {
           ShapeNode shapeNode = (ShapeNode)super.createGraphicsNode(ctx, e);
  +	if (shapeNode == null) {
  +	    return null;
  +	}
           // delegates to subclasses the shape construction
           buildShape(ctx, e, shapeNode);
   	if (shapeNode.getShape() == null) {
  
  
  
  1.40      +5 -1      xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java
  
  Index: SVGTextElementBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- SVGTextElementBridge.java	2001/11/13 10:35:24	1.39
  +++ SVGTextElementBridge.java	2001/11/13 15:20:58	1.40
  @@ -56,7 +56,7 @@
    * Bridge class for the &lt;text> element.
    *
    * @author <a href="bill.haneman@ireland.sun.com>Bill Haneman</a>
  - * @version $Id: SVGTextElementBridge.java,v 1.39 2001/11/13 10:35:24 tkormann Exp $
  + * @version $Id: SVGTextElementBridge.java,v 1.40 2001/11/13 15:20:58 tkormann Exp $
    */
   public class SVGTextElementBridge extends AbstractSVGBridge
       implements GraphicsNodeBridge, ErrorConstants {
  @@ -82,6 +82,10 @@
        * @return a graphics node that represents the specified element
        */
       public GraphicsNode createGraphicsNode(BridgeContext ctx, Element e) {
  +	// 'requiredFeatures', 'requiredExtensions' and 'systemLanguage'
  +	if (!SVGUtilities.matchUserAgent(e, ctx.getUserAgent())) {
  +	    return null;
  +	}
   
           TextNode node = new TextNode();
   	// specify the text painter to use if one has been provided in the
  
  
  
  1.13      +5 -1      xml-batik/sources/org/apache/batik/bridge/SVGUseElementBridge.java
  
  Index: SVGUseElementBridge.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGUseElementBridge.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- SVGUseElementBridge.java	2001/10/09 22:17:10	1.12
  +++ SVGUseElementBridge.java	2001/11/13 15:20:58	1.13
  @@ -33,7 +33,7 @@
    * Bridge class for the &lt;use> element.
    *
    * @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
  - * @version $Id: SVGUseElementBridge.java,v 1.12 2001/10/09 22:17:10 deweese Exp $
  + * @version $Id: SVGUseElementBridge.java,v 1.13 2001/11/13 15:20:58 tkormann Exp $
    */
   public class SVGUseElementBridge extends AbstractSVGBridge
       implements GraphicsNodeBridge, ErrorConstants {
  @@ -58,6 +58,10 @@
        * @return a graphics node that represents the specified element
        */
       public GraphicsNode createGraphicsNode(BridgeContext ctx, Element e) {
  +	// 'requiredFeatures', 'requiredExtensions' and 'systemLanguage'
  +	if (!SVGUtilities.matchUserAgent(e, ctx.getUserAgent())) {
  +	    return null;
  +	}
   
           // get the referenced element
           String uri = XLinkSupport.getXLinkHref(e);
  
  
  

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