From batikwayne03@example.net Sun Aug 01 10:21:59 2004 Return-Path: <batikwayne03@example.net> Delivered-To: wayne03@example.net Received: (qmail 56236 invoked from network); 1 Aug 2004 10:21:58 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 1 Aug 2004 10:21:58 -0000 Received: (qmail 2740 invoked by uid 500); 1 Aug 2004 10:21:58 -0000 Delivered-To: wayne03@example.net Received: (qmail 2719 invoked by uid 500); 1 Aug 2004 10:21:58 -0000 Mailing-List: contact wayne03@example.net; run by ezmlm Precedence: bulk List-Post: <mailto:wayne03@example.net> List-Help: <mailto:wayne03@example.net> List-Unsubscribe: <mailto:wayne03@example.net> List-Subscribe: <mailto:wayne03@example.net> Reply-To: wayne03@example.net Delivered-To: mailing list wayne03@example.net Delivered-To: moderator for wayne03@example.net Received: (qmail 22442 invoked by uid 500); 1 Aug 2004 03:08:51 -0000 Delivered-To: wayne03@example.net X-ASF-Spam-Status: No, hits=0.6 required=10.0 tests=ALL_TRUSTED,HTTP_WITH_EMAIL_IN_URL,NO_REAL_NAME X-Spam-Check-By: apache.org Date: 1 Aug 2004 03:08:50 -0000 Message-ID: <wayne03@example.net> From: wayne03@example.net To: wayne03@example.net Subject: cvs commit: xml-batik/sources/org/apache/batik/swing JSVGCanvas.java X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N cam 2004/07/31 20:08:50 Modified: sources/org/apache/batik/bridge AbstractGraphicsNodeBridge.java BaseScriptingEnvironment.java BridgeExtension.java GVTBuilder.java SVGBridgeExtension.java SVGPathElementBridge.java SVGPolygonElementBridge.java SVGPolylineElementBridge.java SVGSVGElementBridge.java SVGTextElementBridge.java SVGUtilities.java sources/org/apache/batik/dom/svg AbstractSVGList.java SVGOMTextElement.java SVGStylableElement.java sources/org/apache/batik/extension/svg BatikBridgeExtension.java sources/org/apache/batik/swing JSVGCanvas.java Log: 1. GenericBridges are now handled more uniformly, so that extension elements which do not inherit from AbstractGraphicsNodeBridge and are not for title or desc elements will have their handleElement method called. 2. Fixed tool tip handling bug. (http://wayne03@example.net&msgNo=1007) 3. Changed BridgeExtension to allow extensions to specify if a particular extension element should cause the document to be dynamic. 4. Fixed fill-rule bug. (#28679) 5. Implemented getX() and getY() methods of text elements. 6. Fixed NPE in SVGList if the list is empty. 7. Fixed NPE in SVGTextElementBridge.getSubStringLength if there is no text. (#28702) Revision Changes Path 1.34 +1 -4 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.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- AbstractGraphicsNodeBridge.java 6 Oct 2003 00:56:00 -0000 1.33 +++ AbstractGraphicsNodeBridge.java 1 Aug 2004 03:08:46 -0000 1.34 @@ -166,9 +166,6 @@ node.setPointerEventType(CSSUtilities.convertPointerEvents(e)); initializeDynamicSupport(ctx, e, node); - - // Handle children elements such as <title> - SVGUtilities.bridgeChildren(ctx, e); } /** 1.30 +17 -14 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.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- BaseScriptingEnvironment.java 24 Feb 2004 14:04:37 -0000 1.29 +++ BaseScriptingEnvironment.java 1 Aug 2004 03:08:46 -0000 1.30 @@ -57,6 +57,8 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.HashSet; +import java.util.Iterator; +import java.util.List; import java.util.Set; import java.util.jar.Manifest; @@ -144,14 +146,15 @@ * Tells whether the given SVG element is dynamic. */ public static boolean isDynamicElement(Element elt) { - if (SVGConstants.SVG_NAMESPACE_URI.equals(elt.getNamespaceURI())) { - String name = elt.getLocalName(); - if (name.equals(SVGConstants.SVG_SCRIPT_TAG)) { - return true; - } - if (name.startsWith("animate") || name.equals("set")) { + List bridgeExtensions = BridgeContext.getBridgeExtensions(); + Iterator i = bridgeExtensions.iterator(); + while (i.hasNext()) { + BridgeExtension bridgeExtension = (BridgeExtension) i.next(); + if (bridgeExtension.isDynamicElement(elt)) { return true; } + } + if (SVGConstants.SVG_NAMESPACE_URI.equals(elt.getNamespaceURI())) { if (elt.getAttributeNS (null, SVGConstants.SVG_ONKEYUP_ATTRIBUTE).length() > 0) { return true; @@ -208,14 +211,14 @@ (null, SVGConstants.SVG_ONMOUSEUP_ATTRIBUTE).length() > 0) { return true; } + } - for (Node n = elt.getFirstChild(); - n != null; - n = n.getNextSibling()) { - if (n.getNodeType() == Node.ELEMENT_NODE) { - if (isDynamicElement((Element)n)) { - return true; - } + for (Node n = elt.getFirstChild(); + n != null; + n = n.getNextSibling()) { + if (n.getNodeType() == Node.ELEMENT_NODE) { + if (isDynamicElement((Element)n)) { + return true; } } } 1.4 +11 -0 xml-batik/sources/org/apache/batik/bridge/BridgeExtension.java Index: BridgeExtension.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeExtension.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BridgeExtension.java 8 Aug 2003 11:38:50 -0000 1.3 +++ BridgeExtension.java 1 Aug 2004 03:08:46 -0000 1.4 @@ -52,6 +52,8 @@ import java.util.Iterator; +import org.w3c.dom.Element; + /** * This is a Service interface for classes that want to extend the * functionality of the Bridge, to support new tags in the rendering tree. @@ -109,4 +111,13 @@ * @param ctx The BridgeContext instance to be updated */ public void registerTags(BridgeContext ctx); + + /** + * Whether the presence of the specified element should cause + * the document to be dynamic. If this element isn't handled + * by this BridgeExtension, just return false. + * + * @param e The element to check. + */ + public boolean isDynamicElement(Element e); } 1.27 +34 -4 xml-batik/sources/org/apache/batik/bridge/GVTBuilder.java Index: GVTBuilder.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/GVTBuilder.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- GVTBuilder.java 8 Aug 2003 11:38:50 -0000 1.26 +++ GVTBuilder.java 1 Aug 2004 03:08:46 -0000 1.27 @@ -143,7 +143,11 @@ public GraphicsNode build(BridgeContext ctx, Element e) { // get the appropriate bridge according to the specified element Bridge bridge = ctx.getBridge(e); - if (bridge == null || !(bridge instanceof GraphicsNodeBridge)) { + if (bridge instanceof GenericBridge) { + // If it is a GenericBridge just handle it and return. + ((GenericBridge) bridge).handleElement(ctx, e); + return null; + } else if (bridge == null || !(bridge instanceof GraphicsNodeBridge)) { return null; } // create the associated graphics node @@ -156,6 +160,8 @@ if (gn != null) { if (gnBridge.isComposite()) { buildComposite(ctx, e, (CompositeGraphicsNode)gn); + } else { + handleGenericBridges(ctx, e); } gnBridge.buildGraphicsNode(ctx, e, gn); } @@ -207,7 +213,11 @@ } // get the appropriate bridge according to the specified element Bridge bridge = ctx.getBridge(e); - if (bridge == null || !(bridge instanceof GraphicsNodeBridge)) { + if (bridge instanceof GenericBridge) { + // If it is a GenericBridge just handle it and return. + ((GenericBridge) bridge).handleElement(ctx, e); + return; + } else if (bridge == null || !(bridge instanceof GraphicsNodeBridge)) { return; } // check the display property @@ -224,6 +234,9 @@ // check if the element has children to build if (gnBridge.isComposite()) { buildComposite(ctx, e, (CompositeGraphicsNode)gn); + } else { + // if not then still handle the GenericBridges + handleGenericBridges(ctx, e); } gnBridge.buildGraphicsNode(ctx, e, gn); } @@ -241,5 +254,22 @@ throw ex; } } -} + /** + * Handles any GenericBridge elements which are children of the + * specified element. + * @param ctx the bridge context + * @param e the element whose child elements should be handled + */ + protected void handleGenericBridges(BridgeContext ctx, Element e) { + for (Node n = e.getFirstChild(); n != null; n = n.getNextSibling()) { + if (n instanceof Element) { + Element e2 = (Element) n; + Bridge b = ctx.getBridge(e2); + if (b instanceof GenericBridge) { + ((GenericBridge) b).handleElement(ctx, e2); + } + } + } + } +} 1.9 +24 -0 xml-batik/sources/org/apache/batik/bridge/SVGBridgeExtension.java Index: SVGBridgeExtension.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGBridgeExtension.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- SVGBridgeExtension.java 8 Aug 2003 11:38:51 -0000 1.8 +++ SVGBridgeExtension.java 1 Aug 2004 03:08:46 -0000 1.9 @@ -53,6 +53,9 @@ import java.util.Collections; import java.util.Iterator; +import org.apache.batik.util.SVGConstants; +import org.w3c.dom.Element; + /** * This is a Service interface for classes that want to extend the * functionality of the Bridge, to support new tags in the rendering tree. @@ -191,5 +194,26 @@ ctx.putBridge(new SVGUseElementBridge()); ctx.putBridge(new SVGVKernElementBridge()); + } + + /** + * Whether the presence of the specified element should cause + * the document to be dynamic. If this element isn't handled + * by this BridgeExtension, just return false. + * + * @param e The element to check. + */ + public boolean isDynamicElement(Element e) { + String ns = e.getNamespaceURI(); + if (!SVGConstants.SVG_NAMESPACE_URI.equals(ns)) { + return false; + } + String ln = e.getLocalName(); + if (ln.equals(SVGConstants.SVG_SCRIPT_TAG) + || ln.startsWith("animate") + || ln.equals("set")) { + return true; + } + return false; } } 1.18 +14 -1 xml-batik/sources/org/apache/batik/bridge/SVGPathElementBridge.java Index: SVGPathElementBridge.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPathElementBridge.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- SVGPathElementBridge.java 8 Aug 2003 11:38:51 -0000 1.17 +++ SVGPathElementBridge.java 1 Aug 2004 03:08:46 -0000 1.18 @@ -53,6 +53,8 @@ import java.awt.Shape; import java.awt.geom.GeneralPath; +import org.apache.batik.css.engine.CSSEngineEvent; +import org.apache.batik.css.engine.SVGCSSEngine; import org.apache.batik.gvt.ShapeNode; import org.apache.batik.parser.AWTPathProducer; import org.apache.batik.parser.ParseException; @@ -142,6 +144,17 @@ handleGeometryChanged(); } else { super.handleDOMAttrModifiedEvent(evt); + } + } + + protected void handleCSSPropertyChanged(int property) { + switch(property) { + case SVGCSSEngine.FILL_RULE_INDEX: + buildShape(ctx, e, (ShapeNode) node); + handleGeometryChanged(); + break; + default: + super.handleCSSPropertyChanged(property); } } } 1.19 +14 -1 xml-batik/sources/org/apache/batik/bridge/SVGPolygonElementBridge.java Index: SVGPolygonElementBridge.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPolygonElementBridge.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- SVGPolygonElementBridge.java 8 Aug 2003 11:38:51 -0000 1.18 +++ SVGPolygonElementBridge.java 1 Aug 2004 03:08:46 -0000 1.19 @@ -53,6 +53,8 @@ import java.awt.Shape; import java.awt.geom.GeneralPath; +import org.apache.batik.css.engine.CSSEngineEvent; +import org.apache.batik.css.engine.SVGCSSEngine; import org.apache.batik.gvt.ShapeNode; import org.apache.batik.parser.AWTPolygonProducer; import org.apache.batik.parser.ParseException; @@ -141,6 +143,17 @@ handleGeometryChanged(); } else { super.handleDOMAttrModifiedEvent(evt); + } + } + + protected void handleCSSPropertyChanged(int property) { + switch(property) { + case SVGCSSEngine.FILL_RULE_INDEX: + buildShape(ctx, e, (ShapeNode) node); + handleGeometryChanged(); + break; + default: + super.handleCSSPropertyChanged(property); } } } 1.18 +14 -1 xml-batik/sources/org/apache/batik/bridge/SVGPolylineElementBridge.java Index: SVGPolylineElementBridge.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPolylineElementBridge.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- SVGPolylineElementBridge.java 8 Aug 2003 11:38:51 -0000 1.17 +++ SVGPolylineElementBridge.java 1 Aug 2004 03:08:46 -0000 1.18 @@ -53,6 +53,8 @@ import java.awt.Shape; import java.awt.geom.GeneralPath; +import org.apache.batik.css.engine.CSSEngineEvent; +import org.apache.batik.css.engine.SVGCSSEngine; import org.apache.batik.gvt.ShapeNode; import org.apache.batik.parser.AWTPolylineProducer; import org.apache.batik.parser.ParseException; @@ -141,6 +143,17 @@ handleGeometryChanged(); } else { super.handleDOMAttrModifiedEvent(evt); + } + } + + protected void handleCSSPropertyChanged(int property) { + switch(property) { + case SVGCSSEngine.FILL_RULE_INDEX: + buildShape(ctx, e, (ShapeNode) node); + handleGeometryChanged(); + break; + default: + super.handleCSSPropertyChanged(property); } } } 1.42 +1 -4 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.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- SVGSVGElementBridge.java 14 Dec 2003 15:14:57 -0000 1.41 +++ SVGSVGElementBridge.java 1 Aug 2004 03:08:46 -0000 1.42 @@ -253,9 +253,6 @@ initializeDynamicSupport(ctx, e, node); - // Handle children elements such as <title> - //SVGUtilities.bridgeChildren(ctx, e); - //super.buildGraphicsNode(ctx, e, node); ctx.closeViewport(e); } 1.93 +5 -4 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.92 retrieving revision 1.93 diff -u -r1.92 -r1.93 --- SVGTextElementBridge.java 25 Jun 2004 01:41:51 -0000 1.92 +++ SVGTextElementBridge.java 1 Aug 2004 03:08:46 -0000 1.93 @@ -251,9 +251,6 @@ node.setPointerEventType(CSSUtilities.convertPointerEvents(e)); initializeDynamicSupport(ctx, e, node); - - // Handle children elements such as <title> - SVGUtilities.bridgeChildren(ctx, e); } /** @@ -2399,6 +2396,10 @@ protected float getSubStringLength(Element element, int charnum, int nchars){ + if (nchars == 0) { + return 0; + } + float length = 0; AttributedCharacterIterator aci; 1.28 +1 -28 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.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- SVGUtilities.java 9 Aug 2003 16:58:37 -0000 1.27 +++ SVGUtilities.java 1 Aug 2004 03:08:47 -0000 1.28 @@ -1140,31 +1140,4 @@ return new Rectangle2D.Double(); } } - - /** - * Scans the children of the input <tt>e</tt> element and - * invokes any registered bridge found for the children. - * - * @param ctx active BridgeContext - * @param e element to be scanned - */ - public static void bridgeChildren(BridgeContext ctx, - Element elt){ - for (Node n = elt.getFirstChild(); - n != null; - n = n.getNextSibling()) { - - if ((n.getNodeType() != Node.ELEMENT_NODE)) { - continue; - } - - Element e = (Element)n; - Bridge bridge = ctx.getBridge(e); - if (bridge == null || !(bridge instanceof GenericBridge)) { - continue; - } - - ((GenericBridge)bridge).handleElement(ctx, e); - } - } } 1.5 +2 -2 xml-batik/sources/org/apache/batik/dom/svg/AbstractSVGList.java Index: AbstractSVGList.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/AbstractSVGList.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- AbstractSVGList.java 8 Aug 2003 11:38:59 -0000 1.4 +++ AbstractSVGList.java 1 Aug 2004 03:08:48 -0000 1.5 @@ -265,7 +265,7 @@ throws DOMException { revalidate(); - if ( index < 0 || index >= itemList.size() ){ + if ( index < 0 || itemList == null || index >= itemList.size() ){ throw createDOMException(DOMException.INDEX_SIZE_ERR, "AbstractSVGList.getItem.OutOfBoundsException", null); 1.12 +45 -1 xml-batik/sources/org/apache/batik/dom/svg/SVGOMTextElement.java Index: SVGOMTextElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMTextElement.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- SVGOMTextElement.java 8 Aug 2003 11:39:00 -0000 1.11 +++ SVGOMTextElement.java 1 Aug 2004 03:08:48 -0000 1.12 @@ -51,7 +51,9 @@ package org.apache.batik.dom.svg; import org.apache.batik.dom.AbstractDocument; +import org.apache.batik.util.SVGConstants; import org.w3c.dom.Node; +import org.w3c.dom.svg.SVGAnimatedLengthList; import org.w3c.dom.svg.SVGAnimatedTransformList; import org.w3c.dom.svg.SVGElement; import org.w3c.dom.svg.SVGException; @@ -69,6 +71,10 @@ extends SVGOMTextPositioningElement implements SVGTextElement { + // Default values for attributes on a text element + public static final String X_DEFAULT_VALUE = "0"; + public static final String Y_DEFAULT_VALUE = "0"; + /** * Creates a new SVGOMTextElement object. */ @@ -155,5 +161,43 @@ */ protected Node newNode() { return new SVGOMTextElement(); + } + + // SVGTextPositioningElement support //////////////////////////////////// + + /** + * <b>DOM</b>: Implements {@link + * org.w3c.dom.svg.SVGTextPositioningElement#getX()}. + */ + public SVGAnimatedLengthList getX() { + SVGOMAnimatedLengthList result = (SVGOMAnimatedLengthList) + getLiveAttributeValue(null, SVGConstants.SVG_X_ATTRIBUTE); + if (result == null) { + result = new SVGOMAnimatedLengthList(this, null, + SVGConstants.SVG_X_ATTRIBUTE, + X_DEFAULT_VALUE, + AbstractSVGLength.HORIZONTAL_LENGTH); + putLiveAttributeValue(null, + SVGConstants.SVG_X_ATTRIBUTE, result); + } + return result; + } + + /** + * <b>DOM</b>: Implements {@link + * org.w3c.dom.svg.SVGTextPositioningElement#getY()}. + */ + public SVGAnimatedLengthList getY() { + SVGOMAnimatedLengthList result = (SVGOMAnimatedLengthList) + getLiveAttributeValue(null, SVGConstants.SVG_Y_ATTRIBUTE); + if (result == null) { + result = new SVGOMAnimatedLengthList(this, null, + SVGConstants.SVG_Y_ATTRIBUTE, + Y_DEFAULT_VALUE, + AbstractSVGLength.VERTICAL_LENGTH); + putLiveAttributeValue(null, + SVGConstants.SVG_Y_ATTRIBUTE, result); + } + return result; } } 1.14 +2 -9 xml-batik/sources/org/apache/batik/dom/svg/SVGStylableElement.java Index: SVGStylableElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGStylableElement.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- SVGStylableElement.java 14 Dec 2003 18:01:11 -0000 1.13 +++ SVGStylableElement.java 1 Aug 2004 03:08:48 -0000 1.14 @@ -542,7 +542,7 @@ extends CSSOMSVGStyleDeclaration implements LiveAttributeValue, CSSOMSVGStyleDeclaration.ValueProvider, - CSSOMSVGStyleDeclaration.ModificationHandler, + CSSOMSVGStyleDeclaration.ModificationHandler, CSSEngine.MainPropertyReceiver { /** @@ -710,10 +710,3 @@ } } } - - - - - - - 1.8 +12 -0 xml-batik/sources/org/apache/batik/extension/svg/BatikBridgeExtension.java Index: BatikBridgeExtension.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/extension/svg/BatikBridgeExtension.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- BatikBridgeExtension.java 8 Aug 2003 11:39:10 -0000 1.7 +++ BatikBridgeExtension.java 1 Aug 2004 03:08:48 -0000 1.8 @@ -56,6 +56,7 @@ import org.apache.batik.bridge.BridgeContext; import org.apache.batik.bridge.BridgeExtension; +import org.w3c.dom.Element; /** * This is a Service interface for classes that want to extend the @@ -142,5 +143,16 @@ ctx.putBridge(new SolidColorBridge()); ctx.putBridge(new ColorSwitchBridge()); ctx.putBridge(new SVGFlowTextElementBridge()); + } + + /** + * Whether the presence of the specified element should cause + * the document to be dynamic. If this element isn't handled + * by this BridgeExtension, just return false. + * + * @param e The element to check. + */ + public boolean isDynamicElement(Element e) { + return false; } } 1.45 +55 -4 xml-batik/sources/org/apache/batik/swing/JSVGCanvas.java Index: JSVGCanvas.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/JSVGCanvas.java,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- JSVGCanvas.java 7 Sep 2003 22:25:28 -0000 1.44 +++ JSVGCanvas.java 1 Aug 2004 03:08:48 -0000 1.45 @@ -785,6 +785,16 @@ = "JSVGCanvas.CanvasUserAgent.ToolTip.titleAndDesc"; /** + * The time of the last tool tip event. + */ + protected long lastToolTipEventTimeStamp; + + /** + * The target for which the last tool tip event was fired. + */ + protected EventTarget lastToolTipEventTarget; + + /** * The handleElement method builds a tool tip from the * content of a &lt;title&gt; element, a &lt;desc&gt; * element or both. <br/> @@ -811,6 +821,12 @@ if (!SVGConstants.SVG_NAMESPACE_URI.equals(elt.getNamespaceURI())) return; + // Don't handle tool tips for the root SVG element. + if (elt.getParentNode() == + elt.getOwnerDocument().getDocumentElement()) { + return; + } + if (elt.getLocalName().equals(SVGConstants.SVG_TITLE_TAG)) { // If there is a <desc> peer, do nothing as the tooltip will // be handled when handleElement is invoked for the <desc> @@ -941,12 +957,12 @@ // On mouseover, set the tooltip to the title value target.addEventListener(SVGConstants.SVG_EVENT_MOUSEOVER, - new ToolTipModifier(toolTip), + new ToolTipModifier(toolTip, this), false); // On mouseout, remove the tooltip target.addEventListener(SVGConstants.SVG_EVENT_MOUSEOUT, - new ToolTipModifier(null), + new ToolTipModifier(null, this), false); if (locationListener == null) { @@ -985,6 +1001,23 @@ dialog.show(); // Safe to be called from any thread } } + + /** + * Sets the time and element of the last tool tip event handled. + */ + public void setLastToolTipEvent(long t, EventTarget et) { + lastToolTipEventTimeStamp = t; + lastToolTipEventTarget = et; + } + + /** + * Checks if the specified event time and element are the same + * as the last tool tip event. + */ + public boolean matchLastToolTipEvent(long t, EventTarget et) { + return lastToolTipEventTimeStamp == t + && lastToolTipEventTarget == et; + } } // ---------------------------------------------------------------------- @@ -1029,14 +1062,32 @@ protected String toolTip; /** + * The CanvasUserAgent used to track the last tool tip event. + */ + protected CanvasUserAgent canvasUserAgent; + + /** * @param toolTip value to which the JSVGCanvas should be * set when the event occurs. + * @param cua the CanvasUserAgent which will be used to track + * the last tool tip event. */ - public ToolTipModifier(String toolTip){ + public ToolTipModifier(String toolTip, CanvasUserAgent cua) { this.toolTip = toolTip; + canvasUserAgent = cua; } public void handleEvent(Event evt){ + // Don't set the tool tip if another ToolTipModifier + // has already handled this event (as it will have been + // a higher priority tool tip). + if (canvasUserAgent.matchLastToolTipEvent(evt.getTimeStamp(), + evt.getTarget())) { + return; + } + canvasUserAgent.setLastToolTipEvent(evt.getTimeStamp(), + evt.getTarget()); + EventQueue.invokeLater(new Runnable() { public void run() { setToolTipText(toolTip); --------------------------------------------------------------------- To unsubscribe, e-mail: wayne03@example.net For additional commands, e-mail: wayne03@example.net From batikwayne03@example.net Sun Aug 01 12:03:17 2004 Return-Path: <batikwayne03@example.net> Delivered-To: wayne03@example.net Received: (qmail 38888 invoked from network); 1 Aug 2004 12:03:16 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 1 Aug 2004 12:03:16 -0000 Received: (qmail 46702 invoked by uid 500); 1 Aug 2004 12:03:16 -0000 Delivered-To: wayne03@example.net Received: (qmail 46679 invoked by uid 500); 1 Aug 2004 12:03:15 -0000 Mailing-List: contact wayne03@example.net; run by ezmlm Precedence: bulk List-Post: <mailto:wayne03@example.net> List-Help: <mailto:wayne03@example.net> List-Unsubscribe: <mailto:wayne03@example.net> List-Subscribe: <mailto:wayne03@example.net> Reply-To: wayne03@example.net Delivered-To: mailing list wayne03@example.net Received: (qmail 46661 invoked by uid 99); 1 Aug 2004 12:03:15 -0000 X-ASF-Spam-Status: No, hits=0.9 required=10.0 tests=DNS_FROM_RFC_ABUSE,FROM_ENDS_IN_NUMS X-Spam-Check-By: apache.org Message-ID: <wayne03@example.net> Date: Sun, 1 Aug 2004 05:03:11 -0700 (PDT) From: Glen Mazza <wayne03@example.net> Subject: Re: cvs commit... To: wayne03@example.net In-Reply-To: <wayne03@example.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Don't stop there--please apply my two patches (they're simple, as I don't know much about Batik): http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=glenmazza&emailtype1=substring&emailreporter1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Batik (I would recommend again setting the Batik component owners in bugzilla to wayne03@example.net so new bug reports go directly to this ML. Most other projects do it this way. Also, bug report emails have a nice way of creating more activity on the dev-ML.) Thanks, Glen --- wayne03@example.net wrote: > batik-dev Digest 1 Aug 2004 11:29:34 -0000 Issue 691 > > Topics (messages 5020 through 5020): > > cvs commit: xml-batik/sources/org/apache/batik/swing > JSVGCanvas.java > 5020 by: cam.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: wayne03@example.net For additional commands, e-mail: wayne03@example.net From batikwayne03@example.net Sun Aug 01 12:33:49 2004 Return-Path: <batikwayne03@example.net> Delivered-To: wayne03@example.net Received: (qmail 58195 invoked from network); 1 Aug 2004 12:33:49 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 1 Aug 2004 12:33:49 -0000 Received: (qmail 60514 invoked by uid 500); 1 Aug 2004 12:33:49 -0000 Delivered-To: wayne03@example.net Received: (qmail 60501 invoked by uid 500); 1 Aug 2004 12:33:48 -0000 Mailing-List: contact wayne03@example.net; run by ezmlm Precedence: bulk List-Post: <mailto:wayne03@example.net> List-Help: <mailto:wayne03@example.net> List-Unsubscribe: <mailto:wayne03@example.net> List-Subscribe: <mailto:wayne03@example.net> Reply-To: wayne03@example.net Delivered-To: mailing list wayne03@example.net Received: (qmail 60487 invoked by uid 99); 1 Aug 2004 12:33:48 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Message-ID: <wayne03@example.net> Date: Sun, 01 Aug 2004 08:33:40 -0400 From: Thomas DeWeese <wayne03@example.net> Organization: Eastman Kodak Company User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040514 X-Accept-Language: en-us, en MIME-Version: 1.0 To: wayne03@example.net Subject: Re: cvs commit... References: <wayne03@example.net> In-Reply-To: <wayne03@example.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hi Glen, Thanks for reminding us, I will be committing these later today. Glen Mazza wrote: > Don't stop there--please apply my two patches (they're > simple, as I don't know much about Batik): > > http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=glenmazza&emailtype1=substring&emailreporter1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Batik > > (I would recommend again setting the Batik component > owners in bugzilla to wayne03@example.net so new > bug reports go directly to this ML. Most other > projects do it this way. Also, bug report emails have > a nice way of creating more activity on the dev-ML.) > > Thanks, > Glen > > --- wayne03@example.net wrote: > > >>batik-dev Digest 1 Aug 2004 11:29:34 -0000 Issue 691 >> >>Topics (messages 5020 through 5020): >> >>cvs commit: xml-batik/sources/org/apache/batik/swing >>JSVGCanvas.java >> 5020 by: cam.apache.org >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: wayne03@example.net > For additional commands, e-mail: wayne03@example.net --------------------------------------------------------------------- To unsubscribe, e-mail: wayne03@example.net For additional commands, e-mail: wayne03@example.net From batikwayne03@example.net Sun Aug 01 23:56:11 2004 Return-Path: <batikwayne03@example.net> Delivered-To: wayne03@example.net Received: (qmail 17089 invoked from network); 1 Aug 2004 23:56:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 1 Aug 2004 23:56:11 -0000 Received: (qmail 77108 invoked by uid 500); 1 Aug 2004 23:56:11 -0000 Delivered-To: wayne03@example.net Received: (qmail 77008 invoked by uid 500); 1 Aug 2004 23:56:10 -0000 Mailing-List: contact wayne03@example.net; run by ezmlm Precedence: bulk List-Post: <mailto:wayne03@example.net> List-Help: <mailto:wayne03@example.net> List-Unsubscribe: <mailto:wayne03@example.net> List-Subscribe: <mailto:wayne03@example.net> Reply-To: wayne03@example.net Delivered-To: mailing list wayne03@example.net Received: (qmail 76994 invoked by uid 500); 1 Aug 2004 23:56:10 -0000 Delivered-To: wayne03@example.net X-ASF-Spam-Status: No, hits=0.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Date: 1 Aug 2004 23:48:47 -0000 Message-ID: <wayne03@example.net> From: wayne03@example.net To: wayne03@example.net Subject: cvs commit: xml-batik/test-sources/org/apache/batik/test MemoryLeakTest.java X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N deweese 2004/08/01 16:48:47 Modified: . build.xml resources/org/apache/batik/apps/svgbrowser/resources GUI.properties sources/org/apache/batik/apps/svgbrowser JSVGViewerFrame.java sources/org/apache/batik/bridge AbstractGraphicsNodeBridge.java SVGImageElementBridge.java SVGTextElementBridge.java SVGUseElementBridge.java UserAgent.java UserAgentAdapter.java sources/org/apache/batik/dom/svg SVGContext.java SVGOMSVGElement.java sources/org/apache/batik/gvt/text ConcreteTextSelector.java sources/org/apache/batik/swing/svg JSVGComponent.java sources/org/apache/batik/transcoder SVGAbstractTranscoder.java sources/org/apache/batik/transcoder/image ImageTranscoder.java sources/org/apache/batik/util/gui/resource ButtonFactory.java test-references/samples/tests/spec/text textBiDi-arabic-5-40.png textBiDi-cyrillic-4-24.png textBiDi-greek-0-35.png textBiDi-hebrew-10-20.png textBiDi-latin-0-20.png textBiDi-latin-extended-0-15.png textBiDi.png textDecoration2.png test-resources/org/apache/batik/bridge JarCheckPermissionsDenied.jar JarCheckPermissionsDenied.java ecmaCheckPermissionsDenied.svg ecmaCheckPermissionsDenied2.svg ecmaCheckPermissionsDeniedEval.svg ecmaCheckPermissionsDeniedFunction.svg test-sources/org/apache/batik/swing JSVGMemoryLeakTest.java test-sources/org/apache/batik/test MemoryLeakTest.java Log: 1) Applied patch 28188, fixed tooltip text & title text, thanks Glen 2) Applied patch 28487, fixed enabled/disabled state fot toolbar buttons, thanks Glen 3) Added support for 'deselectAll' SVG DOM call. 4) Fixed NPE regression with Images in a dynamic context. 5) Fixed rendering regression with use elements in a dynamic context. 6) Added support for get[Screen]PixelUnitToMillimeterX/Y 7) Fixed bug in text selection (programatically selected text wouldn't clear properly. 8) Updated a number of reference images 9) Permission tests now allow 'stopThread' - modifyThread prevents stopping other threads. 10) Tweaks to memory leak tests. PR: 28188, 28487 Obtained from: Glen Mazza Revision Changes Path 1.150 +2 -2 xml-batik/build.xml http://cvs.apache.org/viewcvs/xml-batik/build.xml.diff?r1=1.149&r2=1.150 1.60 +3 -3 xml-batik/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties http://cvs.apache.org/viewcvs/xml-batik/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties.diff?r1=1.59&r2=1.60 1.102 +6 -9 xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java.diff?r1=1.101&r2=1.102 1.35 +5 -1 xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/bridge/AbstractGraphicsNodeBridge.java.diff?r1=1.34&r2=1.35 1.66 +5 -2 xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java.diff?r1=1.65&r2=1.66 1.94 +8 -1 xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java.diff?r1=1.93&r2=1.94 1.42 +6 -9 xml-batik/sources/org/apache/batik/bridge/SVGUseElementBridge.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/bridge/SVGUseElementBridge.java.diff?r1=1.41&r2=1.42 1.30 +6 -1 xml-batik/sources/org/apache/batik/bridge/UserAgent.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/bridge/UserAgent.java.diff?r1=1.29&r2=1.30 1.18 +6 -1 xml-batik/sources/org/apache/batik/bridge/UserAgentAdapter.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/bridge/UserAgentAdapter.java.diff?r1=1.17&r2=1.18 1.13 +7 -1 xml-batik/sources/org/apache/batik/dom/svg/SVGContext.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/dom/svg/SVGContext.java.diff?r1=1.12&r2=1.13 1.25 +6 -6 xml-batik/sources/org/apache/batik/dom/svg/SVGOMSVGElement.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMSVGElement.java.diff?r1=1.24&r2=1.25 1.19 +2 -1 xml-batik/sources/org/apache/batik/gvt/text/ConcreteTextSelector.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/gvt/text/ConcreteTextSelector.java.diff?r1=1.18&r2=1.19 1.95 +33 -5 xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java.diff?r1=1.94&r2=1.95 1.19 +12 -7 xml-batik/sources/org/apache/batik/transcoder/SVGAbstractTranscoder.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/transcoder/SVGAbstractTranscoder.java.diff?r1=1.18&r2=1.19 1.47 +2 -1 xml-batik/sources/org/apache/batik/transcoder/image/ImageTranscoder.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/transcoder/image/ImageTranscoder.java.diff?r1=1.46&r2=1.47 1.6 +8 -3 xml-batik/sources/org/apache/batik/util/gui/resource/ButtonFactory.java http://cvs.apache.org/viewcvs/xml-batik/sources/org/apache/batik/util/gui/resource/ButtonFactory.java.diff?r1=1.5&r2=1.6 1.3 +66 -80 xml-batik/test-references/samples/tests/spec/text/textBiDi-arabic-5-40.png <<Binary file>> 1.3 +71 -67 xml-batik/test-references/samples/tests/spec/text/textBiDi-cyrillic-4-24.png <<Binary file>> 1.2 +70 -64 xml-batik/test-references/samples/tests/spec/text/textBiDi-greek-0-35.png <<Binary file>> 1.2 +51 -79 xml-batik/test-references/samples/tests/spec/text/textBiDi-hebrew-10-20.png <<Binary file>> 1.3 +65 -69 xml-batik/test-references/samples/tests/spec/text/textBiDi-latin-0-20.png <<Binary file>> 1.3 +85 -103 xml-batik/test-references/samples/tests/spec/text/textBiDi-latin-extended-0-15.png <<Binary file>> 1.13 +101 -88 xml-batik/test-references/samples/tests/spec/text/textBiDi.png <<Binary file>> 1.5 +95 -107 xml-batik/test-references/samples/tests/spec/text/textDecoration2.png <<Binary file>> 1.7 +36 -35 xml-batik/test-resources/org/apache/batik/bridge/JarCheckPermissionsDenied.jar <<Binary file>> 1.4 +27 -13 xml-batik/test-resources/org/apache/batik/bridge/JarCheckPermissionsDenied.java http://cvs.apache.org/viewcvs/xml-batik/test-resources/org/apache/batik/bridge/JarCheckPermissionsDenied.java.diff?r1=1.3&r2=1.4 1.4 +272 -272 xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsDenied.svg http://cvs.apache.org/viewcvs/xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsDenied.svg.diff?r1=1.3&r2=1.4 1.2 +315 -315 xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsDenied2.svg http://cvs.apache.org/viewcvs/xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsDenied2.svg.diff?r1=1.1&r2=1.2 1.2 +298 -298 xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsDeniedEval.svg http://cvs.apache.org/viewcvs/xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsDeniedEval.svg.diff?r1=1.1&r2=1.2 1.2 +299 -299 xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsDeniedFunction.svg http://cvs.apache.org/viewcvs/xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsDeniedFunction.svg.diff?r1=1.1&r2=1.2 1.9 +22 -12 xml-batik/test-sources/org/apache/batik/swing/JSVGMemoryLeakTest.java http://cvs.apache.org/viewcvs/xml-batik/test-sources/org/apache/batik/swing/JSVGMemoryLeakTest.java.diff?r1=1.8&r2=1.9 1.7 +10 -4 xml-batik/test-sources/org/apache/batik/test/MemoryLeakTest.java http://cvs.apache.org/viewcvs/xml-batik/test-sources/org/apache/batik/test/MemoryLeakTest.java.diff?r1=1.6&r2=1.7 --------------------------------------------------------------------- To unsubscribe, e-mail: wayne03@example.net For additional commands, e-mail: wayne03@example.net From batikwayne03@example.net Mon Aug 02 06:09:17 2004 Return-Path: <batikwayne03@example.net> Delivered-To: wayne03@example.net Received: (qmail 40724 invoked from network); 2 Aug 2004 06:09:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 2 Aug 2004 06:09:17 -0000 Received: (qmail 27408 invoked by uid 500); 2 Aug 2004 06:09:17 -0000 Delivered-To: wayne03@example.net Received: (qmail 27239 invoked by uid 500); 2 Aug 2004 06:09:16 -0000 Mailing-List: contact wayne03@example.net; run by ezmlm Precedence: bulk List-Post: <mailto:wayne03@example.net> List-Help: <mailto:wayne03@example.net> List-Unsubscribe: <mailto:wayne03@example.net> List-Subscribe: <mailto:wayne03@example.net> Reply-To: wayne03@example.net Delivered-To: mailing list wayne03@example.net Received: (qmail 27224 invoked by uid 99); 2 Aug 2004 06:09:15 -0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS X-Spam-Check-By: apache.org Subject: Re: cvs commit... From: Tonny Kohar <wayne03@example.net> To: wayne03@example.net In-Reply-To: <wayne03@example.net> References: <wayne03@example.net> Content-Type: text/plain Message-Id: <1091427230.1949.1.camel@localhost> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5-4mdk Date: Mon, 02 Aug 2004 13:14:58 +0700 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hi, On Sun, 2004-08-01 at 19:03, Glen Mazza wrote: > Don't stop there--please apply my two patches (they're > simple, as I don't know much about Batik): > > http://nagoya.apache.org/bugzilla/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&email1=glenmazza&emailtype1=substring&emailreporter1=1&email2=&emailtype2=substring&emailreporter2=1&bugidtype=include&bug_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&product=Batik And here another one - bugzilla id 28035 (Default AttributeInitilizer bug) - bugzilla id 28081 (Enhancement not bug regarding SVG DOM default attribute generator) Thank you Tonny Kohar -- Sketsa SVG Graphics Editor http://www.kiyut.com --------------------------------------------------------------------- To unsubscribe, e-mail: wayne03@example.net For additional commands, e-mail: wayne03@example.net From batikwayne03@example.net Mon Aug 02 17:36:39 2004 Return-Path: <batikwayne03@example.net> Delivered-To: wayne03@example.net Received: (qmail 48488 invoked from network); 2 Aug 2004 17:36:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 2 Aug 2004 17:36:39 -0000 Received: (qmail 30881 invoked by uid 500); 2 Aug 2004 17:36:23 -0000 Delivered-To: wayne03@example.net Received: (qmail 30787 invoked by uid 500); 2 Aug 2004 17:36:22 -0000 Mailing-List: contact wayne03@example.net; run by ezmlm Precedence: bulk List-Post: <mailto:wayne03@example.net> List-Help: <mailto:wayne03@example.net> List-Unsubscribe: <mailto:wayne03@example.net> List-Subscribe: <mailto:wayne03@example.net> Reply-To: wayne03@example.net Delivered-To: mailing list wayne03@example.net Received: (qmail 30750 invoked by uid 99); 2 Aug 2004 17:36:22 -0000 X-ASF-Spam-Status: No, hits=2.5 required=10.0 tests=DNS_FROM_RFC_POST,HTML_40_50,HTML_MESSAGE,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Message-ID: <001701c478b7$bb70d9e0$fcbc223e@hppav> Reply-To: =?iso-8859-1?Q?Herv=E9_Girod?= <wayne03@example.net> From: =?iso-8859-1?Q?Herv=E9_Girod?= <wayne03@example.net> To: <wayne03@example.net> Subject: RFE in WMF transcoder Date: Mon, 2 Aug 2004 19:39:46 +0200 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0014_01C478C8.772F5700" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N ------=_NextPart_000_0014_01C478C8.772F5700 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello ! I have some remarks on the WMF transcoder package. I noticed that the WMF transcoding process don't handle the charset in = which the fonts are defined in the WMF file, the result being that, for = example, greek characters are not properly handled : When some text is = encountered (META_TEXTOUT), the WMFRecordStore uses the standard charset = to decode the incoming bytes. It should use the charset ID encountered = for the last font (META_CREATEFONTINDIRECT), and decode the bytes = accordingly. Another problem I encountered is that the decoding of WMF text = (META_TEXTOUT) seems to depend on the fact that there is exactly as many = bytes as there is characters in the text. In fact, WMF files code = strings in U16 cells, each cell storing two characters, so if there is = an odd number of characters, it is necessary to read the last remaining = half of U16, or the reading of the file will stop abruptly after that... ------=_NextPart_000_0014_01C478C8.772F5700 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=3DContent-Type content=3D"text/html; = charset=3Diso-8859-1"> <META content=3D"MSHTML 6.00.2800.1400" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV><FONT face=3DArial size=3D2>Hello ! I have some remarks on the WMF = transcoder=20 package.</FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV> <DIV><FONT face=3DArial size=3D2>I noticed that the WMF transcoding=20 process&nbsp;don't handle the charset in which the fonts are defined in = the WMF=20 file, the result being that, for example, greek characters are not = properly=20 handled : </FONT><FONT face=3DArial size=3D2>When some text is = encountered (<FONT=20 size=3D3><FONT size=3D2>META_TEXTOUT</FONT>), </FONT><FONT size=3D2>the = WMFRecordStore=20 uses the standard charset to decode the incoming bytes. It should use = the=20 charset ID encountered for the last font (<FONT size=3D3><FONT=20 size=3D2>META_CREATEFONTINDIRECT</FONT>)</FONT>, and decode the bytes=20 accordingly.</FONT></FONT></DIV> <DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV> <DIV><FONT face=3DArial size=3D2>Another problem I encountered is that = the decoding=20 of WMF&nbsp;text (<FONT size=3D3><FONT=20 size=3D2>META_TEXTOUT</FONT>)</FONT>&nbsp;seems to depend on the fact = that there=20 is exactly as many bytes as there is characters in the text. In fact, = WMF files=20 code strings in U16 cells, each&nbsp;cell storing two characters, so if = there is=20 an odd number of characters, it is necessary to read the last remaining = half of=20 U16, or the reading of the file will stop abruptly after=20 that...</FONT></DIV></BODY></HTML> ------=_NextPart_000_0014_01C478C8.772F5700-- From batikwayne03@example.net Tue Aug 03 00:14:24 2004 Return-Path: <batikwayne03@example.net> Delivered-To: wayne03@example.net Received: (qmail 11594 invoked from network); 3 Aug 2004 00:14:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur-2.apache.org with SMTP; 3 Aug 2004 00:14:24 -0000 Received: (qmail 10159 invoked by uid 500); 3 Aug 2004 00:14:23 -0000 Delivered-To: wayne03@example.net Received: (qmail 10116 invoked by uid 500); 3 Aug 2004 00:14:22 -0000 Mailing-List: contact wayne03@example.net; run by ezmlm Precedence: bulk List-Post: <mailto:wayne03@example.net> List-Help: <mailto:wayne03@example.net> List-Unsubscribe: <mailto:wayne03@example.net> List-Subscribe: <mailto:wayne03@example.net> Reply-To: wayne03@example.net Delivered-To: mailing list wayne03@example.net Received: (qmail 10091 invoked by uid 500); 3 Aug 2004 00:14:21 -0000 Delivered-To: wayne03@example.net X-ASF-Spam-Status: No, hits=0.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Date: 3 Aug 2004 00:14:18 -0000 Message-ID: <wayne03@example.net> From: wayne03@example.net To: wayne03@example.net Subject: cvs commit: xml-batik/test-resources/org/apache/batik/bridge JarCheckPermissionsDenied.jar X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N deweese 2004/08/02 17:14:17 Modified: sources/org/apache/batik/bridge SVGPatternElementBridge.java sources/org/apache/batik/dom/svg SVGOMAElement.java SVGOMAltGlyphElement.java SVGOMColorProfileElement.java SVGOMCursorElement.java SVGOMFEImageElement.java SVGOMFilterElement.java SVGOMGlyphRefElement.java SVGOMGradientElement.java SVGOMImageElement.java SVGOMMPathElement.java SVGOMPatternElement.java SVGOMScriptElement.java SVGOMTextPathElement.java SVGOMUseElement.java test-references/org/apache/batik/svggen ContextBug4389.svg ContextClip.svg ContextDrawImage.svg ContextGradient.svg ContextGraphicObjects.svg ContextLookup.svg ContextPaints.svg ContextRHints.svg ContextRescale.svg ContextTexture.svg test-resources/org/apache/batik/bridge JarCheckPermissionsDenied.jar Log: 1) The pattern element now shares one rendering tree across all references. 2) Fixed bug 23035 - Xlink attributes initialized with wrong values. Thanks Tonny PR: 28035 Obtained from: Tonny Kohar Revision Changes Path 1.26 +78 -16 xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java Index: SVGPatternElementBridge.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- SVGPatternElementBridge.java 5 Dec 2003 18:32:37 -0000 1.25 +++ SVGPatternElementBridge.java 3 Aug 2004 00:14:16 -0000 1.26 @@ -50,7 +50,9 @@ package org.apache.batik.bridge; +import java.awt.Graphics2D; import java.awt.Paint; +import java.awt.Shape; import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; import java.util.Iterator; @@ -62,7 +64,8 @@ import org.apache.batik.ext.awt.image.ConcreteComponentTransferFunction; import org.apache.batik.ext.awt.image.renderable.ComponentTransferRable8Bit; import org.apache.batik.ext.awt.image.renderable.Filter; -import org.apache.batik.gvt.CompositeGraphicsNode; +import org.apache.batik.gvt.AbstractGraphicsNode; +import org.apache.batik.gvt.RootGraphicsNode; import org.apache.batik.gvt.GraphicsNode; import org.apache.batik.gvt.PatternPaint; import org.apache.batik.util.ParsedURL; @@ -107,13 +110,20 @@ // extract pattern content - CompositeGraphicsNode patternContentNode - = extractPatternContent(patternElement, ctx); + RootGraphicsNode patternContentNode; + patternContentNode = (RootGraphicsNode) + ctx.getElementData(patternElement); + + if (patternContentNode == null) { + patternContentNode = extractPatternContent(patternElement, ctx); + ctx.setElementData(patternElement, patternContentNode); + } if (patternContentNode == null) { return null; // no content means no paint } - // get pattern region using 'patternUnits'. Pattern region is in tile pace. + // get pattern region using 'patternUnits'. Pattern region is + // in tile pace. Rectangle2D patternRegion = SVGUtilities.convertPatternRegion (patternElement, paintedElement, paintedNode, ctx); @@ -222,11 +232,15 @@ // // Apply transform // - patternContentNode.setTransform(patternContentTransform); - + // RootGraphicsNode gn = new RootGraphicsNode(); + // gn.getChildren().add(patternContentNode); + GraphicsNode gn = new PatternGraphicsNode(patternContentNode); + + gn.setTransform(patternContentTransform); + // take the opacity into account. opacity is implemented by a Filter if (opacity != 1) { - Filter filter = patternContentNode.getGraphicsNodeRable(true); + Filter filter = gn.getGraphicsNodeRable(true); filter = new ComponentTransferRable8Bit (filter, ConcreteComponentTransferFunction.getLinearTransfer @@ -234,10 +248,12 @@ ConcreteComponentTransferFunction.getIdentityTransfer(), //Red ConcreteComponentTransferFunction.getIdentityTransfer(), //Grn ConcreteComponentTransferFunction.getIdentityTransfer());//Blu - patternContentNode.setFilter(filter); + gn.setFilter(filter); } - return new PatternPaint(patternContentNode, + + + return new PatternPaint(gn, patternRegion, !overflowIsHidden, patternTransform); @@ -254,12 +270,12 @@ * @param ctx the bridge context to use */ protected static - CompositeGraphicsNode extractPatternContent(Element patternElement, + RootGraphicsNode extractPatternContent(Element patternElement, BridgeContext ctx) { List refs = new LinkedList(); for (;;) { - CompositeGraphicsNode content + RootGraphicsNode content = extractLocalPatternContent(patternElement, ctx); if (content != null) { return content; // pattern content found, exit @@ -294,11 +310,11 @@ * @param ctx the bridge context */ protected static - CompositeGraphicsNode extractLocalPatternContent(Element e, + RootGraphicsNode extractLocalPatternContent(Element e, BridgeContext ctx) { GVTBuilder builder = ctx.getGVTBuilder(); - CompositeGraphicsNode content = null; + RootGraphicsNode content = null; for (Node n = e.getFirstChild(); n != null; n = n.getNextSibling()) { // check if the Node is valid if (n.getNodeType() != Node.ELEMENT_NODE) { @@ -308,9 +324,9 @@ GraphicsNode gn = builder.build(ctx, (Element)n); // check if a GraphicsNode has been created if (gn != null) { - // lazy instantation of the list of stop elements + // lazy instantation of the grouping element. if (content == null) { - content = new CompositeGraphicsNode(); + content = new RootGraphicsNode(); } content.getChildren().add(gn); } @@ -332,5 +348,51 @@ } return false; } + + public static class PatternGraphicsNode extends AbstractGraphicsNode { + GraphicsNode pcn; + Rectangle2D pBounds; + Rectangle2D gBounds; + Rectangle2D sBounds; + Shape oShape; + public PatternGraphicsNode(GraphicsNode gn) { + this.pcn = gn; + } + public void primitivePaint(Graphics2D g2d) { + pcn.paint(g2d); + } + public Rectangle2D getPrimitiveBounds() { + if (pBounds != null) return pBounds; + pBounds = pcn.getTransformedBounds(IDENTITY); + return pBounds; + } + public Rectangle2D getGeometryBounds() { + if (gBounds != null) return gBounds; + gBounds = pcn.getTransformedGeometryBounds(IDENTITY); + return gBounds; + } + public Rectangle2D getSensitiveBounds() { + if (sBounds != null) return sBounds; + sBounds = pcn.getTransformedSensitiveBounds(IDENTITY); + return sBounds; + } + public Shape getOutline() { + if (oShape != null) return oShape; + oShape = pcn.getOutline(); + AffineTransform tr = pcn.getTransform(); + if (tr != null) + oShape = tr.createTransformedShape(oShape); + return oShape; + } + protected void invalidateGeometryCache() { + pBounds = null; + gBounds = null; + sBounds = null; + oShape = null; + super.invalidateGeometryCache(); + } + + } + } 1.8 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMAElement.java Index: SVGOMAElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMAElement.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- SVGOMAElement.java 8 Aug 2003 11:38:59 -0000 1.7 +++ SVGOMAElement.java 3 Aug 2004 00:14:16 -0000 1.8 @@ -74,21 +74,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "replace"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onRequest"); } /** 1.5 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMAltGlyphElement.java Index: SVGOMAltGlyphElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMAltGlyphElement.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- SVGOMAltGlyphElement.java 8 Aug 2003 11:38:59 -0000 1.4 +++ SVGOMAltGlyphElement.java 3 Aug 2004 00:14:16 -0000 1.5 @@ -74,21 +74,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.6 +6 -14 xml-batik/sources/org/apache/batik/dom/svg/SVGOMColorProfileElement.java Index: SVGOMColorProfileElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMColorProfileElement.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- SVGOMColorProfileElement.java 8 Aug 2003 11:38:59 -0000 1.5 +++ SVGOMColorProfileElement.java 3 Aug 2004 00:14:16 -0000 1.6 @@ -74,26 +74,18 @@ protected final static AttributeInitializer attributeInitializer; static { attributeInitializer = new AttributeInitializer(5); - attributeInitializer.addAttribute(null, - null, + attributeInitializer.addAttribute(null, null, SVG_RENDERING_INTENT_ATTRIBUTE, SVG_AUTO_VALUE); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.6 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMCursorElement.java Index: SVGOMCursorElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMCursorElement.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- SVGOMCursorElement.java 8 Aug 2003 11:38:59 -0000 1.5 +++ SVGOMCursorElement.java 3 Aug 2004 00:14:16 -0000 1.6 @@ -76,21 +76,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.10 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMFEImageElement.java Index: SVGOMFEImageElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMFEImageElement.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- SVGOMFEImageElement.java 8 Aug 2003 11:39:00 -0000 1.9 +++ SVGOMFEImageElement.java 3 Aug 2004 00:14:16 -0000 1.10 @@ -75,21 +75,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "embed"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.15 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMFilterElement.java Index: SVGOMFilterElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMFilterElement.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- SVGOMFilterElement.java 8 Aug 2003 11:39:00 -0000 1.14 +++ SVGOMFilterElement.java 3 Aug 2004 00:14:16 -0000 1.15 @@ -78,21 +78,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.6 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMGlyphRefElement.java Index: SVGOMGlyphRefElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMGlyphRefElement.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- SVGOMGlyphRefElement.java 8 Aug 2003 11:39:00 -0000 1.5 +++ SVGOMGlyphRefElement.java 3 Aug 2004 00:14:16 -0000 1.6 @@ -75,21 +75,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.8 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMGradientElement.java Index: SVGOMGradientElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMGradientElement.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- SVGOMGradientElement.java 8 Aug 2003 11:39:00 -0000 1.7 +++ SVGOMGradientElement.java 3 Aug 2004 00:14:16 -0000 1.8 @@ -77,21 +77,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.10 +6 -14 xml-batik/sources/org/apache/batik/dom/svg/SVGOMImageElement.java Index: SVGOMImageElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMImageElement.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- SVGOMImageElement.java 8 Aug 2003 11:39:00 -0000 1.9 +++ SVGOMImageElement.java 3 Aug 2004 00:14:16 -0000 1.10 @@ -74,26 +74,18 @@ protected final static AttributeInitializer attributeInitializer; static { attributeInitializer = new AttributeInitializer(5); - attributeInitializer.addAttribute(null, - null, + attributeInitializer.addAttribute(null, null, SVG_PRESERVE_ASPECT_RATIO_ATTRIBUTE, "xMidYMid meet"); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "embed"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.5 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMMPathElement.java Index: SVGOMMPathElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMMPathElement.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- SVGOMMPathElement.java 8 Aug 2003 11:39:00 -0000 1.4 +++ SVGOMMPathElement.java 3 Aug 2004 00:14:16 -0000 1.5 @@ -74,21 +74,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.13 +6 -14 xml-batik/sources/org/apache/batik/dom/svg/SVGOMPatternElement.java Index: SVGOMPatternElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMPatternElement.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- SVGOMPatternElement.java 8 Aug 2003 11:39:00 -0000 1.12 +++ SVGOMPatternElement.java 3 Aug 2004 00:14:16 -0000 1.13 @@ -80,26 +80,18 @@ protected final static AttributeInitializer attributeInitializer; static { attributeInitializer = new AttributeInitializer(5); - attributeInitializer.addAttribute(null, - null, + attributeInitializer.addAttribute(null, null, SVG_PRESERVE_ASPECT_RATIO_ATTRIBUTE, "xMidYMid meet"); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.7 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMScriptElement.java Index: SVGOMScriptElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMScriptElement.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- SVGOMScriptElement.java 8 Aug 2003 11:39:00 -0000 1.6 +++ SVGOMScriptElement.java 3 Aug 2004 00:14:16 -0000 1.7 @@ -75,21 +75,14 @@ static { attributeInitializer = new AttributeInitializer(1); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.7 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMTextPathElement.java Index: SVGOMTextPathElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMTextPathElement.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- SVGOMTextPathElement.java 8 Aug 2003 11:39:00 -0000 1.6 +++ SVGOMTextPathElement.java 3 Aug 2004 00:14:16 -0000 1.7 @@ -76,21 +76,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "other"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.9 +5 -12 xml-batik/sources/org/apache/batik/dom/svg/SVGOMUseElement.java Index: SVGOMUseElement.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/svg/SVGOMUseElement.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- SVGOMUseElement.java 8 Aug 2003 11:39:00 -0000 1.8 +++ SVGOMUseElement.java 3 Aug 2004 00:14:16 -0000 1.9 @@ -78,21 +78,14 @@ static { attributeInitializer = new AttributeInitializer(4); attributeInitializer.addAttribute(XMLSupport.XMLNS_NAMESPACE_URI, - null, - "xmlns:xlink", + null, "xmlns:xlink", XLinkSupport.XLINK_NAMESPACE_URI); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "type", - "simple"); + "xlink", "type", "simple"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "show", - "replace"); + "xlink", "show", "embed"); attributeInitializer.addAttribute(XLinkSupport.XLINK_NAMESPACE_URI, - "xlink", - "actuate", - "onRequest"); + "xlink", "actuate", "onLoad"); } /** 1.5 +5 -5 xml-batik/test-references/org/apache/batik/svggen/ContextBug4389.svg Index: ContextBug4389.svg =================================================================== RCS file: /home/cvs/xml-batik/test-references/org/apache/batik/svggen/ContextBug4389.svg,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- ContextBug4389.svg 22 Aug 2002 12:32:30 -0000 1.4 +++ ContextBug4389.svg 3 Aug 2004 00:14:17 -0000 1.5 @@ -6,9 +6,9 @@ <defs id="genericDefs" /> <g> <style type="text/css" xml:space="preserve"> - <![CDATA[.testC1 {} -.testC2 {} -.testC3 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} + <![CDATA[.testC1 {} +.testC2 {} +.testC3 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} ]]> </style> <g> @@ -190,10 +190,10 @@ I0NWlP50hV7LfYycr+M7gTujScPuFZ+wjrzMrNR8DdMDDH/p7vp2YN9BdwQMd5Wx iQBfbSAwQjZ0OjCKN6SiSG/SUh9N9BwiHBJJM0lzsjtAUthFtsMjFogUz16uHVGm 3YFupUdXt1Y7vnOEGb59gIR/9+41Pf/iVM9ezHXNrguimj/++7c1newQjmudPBhr -0ENZp2arI3rHZFLl7ifblZIUJP3/xKLSFlvxD0QAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onRequest" height="63" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +0ENZp2arI3rHZFLl7ifblZIUJP3/xKLSFlvxD0QAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="63" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> </defs> <g class="testC1" transform="translate(40,40)"> - <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC2" xlink:actuate="onRequest" xlink:show="replace" /> + <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC2" xlink:actuate="onLoad" xlink:show="embed" /> </g> </g> </g> 1.20 +28 -28 xml-batik/test-references/org/apache/batik/svggen/ContextClip.svg Index: ContextClip.svg =================================================================== RCS file: /home/cvs/xml-batik/test-references/org/apache/batik/svggen/ContextClip.svg,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- ContextClip.svg 5 Jul 2003 14:18:29 -0000 1.19 +++ ContextClip.svg 3 Aug 2004 00:14:17 -0000 1.20 @@ -6,27 +6,27 @@ <defs id="genericDefs" /> <g> <style type="text/css" xml:space="preserve"> - <![CDATA[.testC1 {text-rendering:optimizeLegibility;} -.testC2 {clip-path:url(#testclipPath1);} -.testC3 {stroke:none;} -.testC4 {stroke:none;} -.testC5 {clip-path:url(#testclipPath2);} -.testC6 {text-rendering:optimizeLegibility;} -.testC7 {stroke:none;} -.testC8 {stroke:none;} -.testC9 {clip-path:url(#testclipPath2);} -.testC10 {text-rendering:optimizeLegibility;} -.testC11 {stroke:none;} -.testC12 {clip-path:url(#testclipPath3);} -.testC13 {text-rendering:optimizeLegibility;} -.testC14 {stroke:none;} -.testC15 {stroke:none;} -.testC16 {clip-path:url(#testclipPath3);} -.testC17 {text-rendering:optimizeLegibility;} -.testC18 {stroke:none;} -.testC19 {stroke:none;} -.testC20 {clip-path:url(#testclipPath4);} -.testC21 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} + <![CDATA[.testC1 {text-rendering:optimizeLegibility;} +.testC2 {clip-path:url(#testclipPath1);} +.testC3 {stroke:none;} +.testC4 {stroke:none;} +.testC5 {clip-path:url(#testclipPath2);} +.testC6 {text-rendering:optimizeLegibility;} +.testC7 {stroke:none;} +.testC8 {stroke:none;} +.testC9 {clip-path:url(#testclipPath2);} +.testC10 {text-rendering:optimizeLegibility;} +.testC11 {stroke:none;} +.testC12 {clip-path:url(#testclipPath3);} +.testC13 {text-rendering:optimizeLegibility;} +.testC14 {stroke:none;} +.testC15 {stroke:none;} +.testC16 {clip-path:url(#testclipPath3);} +.testC17 {text-rendering:optimizeLegibility;} +.testC18 {stroke:none;} +.testC19 {stroke:none;} +.testC20 {clip-path:url(#testclipPath4);} +.testC21 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} ]]> </style> <g> @@ -76,32 +76,32 @@ <image width="100" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAyCAYAAACqNX6+AAAAbklEQVR42u3asQ0A MAgEMYjYf+UkQ1C9fEyALDq67p+EOmKLOiUgAgJEQIAICBABASIgAgJEQIAICBAB ASIgAgJEQIBos0n5k0v5lHMhQAQEiIAAERAgAgJEQAQEiIAAERAgAgJEQAQEiIAA -0W4PbEgEZMeFA8QAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onRequest" height="50" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +0W4PbEgEZMeFA8QAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="50" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> </defs> <g class="testC1"> - <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC2" xlink:actuate="onRequest" xlink:show="replace" /> + <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC2" xlink:actuate="onLoad" xlink:show="embed" /> <text xml:space="preserve" x="110" y="25" class="testC3">Clip set to device bounds</text> <text xml:space="preserve" x="110" y="25" class="testC4" transform="translate(0,70)">Clip set to upper right quarter</text> - <use transform="translate(0,70)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC5" xlink:actuate="onRequest" xlink:show="replace" /> + <use transform="translate(0,70)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC5" xlink:actuate="onLoad" xlink:show="embed" /> </g> <g class="testC6" transform="translate(0,140)"> <text xml:space="preserve" x="110" y="15" class="testC7">Clip set to upper right quarter</text> <text xml:space="preserve" x="110" y="30" class="testC8">after .5 scale</text> - <use transform="scale(0.5,0.5)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC9" xlink:actuate="onRequest" xlink:show="replace" /> + <use transform="scale(0.5,0.5)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC9" xlink:actuate="onLoad" xlink:show="embed" /> </g> <g class="testC10" transform="translate(0,210)"> <text xml:space="preserve" x="110" y="25" class="testC11">Non-Rectagular clip</text> - <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC12" xlink:actuate="onRequest" xlink:show="replace" /> + <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC12" xlink:actuate="onLoad" xlink:show="embed" /> </g> <g class="testC13" transform="translate(0,280)"> <text xml:space="preserve" x="110" y="15" class="testC14">Non-Rectagular clip after</text> <text xml:space="preserve" x="110" y="30" class="testC15">.5 scale</text> - <use transform="scale(0.5,0.5)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC16" xlink:actuate="onRequest" xlink:show="replace" /> + <use transform="scale(0.5,0.5)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC16" xlink:actuate="onLoad" xlink:show="embed" /> </g> <g class="testC17" transform="translate(0,350)"> <text xml:space="preserve" x="110" y="15" class="testC18">Non-Rectagular clip before</text> <text xml:space="preserve" x="110" y="30" class="testC19">.5 scale</text> - <use transform="scale(0.5,0.5)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC20" xlink:actuate="onRequest" xlink:show="replace" /> + <use transform="scale(0.5,0.5)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC20" xlink:actuate="onLoad" xlink:show="embed" /> </g> </g> </g> 1.11 +23 -23 xml-batik/test-references/org/apache/batik/svggen/ContextDrawImage.svg Index: ContextDrawImage.svg =================================================================== RCS file: /home/cvs/xml-batik/test-references/org/apache/batik/svggen/ContextDrawImage.svg,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ContextDrawImage.svg 5 Jul 2003 14:18:29 -0000 1.10 +++ ContextDrawImage.svg 3 Aug 2004 00:14:17 -0000 1.11 @@ -6,18 +6,18 @@ <defs id="genericDefs" /> <g> <style type="text/css" xml:space="preserve"> - <![CDATA[.testC1 {text-rendering:optimizeLegibility;stroke:gray;fill:gray;} -.testC2 {stroke:none;} -.testC3 {fill:black;stroke:black;} -.testC4 {fill:black;stroke:black;} -.testC5 {fill:black;stroke:black;} -.testC6 {stroke:none;} -.testC7 {fill:black;stroke:black;} -.testC8 {fill:black;stroke:black;} -.testC9 {fill:black;stroke:black;} -.testC10 {stroke:none;} -.testC11 {fill:black;stroke:black;} -.testC12 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} + <![CDATA[.testC1 {text-rendering:optimizeLegibility;stroke:gray;fill:gray;} +.testC2 {stroke:none;} +.testC3 {fill:black;stroke:black;} +.testC4 {fill:black;stroke:black;} +.testC5 {fill:black;stroke:black;} +.testC6 {stroke:none;} +.testC7 {fill:black;stroke:black;} +.testC8 {fill:black;stroke:black;} +.testC9 {fill:black;stroke:black;} +.testC10 {stroke:none;} +.testC11 {fill:black;stroke:black;} +.testC12 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} ]]> </style> <g> @@ -26,30 +26,30 @@ IAxA0dZ4KG8H3s5bYWB1cgPy/sDePGFqYkZEC03T2Y+6wSDlWX+GvCIO3+RcAQEi IEAEBIiAABEQIAIiIEAEBIiAABEQIAIiIED0v7GXVXZYlUs3RECACAgQAREQIAIC RECACAgQAREQIAICRECACAgQAdG3sSgXtSw/SMa9w6pcc0M8WQICRECACAgQAQEi -IAICRECACAgQAQEiIAICRECWr+8y+dPnRL0NfQiZFsn8oQAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onRequest" height="75" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +IAICRECACAgQAQEiIAICRECWr+8y+dPnRL0NfQiZFsn8oQAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="75" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> <image width="50" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAZCAYAAABzVH1EAAAAO0lEQVR42u3PMREA IAwEsC+HKPxPuAILrPQSB6kkJw3Ms/9P1EpGmhAREREREREREREREREREREReXEB -Mj4DM5nvS3kAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onRequest" height="25" id="testimage2" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +Mj4DM5nvS3kAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="25" id="testimage2" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> <image width="50" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAZCAYAAABzVH1EAAAAN0lEQVR42u3PQQ0A MAwDsWz8ObeDsHfkkw6Ak47mlkACAgICAgICAgICAgICAgICAvLTeU8DZAF1jQIu -ZhJ9hAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onRequest" height="25" id="testimage3" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +ZhJ9hAAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="25" id="testimage3" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> <image width="100" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABLCAYAAACGGCK3AAAAqUlEQVR42u3asQ2A MAwAQYPYKwzDHsh7MAyjodCShi6J7gv31sVdItRVSx37BIuUY/wd8opYvcm+AgJE QIAICBABASIgQAREQIAICBABASIgQAREQIDof1sd5Zxgk3QhAgJEQIAIiIAAERAg AgJEQIAIiIAAERAgAgJEQIAIiL69H+XiHn+RdCECAkRAgAiIgAARECACAkRAgAiI -gAARECACAkRAgEhq9ABtlAUWpLluEgAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onRequest" height="75" id="testimage4" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +gAARECACAkRAgEhq9ABtlAUWpLluEgAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="75" id="testimage4" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> </defs> <g class="testC1"> <rect width="100" x="5" height="75" y="10" class="testC2" /> - <use transform="matrix(1,0,0,1,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC3" xlink:actuate="onRequest" xlink:show="replace" /> - <use transform="translate(150,0) matrix(0.5,0,0,0.5333,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC4" xlink:actuate="onRequest" xlink:show="replace" /> - <use transform="translate(0,80) matrix(0.8,0,0,1.2,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage2" xlink:type="simple" class="testC5" xlink:actuate="onRequest" xlink:show="replace" /> + <use transform="matrix(1,0,0,1,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC3" xlink:actuate="onLoad" xlink:show="embed" /> + <use transform="translate(150,0) matrix(0.5,0,0,0.5333,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC4" xlink:actuate="onLoad" xlink:show="embed" /> + <use transform="translate(0,80) matrix(0.8,0,0,1.2,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage2" xlink:type="simple" class="testC5" xlink:actuate="onLoad" xlink:show="embed" /> <rect x="5" y="10" transform="translate(150,80)" width="40" class="testC6" height="30" /> - <use transform="translate(150,80) matrix(0.8,0,0,1.2,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage3" xlink:type="simple" class="testC7" xlink:actuate="onRequest" xlink:show="replace" /> - <use transform="translate(0,160) matrix(0.5,0,0,0.3,2.5,3)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC8" xlink:actuate="onRequest" xlink:show="replace" /> - <use transform="translate(150,160) matrix(1,0,0,1,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage4" xlink:type="simple" class="testC9" xlink:actuate="onRequest" xlink:show="replace" /> + <use transform="translate(150,80) matrix(0.8,0,0,1.2,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage3" xlink:type="simple" class="testC7" xlink:actuate="onLoad" xlink:show="embed" /> + <use transform="translate(0,160) matrix(0.5,0,0,0.3,2.5,3)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC8" xlink:actuate="onLoad" xlink:show="embed" /> + <use transform="translate(150,160) matrix(1,0,0,1,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage4" xlink:type="simple" class="testC9" xlink:actuate="onLoad" xlink:show="embed" /> <rect x="5" y="10" transform="translate(0,240)" width="50" class="testC10" height="40" /> - <use transform="translate(0,240) matrix(0.5,0,0,0.5333,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC11" xlink:actuate="onRequest" xlink:show="replace" /> + <use transform="translate(0,240) matrix(0.5,0,0,0.5333,5,10)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC11" xlink:actuate="onLoad" xlink:show="embed" /> </g> </g> </g> 1.16 +23 -23 xml-batik/test-references/org/apache/batik/svggen/ContextGradient.svg Index: ContextGradient.svg =================================================================== RCS file: /home/cvs/xml-batik/test-references/org/apache/batik/svggen/ContextGradient.svg,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- ContextGradient.svg 5 Jul 2003 14:18:29 -0000 1.15 +++ ContextGradient.svg 3 Aug 2004 00:14:17 -0000 1.16 @@ -6,45 +6,45 @@ <defs id="genericDefs" /> <g> <style type="text/css" xml:space="preserve"> - <![CDATA[.testC1 {text-rendering:optimizeLegibility;} -.testC2 {stroke:none;} -.testC3 {fill:url(#testlinearGradient1);stroke:none;} -.testC4 {fill:none;} -.testC5 {text-rendering:optimizeLegibility;} -.testC6 {fill:none;} -.testC7 {text-rendering:optimizeLegibility;} -.testC8 {stroke:none;} -.testC9 {fill:url(#testlinearGradient2);stroke:none;} -.testC10 {fill:url(#testlinearGradient3);stroke:none;} -.testC11 {fill:none;} -.testC12 {text-rendering:optimizeLegibility;} -.testC13 {stroke:none;} -.testC14 {fill:url(#testlinearGradient4);stroke:none;} -.testC15 {text-rendering:optimizeLegibility;} -.testC16 {stroke:none;} -.testC17 {fill:url(#testlinearGradient5);stroke:none;} -.testC18 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} + <![CDATA[.testC1 {text-rendering:optimizeLegibility;} +.testC2 {stroke:none;} +.testC3 {fill:url(#testlinearGradient1);stroke:none;} +.testC4 {fill:none;} +.testC5 {text-rendering:optimizeLegibility;} +.testC6 {fill:none;} +.testC7 {text-rendering:optimizeLegibility;} +.testC8 {stroke:none;} +.testC9 {fill:url(#testlinearGradient2);stroke:none;} +.testC10 {fill:url(#testlinearGradient3);stroke:none;} +.testC11 {fill:none;} +.testC12 {text-rendering:optimizeLegibility;} +.testC13 {stroke:none;} +.testC14 {fill:url(#testlinearGradient4);stroke:none;} +.testC15 {text-rendering:optimizeLegibility;} +.testC16 {stroke:none;} +.testC17 {fill:url(#testlinearGradient5);stroke:none;} +.testC18 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} ]]> </style> <g> <defs id="testdefs1"> - <linearGradient x1="30" xmlns:xlink="http://www.w3.org/1999/xlink" x2="30" y1="40" gradientUnits="userSpaceOnUse" y2="120" xlink:type="simple" xlink:actuate="onRequest" id="testlinearGradient1" xlink:show="replace" spreadMethod="pad"> + <linearGradient x1="30" xmlns:xlink="http://www.w3.org/1999/xlink" x2="30" y1="40" gradientUnits="userSpaceOnUse" y2="120" xlink:type="simple" xlink:actuate="onLoad" id="testlinearGradient1" xlink:show="other" spreadMethod="pad"> <stop stop-opacity="1" stop-color="red" offset="0%" /> <stop stop-opacity="1" stop-color="yellow" offset="100%" /> </linearGradient> - <linearGradient x1="0" xmlns:xlink="http://www.w3.org/1999/xlink" x2="20" y1="0" gradientUnits="userSpaceOnUse" y2="0" xlink:type="simple" xlink:actuate="onRequest" id="testlinearGradient2" xlink:show="replace" spreadMethod="pad"> + <linearGradient x1="0" xmlns:xlink="http://www.w3.org/1999/xlink" x2="20" y1="0" gradientUnits="userSpaceOnUse" y2="0" xlink:type="simple" xlink:actuate="onLoad" id="testlinearGradient2" xlink:show="other" spreadMethod="pad"> <stop stop-opacity="1" stop-color="red" offset="0%" /> <stop stop-opacity="1" stop-color="yellow" offset="100%" /> </linearGradient> - <linearGradient x1="0" xmlns:xlink="http://www.w3.org/1999/xlink" x2="20" y1="0" gradientUnits="userSpaceOnUse" y2="0" xlink:type="simple" xlink:actuate="onRequest" id="testlinearGradient3" xlink:show="replace" spreadMethod="reflect"> + <linearGradient x1="0" xmlns:xlink="http://www.w3.org/1999/xlink" x2="20" y1="0" gradientUnits="userSpaceOnUse" y2="0" xlink:type="simple" xlink:actuate="onLoad" id="testlinearGradient3" xlink:show="other" spreadMethod="reflect"> <stop stop-opacity="1" stop-color="red" offset="0%" /> <stop stop-opacity="1" stop-color="yellow" offset="100%" /> </linearGradient> - <linearGradient x1="0" xmlns:xlink="http://www.w3.org/1999/xlink" x2="100" y1="0" gradientUnits="userSpaceOnUse" y2="0" xlink:type="simple" xlink:actuate="onRequest" id="testlinearGradient4" xlink:show="replace" spreadMethod="pad"> + <linearGradient x1="0" xmlns:xlink="http://www.w3.org/1999/xlink" x2="100" y1="0" gradientUnits="userSpaceOnUse" y2="0" xlink:type="simple" xlink:actuate="onLoad" id="testlinearGradient4" xlink:show="other" spreadMethod="pad"> <stop stop-opacity="1" stop-color="red" offset="0%" /> <stop stop-opacity="1" stop-color="yellow" offset="100%" /> </linearGradient> - <linearGradient x1="10" xmlns:xlink="http://www.w3.org/1999/xlink" x2="110" y1="30" gradientUnits="userSpaceOnUse" y2="30" xlink:type="simple" xlink:actuate="onRequest" id="testlinearGradient5" xlink:show="replace" spreadMethod="pad"> + <linearGradient x1="10" xmlns:xlink="http://www.w3.org/1999/xlink" x2="110" y1="30" gradientUnits="userSpaceOnUse" y2="30" xlink:type="simple" xlink:actuate="onLoad" id="testlinearGradient5" xlink:show="other" spreadMethod="pad"> <stop stop-opacity="0" stop-color="rgb(255,0,0)" offset="0%" /> <stop stop-opacity="1" stop-color="yellow" offset="100%" /> </linearGradient> 1.20 +13 -13 xml-batik/test-references/org/apache/batik/svggen/ContextGraphicObjects.svg Index: ContextGraphicObjects.svg =================================================================== RCS file: /home/cvs/xml-batik/test-references/org/apache/batik/svggen/ContextGraphicObjects.svg,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- ContextGraphicObjects.svg 5 Jul 2003 14:18:29 -0000 1.19 +++ ContextGraphicObjects.svg 3 Aug 2004 00:14:17 -0000 1.20 @@ -6,15 +6,15 @@ <defs id="genericDefs" /> <g> <style type="text/css" xml:space="preserve"> - <![CDATA[.testC1 {text-rendering:optimizeLegibility;font-family:'Times New Roman';font-size:20;} -.testC2 {stroke:none;} -.testC3 {fill:rgb(176,22,40);stroke:none;} -.testC4 {fill:rgb(208,170,119);stroke:none;} -.testC5 {fill:rgb(221,229,111);stroke:none;} -.testC6 {fill:rgb(240,165,0);stroke:none;} -.testC7 {fill:rgb(240,165,0);stroke:rgb(240,165,0);} -.testC8 {fill:rgb(240,165,0);stroke:rgb(240,165,0);} -.testC9 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} + <![CDATA[.testC1 {text-rendering:optimizeLegibility;font-family:'Times New Roman';font-size:20;} +.testC2 {stroke:none;} +.testC3 {fill:rgb(176,22,40);stroke:none;} +.testC4 {fill:rgb(208,170,119);stroke:none;} +.testC5 {fill:rgb(221,229,111);stroke:none;} +.testC6 {fill:rgb(240,165,0);stroke:none;} +.testC7 {fill:rgb(240,165,0);stroke:rgb(240,165,0);} +.testC8 {fill:rgb(240,165,0);stroke:rgb(240,165,0);} +.testC9 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} ]]> </style> <g> @@ -54,7 +54,7 @@ 54KALxYoCCgITEe6ISYn1zkXBHyxQEFAQWA60g0xObnOuSDgiwUKAgoC05FuiMnJ dc4FAV8sUBBQEJiOdENMTq5zLgj4YoGCgILAdKQbYnJynXNBwBcLFAQUBKYj3RCT k+ucCwK+WKAgoCAwHemGmJxc51wQ8MUCBQEFgelIN8Tk5DrngoAvFigIKAgsfQCj -AQrLWU2b7gAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onRequest" height="150" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +AQrLWU2b7gAAAABJRU5ErkJggg==" xlink:type="simple" xlink:actuate="onLoad" height="150" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> <image width="200" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACWCAYAAACb3McZAAAMBUlEQVR42u3da4gk VxXA8eqanhmyEiF+WBMQURHRoEGIDwiICIIYH/gG8YUJu0skGkFIEMFkwRf6Rf3g 6kQUHyi6wQeIqCAoiIIEEkWiG9HoF8OCGkgMm31Ml+d23dt17q1zq6pndkiy998w @@ -120,7 +120,7 @@ p08/bWgOgjtwR5nuCMlx+eX/HZqD4A7cUaY7XHJMmoPgDtxRojvcyVWPK6540J6D 4A7cUbI7QnIYcxDcgTtwR4ifOnVVOgfBHbgDd7jq4ZLj8OH7+nMQ3IE7SneHS47e HAR34A7c8eAq7qrHyZNXd0jHHbgDd7TuCMnhKwjuwB24Q7uju7Xjzf8BxjbJhW9v -vFkAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onRequest" height="150" id="testimage2" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +vFkAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="150" id="testimage2" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> </defs> <g class="testC1"> <text xml:space="preserve" x="20" y="40" class="testC2">Hello SVG drawString(...)</text> @@ -128,8 +128,8 @@ <circle r="30" class="testC4" cx="50" transform="translate(60,70)" cy="30" /> <circle r="30" class="testC5" cx="50" transform="translate(120,70)" cy="30" /> <circle r="30" class="testC6" cx="50" transform="translate(180,70)" cy="30" /> - <use transform="translate(0,130) matrix(1,0,0,1,40,40)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC7" xlink:actuate="onRequest" xlink:show="replace" /> - <use transform="translate(0,130) matrix(1,0,0,1,40,40)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage2" xlink:type="simple" class="testC8" xlink:actuate="onRequest" xlink:show="replace" /> + <use transform="translate(0,130) matrix(1,0,0,1,40,40)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC7" xlink:actuate="onLoad" xlink:show="embed" /> + <use transform="translate(0,130) matrix(1,0,0,1,40,40)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage2" xlink:type="simple" class="testC8" xlink:actuate="onLoad" xlink:show="embed" /> </g> </g> </g> 1.20 +9 -9 xml-batik/test-references/org/apache/batik/svggen/ContextLookup.svg Index: ContextLookup.svg =================================================================== RCS file: /home/cvs/xml-batik/test-references/org/apache/batik/svggen/ContextLookup.svg,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- ContextLookup.svg 5 Jul 2003 14:18:29 -0000 1.19 +++ ContextLookup.svg 3 Aug 2004 00:14:17 -0000 1.20 @@ -6,11 +6,11 @@ <defs id="genericDefs" /> <g> <style type="text/css" xml:space="preserve"> - <![CDATA[.testC1 {text-rendering:optimizeLegibility;} -.testC2 {stroke:none;} -.testC3 {} -.testC4 {} -.testC5 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} + <![CDATA[.testC1 {text-rendering:optimizeLegibility;} +.testC2 {stroke:none;} +.testC3 {} +.testC4 {} +.testC5 {stroke-dashoffset:0;text-rendering:auto;color-rendering:auto;stroke-linecap:square;fill:black;font-size:12;stroke-linejoin:miter;font-weight:normal;stroke:black;fill-opacity:1;font-style:normal;stroke-dasharray:none;stroke-miterlimit:10;color-interpolation:auto;image-rendering:auto;shape-rendering:auto;font-family:'Arial';stroke-width:1;stroke-opacity:1;} ]]> </style> <g> @@ -210,7 +210,7 @@ I0NWlP50hV7LfYycr+M7gTujScPuFZ+wjrzMrNR8DdMDDH/p7vp2YN9BdwQMd5Wx iQBfbSAwQjZ0OjCKN6SiSG/SUh9N9BwiHBJJM0lzsjtAUthFtsMjFogUz16uHVGm 3YFupUdXt1Y7vnOEGb59gIR/9+41Pf/iVM9ezHXNrguimj/++7c1newQjmudPBhr -0ENZp2arI3rHZFLl7ifblZIUJP3/xKLSFlvxD0QAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onRequest" height="63" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +0ENZp2arI3rHZFLl7ifblZIUJP3/xKLSFlvxD0QAAAAASUVORK5CYII=" xlink:type="simple" xlink:actuate="onLoad" height="63" id="testimage1" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> <image width="50" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAA/CAYAAACioZtvAAAgAElEQVR42iWaSY8l 15me35jjzmMONWQNZLE4iJS6RQ2thhttuCEY8sKAARv2zhv/EP0VL+2F4YUNGN1w 2wsbbrUEURRFkWKRNVdlVU53jhs34kaEn+8khYIqs+6NOOcb3uE7x/sP/+LfNGW8 @@ -388,12 +388,12 @@ fn3NJ6wjiRC3hu/z7BLDH7m7vhvYd7GeAcNrpWyiwlcbCMyQDZsNjNLMqSjSm++0 RBPdhQjnRNJM0pDsLpAUdpHt4pwFIsXTk64jSrv69DI7v761uqmdI0zx7Qsk/LfP 3urux8e6d2eot3ZdENX82f95ofGkhXDs6vTxlZtAzjOz1Xa+bzIpdPeT7UpJBpL+ -fybudeoweVphAAAAAElFTkSuQmCC" xlink:type="simple" xlink:actuate="onRequest" height="63" id="testimage2" preserveAspectRatio="xMidYMid meet" xlink:show="replace" /> +fybudeoweVphAAAAAElFTkSuQmCC" xlink:type="simple" xlink:actuate="onLoad" height="63" id="testimage2" preserveAspectRatio="xMidYMid meet" xlink:show="embed" /> </defs> <g class="testC1"> <text xml:space="preserve" x="10" y="20" class="testC2">Normal / Inverted</text> - <use transform="matrix(1,0,0,1,10,30)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1" xlink:type="simple" class="testC3" xlink:actuate="onRequest" xlink:show="replace" />
{'source': 'Apache Software Foundation Public Mail Archives'}