deweese 2003/10/17 11:10:23
Modified: resources/org/apache/batik/bridge BrokenLink.svg
resources/org/apache/batik/bridge/resources
Messages.properties
sources/org/apache/batik/bridge SVGBrokenLinkProvider.java
SVGImageElementBridge.java
sources/org/apache/batik/gvt ImageNode.java
test-references/org/apache/batik/svggen Bug6535.svg
ContextBug6535.svg ContextRHints.svg RHints.svg
test-references/org/apache/batik/svggen/rendering
Bug6535.png
test-references/samples/tests/spec/scripting
text_content.png visibility.png
test-references/samples/tests/spec/text textDecoration2.png
Added: test-references/samples/tests/spec/scripting display.png
Log:
1) Images are once again displayed as 'broken links' when the URL
can not be opened.
2) The 'explination' works again for broken link images and should
be more useful than previously.
3) Updated some regard references.
Revision Changes Path
1.7 +30 -27 xml-batik/resources/org/apache/batik/bridge/BrokenLink.svg
Index: BrokenLink.svg
===================================================================
RCS file: /home/cvs/xml-batik/resources/org/apache/batik/bridge/BrokenLink.svg,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- BrokenLink.svg 8 Aug 2003 11:39:28 -0000 1.6
+++ BrokenLink.svg 17 Oct 2003 18:10:22 -0000 1.7
@@ -52,33 +52,36 @@
-->
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 55.521 60.508" preserveAspectRatio="none">
- <defs>
- <g id="Broken_Border" style="stroke-width:0.2">
- <path
d="M21.927,58.088l4.999-6.834l-4.999-4.166l0.404-1.441l3.526-12.556l0.235-0.837l-2.489-3.268l-0.177-0.232l1.222-7.64c-0.656-0.432-1.607-0.455-2.575,0.15c-0.065,0.047-0.132,0.104-0.197,0.161c-0.379-0.118-0.806-0.078-1.253,0.162c0.737-0.991,1.604-2.324,2.37-3.884l-2.566-3.949l0.096-0.35l1.404-5.15l-1.151-6.167H1.927v56.333h19.798l0.202-0.333z"/>
- <path
d="M53.593,2.087h-24.11l-0.39,8.833l1.749,4.664l0.251,0.669l-0.124,0.965c0.061,0.173,0.13,0.331,0.21,0.468c-0.104,0.174-0.226,0.33-0.334,0.5l-0.585,4.567l0.072,1.644l0.261,5.856l-0.384,3.934l-0.283,2.9l2.875,6.468l0.459,1.032l-3.334,5.833l4,7.833l0.08,0.167h19.587V2.087z"/>
- </g>
- </defs>
+<svg viewBox="0 0 55.521 60.508" preserveAspectRatio="none"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" >
+ <defs>
+ <g id="__Broken_Link_Border" style="stroke-width:0.2">
+ <path
d="M21.927,58.088l4.999-6.834l-4.999-4.166l0.404-1.441l3.526-12.556l0.235-0.837l-2.489-3.268l-0.177-0.232l1.222-7.64c-0.656-0.432-1.607-0.455-2.575,0.15c-0.065,0.047-0.132,0.104-0.197,0.161c-0.379-0.118-0.806-0.078-1.253,0.162c0.737-0.991,1.604-2.324,2.37-3.884l-2.566-3.949l0.096-0.35l1.404-5.15l-1.151-6.167H1.927v56.333h19.798l0.202-0.333z"/>
+ <path
d="M53.593,2.087h-24.11l-0.39,8.833l1.749,4.664l0.251,0.669l-0.124,0.965c0.061,0.173,0.13,0.331,0.21,0.468c-0.104,0.174-0.226,0.33-0.334,0.5l-0.585,4.567l0.072,1.644l0.261,5.856l-0.384,3.934l-0.283,2.9l2.875,6.468l0.459,1.032l-3.334,5.833l4,7.833l0.08,0.167h19.587V2.087z"/>
+ </g>
+ </defs>
- <g style="fill-rule:nonzero; clip-rule:nonzero; stroke-miterlimit:4;">
- <g id="Broken_Squiggle" style="stroke:none;">
- <path id="Border" style="stroke:black;fill:none;stroke-width:0.3"
- d="M55.371,60.358H0.15V0.15h55.221v60.208z"/>
- <use xlink:href="#Broken_Border" fill="white" fill-opacity="0.5"/>
- <path id="Broken_Green_1" style="fill:#33CC33"
-
d="M32.886,43.506c0.656-0.116,1.3-0.415,1.752-0.932c0.412-0.412,0.799-0.814,1.167-1.217c0.011,0.006,0.021,0.012,0.032,0.016c0.029-0.047,0.057-0.096,0.086-0.143c1.289-1.43,2.303-2.883,3.035-4.896c0.516-1.721-0.82-2.205-2.148-2.076c-0.212-1.113-1.281-1.869-2.893-1.283c-0.111,0.031-0.225,0.09-0.339,0.164c-0.809-0.396-2.029-0.135-2.78,0.314c-0.219,0.147-0.378,0.394-0.504,0.685l-0.282,2.9l2.874,6.468z"/>
- <path id="Broken_Green_2" style="fill:#33CC33"
-
d="M21.198,37.293c-0.479,0.961-0.72,2.881,0.961,2.881c0.004,0.002,0.008,0,0.013,0.002c-0.304,0.807-0.617,1.613-0.974,2.398c-1.019,1.891-0.093,2.895,1.219,3.022l3.527-12.556c-1.904,1.104-3.428,2.277-4.746,4.252z"/>
- <path id="Broken_Blue" style="fill:#6666FF"
-
d="M24.734,21.065c-0.656-0.432-1.607-0.455-2.575,0.15c-0.065,0.047-0.132,0.104-0.197,0.161c-0.379-0.118-0.806-0.078-1.253,0.162c0.737-0.991,1.604-2.324,2.37-3.884l-2.566-3.949l0.096-0.35c-3.104,1.641-5.654,3.857-7.81,6.66c-0.72,0.96-1.92,2.88-0.96,4.319c0.619,1.034,2.126,0.464,2.993-0.327c-0.946,1.314-2.54,3.808-3.713,6.808c-0.96,2.4,0.479,4.799,2.88,3.119c1.376-0.951,2.7-1.955,3.942-3.023c0.134,0.188,0.406,0.115,0.857-0.336c0.221-0.221,0.44-0.445,0.661-0.668c0.672,0.652,1.843,0.77,2.938-0.053c0.061-0.09,0.136-0.168,0.203-0.252c0.35-0.127,0.725-0.373,1.088-0.665l-0.177-0.232l1.222-7.64z"/>
- <path id="Broken_Red" style="fill:#FF0000"
-
d="M31.054,17.17c0.061,0.173,0.13,0.331,0.21,0.468c-0.104,0.174-0.226,0.33-0.334,0.5l-0.585,4.567l0.073,1.644c0.423,0.282,0.97,0.352,1.579-0.015c0.227-0.129,0.439-0.273,0.658-0.412c0.451,0.664,1.158,1.001,1.982,0.412c0.153-0.092,0.306-0.176,0.459-0.266c-0.298,1.618-0.162,3.473,1.434,3.401c0.37,0.98,1.139,1.785,2.188,1.186c1.439-0.959,2.879-1.92,4.32-2.879c1.439-0.721,2.158-2.641,1.92-4.321c0-1.08-0.977-2.341-2.223-2.058c0.021-0.034,0.041-0.068,0.063-0.103c0.719-1.199,1.199-2.64,0.719-4.079c-0.24-0.96-1.439-1.921-2.398-1.2c-1.075,0.645-2.147,1.24-3.201,1.832c-0.16-0.339-0.371-0.642-0.618-0.871c0.073-0.16,0.144-0.32,0.218-0.481c0.48-1.2,0.721-6-1.92-4.56c-1.199,0.72-2.16,1.439-3.119,2.399c-0.829,0.829-1.417,2.001-1.551,3.201l0.251,0.669l-0.124,0.965z"/>
- <use xlink:href="#Broken_Border" fill="none" stroke="black"/>
- </g>
- <g id="More_About">
- <circle
style="fill:#FFFF66;fill-opacity:0.7;stroke:black;stroke-width:0.6;"
- cx="48.4" cy="53.25" r="3.5"/>
- <path style="fill:black;stroke:none;"
d="M48.942,54.758c0,0.126,0,0.461,0.074,0.558c0.082,0.112,0.275,0.134,0.394,0.134v0.238c-0.297-0.007-0.602-0.022-0.914-0.029c-0.335,0.007-0.662,0.022-0.997,0.029v-0.238c0.119,0,0.313-0.022,0.395-0.134c0.074-0.097,0.074-0.431,0.074-0.558v-1.286c0-0.446-0.082-0.61-0.476-0.602v-0.246c0.483-0.037,0.959-0.104,1.45-0.223v2.356z
M47.805,51.212c0-0.313,0.253-0.565,0.565-0.565c0.32,0,0.55,0.253,0.55,0.565c0,0.319-0.26,0.55-0.572,0.55c-0.283,0-0.543-0.268-0.543-0.55z"/>
- </g>
+ <g style="fill-rule:nonzero; clip-rule:nonzero; stroke-miterlimit:4;">
+ <g style="stroke:none;">
+ <path style="stroke:black;fill:none;stroke-width:0.3"
+ d="M55.371,60.358H0.15V0.15h55.221v60.208z"/>
+ <use xlink:href="#__Broken_Link_Border" fill="white" fill-opacity="0.5"/>
+ <path style="fill:#33CC33"
+
d="M32.886,43.506c0.656-0.116,1.3-0.415,1.752-0.932c0.412-0.412,0.799-0.814,1.167-1.217c0.011,0.006,0.021,0.012,0.032,0.016c0.029-0.047,0.057-0.096,0.086-0.143c1.289-1.43,2.303-2.883,3.035-4.896c0.516-1.721-0.82-2.205-2.148-2.076c-0.212-1.113-1.281-1.869-2.893-1.283c-0.111,0.031-0.225,0.09-0.339,0.164c-0.809-0.396-2.029-0.135-2.78,0.314c-0.219,0.147-0.378,0.394-0.504,0.685l-0.282,2.9l2.874,6.468z"/>
+ <path style="fill:#33CC33"
+
d="M21.198,37.293c-0.479,0.961-0.72,2.881,0.961,2.881c0.004,0.002,0.008,0,0.013,0.002c-0.304,0.807-0.617,1.613-0.974,2.398c-1.019,1.891-0.093,2.895,1.219,3.022l3.527-12.556c-1.904,1.104-3.428,2.277-4.746,4.252z"/>
+ <path style="fill:#6666FF"
+
d="M24.734,21.065c-0.656-0.432-1.607-0.455-2.575,0.15c-0.065,0.047-0.132,0.104-0.197,0.161c-0.379-0.118-0.806-0.078-1.253,0.162c0.737-0.991,1.604-2.324,2.37-3.884l-2.566-3.949l0.096-0.35c-3.104,1.641-5.654,3.857-7.81,6.66c-0.72,0.96-1.92,2.88-0.96,4.319c0.619,1.034,2.126,0.464,2.993-0.327c-0.946,1.314-2.54,3.808-3.713,6.808c-0.96,2.4,0.479,4.799,2.88,3.119c1.376-0.951,2.7-1.955,3.942-3.023c0.134,0.188,0.406,0.115,0.857-0.336c0.221-0.221,0.44-0.445,0.661-0.668c0.672,0.652,1.843,0.77,2.938-0.053c0.061-0.09,0.136-0.168,0.203-0.252c0.35-0.127,0.725-0.373,1.088-0.665l-0.177-0.232l1.222-7.64z"/>
+ <path style="fill:#FF0000"
+
d="M31.054,17.17c0.061,0.173,0.13,0.331,0.21,0.468c-0.104,0.174-0.226,0.33-0.334,0.5l-0.585,4.567l0.073,1.644c0.423,0.282,0.97,0.352,1.579-0.015c0.227-0.129,0.439-0.273,0.658-0.412c0.451,0.664,1.158,1.001,1.982,0.412c0.153-0.092,0.306-0.176,0.459-0.266c-0.298,1.618-0.162,3.473,1.434,3.401c0.37,0.98,1.139,1.785,2.188,1.186c1.439-0.959,2.879-1.92,4.32-2.879c1.439-0.721,2.158-2.641,1.92-4.321c0-1.08-0.977-2.341-2.223-2.058c0.021-0.034,0.041-0.068,0.063-0.103c0.719-1.199,1.199-2.64,0.719-4.079c-0.24-0.96-1.439-1.921-2.398-1.2c-1.075,0.645-2.147,1.24-3.201,1.832c-0.16-0.339-0.371-0.642-0.618-0.871c0.073-0.16,0.144-0.32,0.218-0.481c0.48-1.2,0.721-6-1.92-4.56c-1.199,0.72-2.16,1.439-3.119,2.399c-0.829,0.829-1.417,2.001-1.551,3.201l0.251,0.669l-0.124,0.965z"/>
+ <use xlink:href="#__Broken_Link_Border"
+ fill="none" stroke="black"/>
+ </g>
+ <g id="__More_About">
+ <circle style="fill:#FFFF66;fill-opacity:0.7;stroke:black;stroke-width:0.6;"
+ cx="48.4" cy="53.25" r="3.5"/>
+ <path style="fill:black;stroke:none;"
d="M48.942,54.758c0,0.126,0,0.461,0.074,0.558c0.082,0.112,0.275,0.134,0.394,0.134v0.238c-0.297-0.007-0.602-0.022-0.914-0.029c-0.335,0.007-0.662,0.022-0.997,0.029v-0.238c0.119,0,0.313-0.022,0.395-0.134c0.074-0.097,0.074-0.431,0.074-0.558v-1.286c0-0.446-0.082-0.61-0.476-0.602v-0.246c0.483-0.037,0.959-0.104,1.45-0.223v2.356z
M47.805,51.212c0-0.313,0.253-0.565,0.565-0.565c0.32,0,0.55,0.253,0.55,0.565c0,0.319-0.26,0.55-0.572,0.55c-0.283,0-0.543-0.268-0.543-0.55z"/>
</g>
+ </g>
</svg>
1.16 +25 -15
xml-batik/resources/org/apache/batik/bridge/resources/Messages.properties
Index: Messages.properties
===================================================================
RCS file:
/home/cvs/xml-batik/resources/org/apache/batik/bridge/resources/Messages.properties,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- Messages.properties 8 Aug 2003 11:39:28 -0000 1.15
+++ Messages.properties 17 Oct 2003 18:10:22 -0000 1.16
@@ -47,55 +47,65 @@
attribute.missing = \
{0}:{1}\n\
-The attribute ''{3}'' of the element <{2}> is required
+The attribute "{3}" of the element <{2}> is required
attribute.malformed = \
{0}:{1}\n\
-The attribute ''{3}'' of the element <{2}> is invalid
+The attribute "{3}" of the element <{2}> is invalid
length.negative = \
{0}:{1}\n\
-The attribute ''{3}'' of the element <{2}> can not be negative
+The attribute "{3}" of the element <{2}> can not be negative
css.length.negative = \
{0}:{1}\n\
-The CSS property ''{3}'' found on the element <{2}> can not be negative
+The CSS property "{3}" found on the element <{2}> can not be negative
css.uri.badTarget = \
{0}:{1}\n\
-The URI ''{3}'' for a CSS property found on the element <{2}> is invalid
+The URI "{3}"\n\
+for a CSS property found on the element <{2}> is invalid
xlink.href.circularDependencies = \
{0}:{1}\n\
-A circular dependency has been detected on the element <{2}> for the URI ''{3}''
+A circular dependency has been detected on the element <{2}> for the URI:\n\
+"{3}"
uri.malformed = \
{0}:{1}\n\
-The URI ''{3}'' specified on the element <{2}> is invalid
+The URI "{3}"\n\
+specified on the element <{2}> is invalid
uri.badTarget = \
{0}:{1}\n\
-Cannot find the referenced element ''{3}'' specified on the element <{2}> - may be
a problem of 'id'
+Cannot find the referenced element:\n\
+"{3}"\n\
+specified on the element <{2}> - may be a problem of 'id'
uri.io = \
{0}:{1}\n\
-An I/O error occured while processing the URI ''{3}'' specified on the \
-element <{2}>
+An I/O error occured while processing the URI:\n\
+"{3}"\n\
+specified on the element <{2}>
uri.unsecure = \
{0}:{1}\n\
-A security exception occured while processing the URI ''{3}'' specified on the \
-element <{2}>
+A security exception occured while processing the URI:\n\
+"{3}"\n\
+specified on the element <{2}>
uri.referenceDocument = \
{0}:{1}\n\
-The URI ''{3}'' specified on the element <{2}> references an entire document. \n \
-This is illegal: The element <{2}> should reference an element inside that document
instead.
+The URI "{3}"\n\
+specified on the element <{2}> references an entire document. \n\
+This is illegal: The element <{2}> must reference an element\n\
+inside a document.
uri.image.invalid = \
{0}:{1}\n\
-The URI ''{3}'' specified on the element <{2}> is invalid
+The URI "{3}"\n\
+specified on the element <{2}> is invalid
broken.link.title = \
Broken Link:
1.12 +31 -21
xml-batik/sources/org/apache/batik/bridge/SVGBrokenLinkProvider.java
Index: SVGBrokenLinkProvider.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGBrokenLinkProvider.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGBrokenLinkProvider.java 16 Sep 2003 01:12:52 -0000 1.11
+++ SVGBrokenLinkProvider.java 17 Oct 2003 18:10:22 -0000 1.12
@@ -114,28 +114,38 @@
* the circumstances of the failure. */
public Filter getBrokenLinkImage(Object base, String code,
Object[] params) {
- if (gvtRoot != null) {
- String message = formatMessage(base, code, params);
- Document doc = DOMUtilities.deepCloneDocument
- (svgDoc, svgDoc.getImplementation());
- Element infoE = doc.getElementById("More_About");
- Element title = doc.createElementNS(SVGConstants.SVG_NAMESPACE_URI,
- SVGConstants.SVG_TITLE_TAG);
- title.appendChild(doc.createTextNode
- (Messages.formatMessage
- (MSG_BROKEN_LINK_TITLE, null)));
- infoE.appendChild(title);
- Element desc = doc.createElementNS(SVGConstants.SVG_NAMESPACE_URI,
- SVGConstants.SVG_DESC_TAG);
- desc.appendChild(doc.createTextNode(message));
- infoE.appendChild(desc);
+ if (gvtRoot == null)
+ return null;
- Map props = new HashMap();
- props.put(BROKEN_LINK_PROPERTY, message);
- props.put(SVG_BROKEN_LINK_DOCUMENT_PROPERTY, doc);
+ String message = formatMessage(base, code, params);
+ Document doc = getBrokenLinkDocument(message);
+ Map props = new HashMap();
+ props.put(BROKEN_LINK_PROPERTY, message);
+ props.put(SVG_BROKEN_LINK_DOCUMENT_PROPERTY, doc);
+
+ return new GraphicsNodeRable8Bit(gvtRoot, props);
+ }
- return new GraphicsNodeRable8Bit(gvtRoot, props);
- }
- return null;
+ public SVGDocument getBrokenLinkDocument(Object base,
+ String code, Object [] params) {
+ String message = formatMessage(base, code, params);
+ return getBrokenLinkDocument(message);
+ }
+
+ public SVGDocument getBrokenLinkDocument(String message) {
+ SVGDocument doc = (SVGDocument)DOMUtilities.deepCloneDocument
+ (svgDoc, svgDoc.getImplementation());
+ Element infoE = doc.getElementById("__More_About");
+ Element title = doc.createElementNS(SVGConstants.SVG_NAMESPACE_URI,
+ SVGConstants.SVG_TITLE_TAG);
+ title.appendChild(doc.createTextNode
+ (Messages.formatMessage
+ (MSG_BROKEN_LINK_TITLE, null)));
+ Element desc = doc.createElementNS(SVGConstants.SVG_NAMESPACE_URI,
+ SVGConstants.SVG_DESC_TAG);
+ desc.appendChild(doc.createTextNode(message));
+ infoE.insertBefore(desc, infoE.getFirstChild());
+ infoE.insertBefore(title, desc);
+ return doc;
}
}
1.64 +58 -22
xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java
Index: SVGImageElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -r1.63 -r1.64
--- SVGImageElementBridge.java 6 Oct 2003 00:56:00 -0000 1.63
+++ SVGImageElementBridge.java 17 Oct 2003 18:10:22 -0000 1.64
@@ -100,7 +100,7 @@
public class SVGImageElementBridge extends AbstractGraphicsNodeBridge {
protected SVGDocument imgDocument;
-
+ protected boolean hitCheckChildren = false;
/**
* Constructs a new bridge for the <image> element.
*/
@@ -134,6 +134,7 @@
return null;
}
+ hitCheckChildren = false;
GraphicsNode node = buildImageGraphicsNode(ctx,e);
if (node == null) {
@@ -143,6 +144,7 @@
}
imageNode.setImage(node);
+ imageNode.setHitCheckChildren(hitCheckChildren);
// 'image-rendering' and 'color-rendering'
RenderingHints hints = CSSUtilities.convertImageRendering(e, null);
@@ -257,6 +259,8 @@
} catch (SecurityException ex) {
throw new BridgeException(e, ERR_URI_UNSECURE,
new Object[] {purl});
+ } catch (IOException ioe) {
+ return createBrokenImageNode(ctx, e, purl.toString());
}
{
@@ -278,8 +282,13 @@
// Reset the stream for next try.
reference.retry();
} catch (IOException ioe) {
- // Couldn't reset stream so reopen it.
- reference = openStream(e, purl);
+ try {
+ // Couldn't reset stream so reopen it.
+ reference = openStream(e, purl);
+ } catch (IOException ioe2) {
+ // Since we already opened the stream this is unlikely.
+ return createBrokenImageNode(ctx, e, purl.toString());
+ }
}
try {
@@ -301,8 +310,12 @@
try {
reference.retry();
} catch (IOException ioe) {
- // Couldn't reset stream so reopen it.
- reference = openStream(e, purl);
+ try {
+ // Couldn't reset stream so reopen it.
+ reference = openStream(e, purl);
+ } catch (IOException ioe2) {
+ return createBrokenImageNode(ctx, e, purl.toString());
+ }
}
try {
@@ -358,19 +371,13 @@
}
}
- protected ProtectedStream openStream(Element e, ParsedURL purl) {
- ProtectedStream ret = null;
- try {
- List mimeTypes = new ArrayList
- (ImageTagRegistry.getRegistry().getRegisteredMimeTypes());
- mimeTypes.add(MimeTypeConstants.MIME_TYPES_SVG);
- InputStream reference = purl.openStream(mimeTypes.iterator());
- ret = new ProtectedStream(reference);
- } catch (IOException ioe) {
- throw new BridgeException(e, ERR_URI_IO,
- new Object[] {purl.toString()});
- }
- return ret;
+ protected ProtectedStream openStream(Element e, ParsedURL purl)
+ throws IOException {
+ List mimeTypes = new ArrayList
+ (ImageTagRegistry.getRegistry().getRegisteredMimeTypes());
+ mimeTypes.add(MimeTypeConstants.MIME_TYPES_SVG);
+ InputStream reference = purl.openStream(mimeTypes.iterator());
+ return new ProtectedStream(reference);
}
/**
@@ -554,8 +561,6 @@
sn.setShape(bounds);
return sn;
}
- RasterImageNode node = new RasterImageNode();
-
Object obj = img.getProperty
(SVGBrokenLinkProvider.SVG_BROKEN_LINK_DOCUMENT_PROPERTY);
if ((obj != null) && (obj instanceof SVGDocument)) {
@@ -564,6 +569,8 @@
ctx.initializeDocument(doc);
return createSVGImageNode(ctx, e, doc);
}
+
+ RasterImageNode node = new RasterImageNode();
node.setImage(img);
Rectangle2D imgBounds = img.getBounds2D();
@@ -865,7 +872,36 @@
return new Rectangle2D.Float(x, y, w, h);
}
+ GraphicsNode createBrokenImageNode
+ (BridgeContext ctx, Element e, String uri) {
+
+ String lname = "<Unknown Element>";
+ SVGDocument doc = null;
+ if (e != null) {
+ doc = (SVGDocument)e.getOwnerDocument();
+ lname = e.getLocalName();
+ }
+ String docUri;
+ if (doc == null) docUri = "<Unknown Document>";
+ else docUri = doc.getURL();
+ int line = ctx.getDocumentLoader().getLineNumber(e);
+ Object [] fullparams = new Object[4];
+ fullparams[0] = docUri;
+ fullparams[1] = new Integer(line);
+ fullparams[2] = lname;
+ fullparams[3] = uri;
+
+ SVGDocument blDoc = brokenLinkProvider.getBrokenLinkDocument
+ (this, ERR_URI_IO, fullparams);
+ ctx.initializeDocument(blDoc);
+ hitCheckChildren = true;
+ return createSVGImageNode(ctx, e, blDoc);
+ }
+
+
+ static SVGBrokenLinkProvider brokenLinkProvider
+ = new SVGBrokenLinkProvider();
static {
- ImageTagRegistry.setBrokenLinkProvider(new SVGBrokenLinkProvider());
+ ImageTagRegistry.setBrokenLinkProvider(brokenLinkProvider);
}
}
1.16 +18 -2 xml-batik/sources/org/apache/batik/gvt/ImageNode.java
Index: ImageNode.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/ImageNode.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- ImageNode.java 6 Oct 2003 00:56:00 -0000 1.15
+++ ImageNode.java 17 Oct 2003 18:10:22 -0000 1.16
@@ -61,12 +61,27 @@
*/
public class ImageNode extends CompositeGraphicsNode {
+ protected boolean hitCheckChildren = false;
+
/**
* Constructs a new empty <tt>ImageNode</tt>.
*/
public ImageNode() {}
/**
+ * If hitCheckChildren is true then nodeHitAt will return
+ * child nodes of this image. Otherwise it will only
+ * return this node (if the point is in the image).
+ */
+ public void setHitCheckChildren(boolean hitCheckChildren) {
+ this.hitCheckChildren = hitCheckChildren;
+ }
+
+ public boolean getHitCheckChildren() {
+ return hitCheckChildren;
+ }
+
+ /**
* Paints this node.
*
* @param g2d the Graphics2D to use
@@ -109,7 +124,8 @@
* @param p the specified Point2D in the user space
*/
public GraphicsNode nodeHitAt(Point2D p) {
- // Used to return super.nodeHitAt(p);
+ if (hitCheckChildren) return super.nodeHitAt(p);
+
return (contains(p) ? this : null);
}
1.3 +1 -1 xml-batik/test-references/org/apache/batik/svggen/Bug6535.svg
Index: Bug6535.svg
===================================================================
RCS file: /home/cvs/xml-batik/test-references/org/apache/batik/svggen/Bug6535.svg,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Bug6535.svg 20 Feb 2002 16:18:46 -0000 1.2
+++ Bug6535.svg 17 Oct 2003 18:10:22 -0000 1.3
@@ -5,7 +5,7 @@
<!--Generated by the Batik Graphics2D SVG Generator-->
<defs id="genericDefs" />
<g>
- <g text-rendering="optimizeLegibility" font-size="1" transform="scale(10,10)">
+ <g text-rendering="geometricPrecision" font-size="1" transform="scale(10,10)">
<text xml:space="preserve" x="4" y="4" stroke="none">Hello, size 10</text>
<text xml:space="preserve" x="4" font-size="1.5" y="8" stroke="none">Hello,
size 15</text>
<text x="160" font-size="10" y="40" transform="scale(0.1,0.1)" stroke="none"
xml:space="preserve">Hello, size 10</text>
1.5 +1 -1
xml-batik/test-references/org/apache/batik/svggen/ContextBug6535.svg
Index: ContextBug6535.svg
===================================================================
RCS file:
/home/cvs/xml-batik/test-references/org/apache/batik/svggen/ContextBug6535.svg,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ContextBug6535.svg 5 Jul 2003 14:18:29 -0000 1.4
+++ ContextBug6535.svg 17 Oct 2003 18:10:22 -0000 1.5
@@ -6,7 +6,7 @@
<defs id="genericDefs" />
<g>
<style type="text/css" xml:space="preserve">
- <![CDATA[.testC1 {text-rendering:optimizeLegibility;font-size:1;}
+ <![CDATA[.testC1 {text-rendering:geometricPrecision;font-size:1;}
.testC2 {stroke:none;}
.testC3 {stroke:none;font-size:1.5;}
.testC4 {stroke:none;font-size:10;}
1.21 +21 -24
xml-batik/test-references/org/apache/batik/svggen/ContextRHints.svg
Index: ContextRHints.svg
===================================================================
RCS file:
/home/cvs/xml-batik/test-references/org/apache/batik/svggen/ContextRHints.svg,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- ContextRHints.svg 5 Jul 2003 14:18:29 -0000 1.20
+++ ContextRHints.svg 17 Oct 2003 18:10:22 -0000 1.21
@@ -1,25 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN'
'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'>
-<svg contentScriptType="text/ecmascript" width="300"
xmlns:xlink="http://www.w3.org/1999/xlink" zoomAndPan="magnify" class="testC14"
contentStyleType="text/css" height="400" preserveAspectRatio="xMidYMid meet"
xmlns="http://www.w3.org/2000/svg" version="1.0">
+<svg contentScriptType="text/ecmascript" width="300"
xmlns:xlink="http://www.w3.org/1999/xlink" zoomAndPan="magnify" class="testC13"
contentStyleType="text/css" height="400" preserveAspectRatio="xMidYMid meet"
xmlns="http://www.w3.org/2000/svg" version="1.0">
<!--Generated by the Batik Test Framework. Test:éj-->
<defs id="genericDefs" />
<g>
<style type="text/css" xml:space="preserve">
<![CDATA[.testC1 {text-rendering:optimizeLegibility;}
.testC2 {stroke:none;}
-.testC3 {shape-rendering:crispEdges;font-family:'Impact';stroke:none;font-size:25;}
-.testC4
{shape-rendering:crispEdges;text-rendering:optimizeSpeed;font-family:'Impact';font-size:25;}
-.testC5 {stroke:none;}
-.testC6 {text-rendering:optimizeLegibility;}
-.testC7 {stroke:none;}
-.testC8 {shape-rendering:crispEdges;stroke:none;}
-.testC9 {stroke:none;}
-.testC10 {image-rendering:optimizeSpeed;text-rendering:optimizeLegibility;}
-.testC11 {stroke:none;}
-.testC12 {}
-.testC13 {image-rendering:optimizeQuality;}
-.testC14
{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;}
+.testC3
{shape-rendering:crispEdges;text-rendering:geometricPrecision;font-family:'Impact';font-size:25;}
+.testC4 {stroke:none;}
+.testC5 {text-rendering:optimizeSpeed;stroke:none;}
+.testC6 {shape-rendering:auto;font-family:'Arial';stroke:none;font-size:12;}
+.testC7 {font-family:'Arial';stroke:none;font-size:12;}
+.testC8 {shape-rendering:auto;font-family:'Arial';stroke:none;font-size:12;}
+.testC9 {image-rendering:optimizeSpeed;text-rendering:geometricPrecision;}
+.testC10 {stroke:none;}
+.testC11 {}
+.testC12 {image-rendering:optimizeQuality;}
+.testC13
{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>
@@ -73,20 +72,18 @@
</defs>
<g class="testC1">
<text xml:space="preserve" x="10" y="20" class="testC2">Text
antialiasing</text>
- <text xml:space="preserve" x="30" y="60" class="testC3">HELLO
antialiased</text>
</g>
- <g class="testC4">
+ <g class="testC3">
+ <text xml:space="preserve" x="30" y="60" class="testC4">HELLO
antialiased</text>
<text xml:space="preserve" x="30" y="90" class="testC5">HELLO aliased</text>
+ <text xml:space="preserve" x="10" y="20" class="testC6"
transform="translate(0,100)">Shape antialiasing</text>
+ <ellipse transform="translate(30,100)" rx="50" cx="60" class="testC7"
ry="15" cy="45" />
+ <ellipse transform="translate(30,140)" rx="50" cx="60" class="testC8"
ry="15" cy="45" />
</g>
- <g class="testC6" transform="translate(0,100)">
- <text xml:space="preserve" x="10" y="20" class="testC7">Shape
antialiasing</text>
- <ellipse transform="translate(30,0)" rx="50" cx="60" class="testC8" ry="15"
cy="45" />
- <ellipse transform="translate(30,40)" rx="50" cx="60" class="testC9"
ry="15" cy="45" />
- </g>
- <g class="testC10" transform="translate(0,200)">
- <text xml:space="preserve" x="10" y="30" class="testC11">Interpolation
Nearest Neighbor / Bicubic</text>
- <use transform="matrix(20,0,0,20,10,50)"
xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1"
xlink:type="simple" class="testC12" xlink:actuate="onRequest" xlink:show="replace" />
- <use transform="matrix(20,0,0,20,60,50)"
xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1"
xlink:type="simple" class="testC13" xlink:actuate="onRequest" xlink:show="replace" />
+ <g class="testC9" transform="translate(0,200)">
+ <text xml:space="preserve" x="10" y="30" class="testC10">Interpolation
Nearest Neighbor / Bicubic</text>
+ <use transform="matrix(20,0,0,20,10,50)"
xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1"
xlink:type="simple" class="testC11" xlink:actuate="onRequest" xlink:show="replace" />
+ <use transform="matrix(20,0,0,20,60,50)"
xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#testimage1"
xlink:type="simple" class="testC12" xlink:actuate="onRequest" xlink:show="replace" />
</g>
</g>
</g>
1.17 +7 -9 xml-batik/test-references/org/apache/batik/svggen/RHints.svg
Index: RHints.svg
===================================================================
RCS file: /home/cvs/xml-batik/test-references/org/apache/batik/svggen/RHints.svg,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- RHints.svg 3 Jul 2003 09:07:02 -0000 1.16
+++ RHints.svg 17 Oct 2003 18:10:22 -0000 1.17
@@ -7,17 +7,15 @@
<g>
<g text-rendering="optimizeLegibility">
<text xml:space="preserve" x="10" y="20" stroke="none">Text
antialiasing</text>
- <text font-size="25" x="30" y="60" font-family="'Impact'"
shape-rendering="crispEdges" stroke="none" xml:space="preserve">HELLO
antialiased</text>
</g>
- <g text-rendering="optimizeSpeed" font-size="25" shape-rendering="crispEdges"
font-family="'Impact'">
- <text xml:space="preserve" x="30" y="90" stroke="none">HELLO aliased</text>
+ <g text-rendering="geometricPrecision" font-size="25"
shape-rendering="crispEdges" font-family="'Impact'">
+ <text xml:space="preserve" x="30" y="60" stroke="none">HELLO
antialiased</text>
+ <text text-rendering="optimizeSpeed" xml:space="preserve" x="30" y="90"
stroke="none">HELLO aliased</text>
+ <text font-size="12" x="10" y="20" transform="translate(0,100)"
font-family="'Arial'" shape-rendering="auto" stroke="none"
xml:space="preserve">Shape antialiasing</text>
+ <ellipse transform="translate(30,100)" rx="50" cx="60" ry="15" cy="45"
stroke="none" />
+ <ellipse transform="translate(30,140)" shape-rendering="auto" rx="50" cx="60"
ry="15" cy="45" stroke="none" />
</g>
- <g text-rendering="optimizeLegibility" transform="translate(0,100)">
- <text xml:space="preserve" x="10" y="20" stroke="none">Shape
antialiasing</text>
- <ellipse transform="translate(30,0)" shape-rendering="crispEdges" rx="50"
cx="60" ry="15" cy="45" stroke="none" />
- <ellipse transform="translate(30,40)" rx="50" cx="60" ry="15" cy="45"
stroke="none" />
- </g>
- <g text-rendering="optimizeLegibility" transform="translate(0,200)"
image-rendering="optimizeSpeed">
+ <g text-rendering="geometricPrecision" transform="translate(0,200)"
image-rendering="optimizeSpeed">
<text xml:space="preserve" x="10" y="30" stroke="none">Interpolation Nearest
Neighbor / Bicubic</text>
<image x="10" y="50" width="40"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAE0lEQVR42mP4/5/h
PwMDIxADaQAq6gT93tAyKwAAAABJRU5ErkJggg==" height="40" preserveAspectRatio="none" />
1.4 +5 -3
xml-batik/test-references/org/apache/batik/svggen/rendering/Bug6535.png
<<Binary file>>
1.2 +210 -192
xml-batik/test-references/samples/tests/spec/scripting/text_content.png
<<Binary file>>
1.4 +9 -3
xml-batik/test-references/samples/tests/spec/scripting/visibility.png
<<Binary file>>
1.1
xml-batik/test-references/samples/tests/spec/scripting/display.png
<<Binary file>>
1.3 +95 -117
xml-batik/test-references/samples/tests/spec/text/textDecoration2.png
<<Binary file>>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]