deweese 2003/07/02 19:00:01
Modified: samples/tests/spec/scripting boundsTransformChange.svg
rectResizeOnClick.svg rootSizeChange.svg
sources/org/apache/batik/bridge
BaseScriptingEnvironment.java
sources/org/apache/batik/gvt/event AWTEventDispatcher.java
test-resources/org/apache/batik/test samplesRendering.xml
test-resources/org/apache/batik/test/svg/resources
Messages.properties
test-sources/org/apache/batik/test/svg
AbstractRenderingAccuracyTest.java
SVGRenderingAccuracyTest.java
Added: test-references/samples/tests/spec/scripting
boundsTransformChange.png rectResizeOnClick.png
rootSizeChange.png
test-references/test-resources/org/apache/batik/test/svg
.cvsignore
test-sources/org/apache/batik/test/svg
JSVGRenderingAccuracyTest.java
Log:
1) Introduced a new type of Regard test that uses the JSVGCanvas to
render dynamic content and then grab the screen contents for
comparison.
2) Updated a few script tests to use this new test type.
3) Fixed a minor bug with completely empty SVG Documents.
4) Fixed a minor bug when JSVGCanvas pops down away with the mouse over it.
Revision Changes Path
1.2 +11 -4 xml-batik/samples/tests/spec/scripting/boundsTransformChange.svg
Index: boundsTransformChange.svg
===================================================================
RCS file:
/home/cvs/xml-batik/samples/tests/spec/scripting/boundsTransformChange.svg,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- boundsTransformChange.svg 20 Mar 2003 00:18:35 -0000 1.1
+++ boundsTransformChange.svg 3 Jul 2003 01:59:59 -0000 1.2
@@ -26,7 +26,8 @@
<desc>This tests changing the bounds of an object then changing a
a parent's transform to ensure the dirty regions are properly
computed.</desc>
- <script type="text/ecmascript">
+ <script type="text/ecmascript"><![CDATA[
+ var inRegard=false;
var time1 = 90;
function updateGroup1() {
var elt = document.getElementById("g1");
@@ -37,9 +38,15 @@
var y = Math.sin(.5*(time1+90)*3.1415926/180)*150 + 250;
elt.setAttribute("transform", "translate("+x+","+y+")");
time1 += 20;
- setTimeout('updateGroup1()', 100);
+ if (inRegard && (time1 >= 270))
+ regardTestInstance.scriptDone();
+ else
+ setTimeout('updateGroup1()', 100);
}
- </script>
+ function regardStart() {
+ inRegard = true;
+ }
+ ]]></script>
<g id="test-content">
<g id="g1">
1.2 +9 -6 xml-batik/samples/tests/spec/scripting/rectResizeOnClick.svg
Index: rectResizeOnClick.svg
===================================================================
RCS file: /home/cvs/xml-batik/samples/tests/spec/scripting/rectResizeOnClick.svg,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- rectResizeOnClick.svg 4 Feb 2002 20:11:33 -0000 1.1
+++ rectResizeOnClick.svg 3 Jul 2003 01:59:59 -0000 1.2
@@ -24,16 +24,19 @@
<script type="text/ecmascript">
- function setRect(evt, target, valX, valY, valW, valH){
- var r = evt.getTarget();
- var doc = r.getOwnerDocument();
- var t = doc.getElementById(target);
+ function setRect(target, valX, valY, valW, valH){
+ var t = document.getElementById(target);
t.setAttribute('x', valX);
t.setAttribute('y', valY);
t.setAttribute('width', valW);
t.setAttribute('height', valH);
}
+ // This function is only called if test is run from regard.
+ function regardStart() {
+ setRect('targetRect', '5', '5', '440', '490');
+ regardTestInstance.scriptDone();
+ }
</script>
<text x="50%" y="45" class="title"><rect> width & height modification
in 'onclick'</text>
@@ -49,7 +52,7 @@
<text class="legend" x="225" y="240">Click Target</text>
<g stroke="black"
- onclick="setRect(evt, 'targetRect', '5', '5', '440', '490')" >
+ onclick="setRect('targetRect', '5', '5', '440', '490')" >
<circle cx="225" cy="200" r="10" fill="crimson"/>
<line x1="225" x2="225" y1="185" y2="215" fill="none" />
<line x1="210" x2="240" y1="200" y2="200" fill="none" />
1.2 +19 -9 xml-batik/samples/tests/spec/scripting/rootSizeChange.svg
Index: rootSizeChange.svg
===================================================================
RCS file: /home/cvs/xml-batik/samples/tests/spec/scripting/rootSizeChange.svg,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- rootSizeChange.svg 7 Mar 2003 12:36:30 -0000 1.1
+++ rootSizeChange.svg 3 Jul 2003 01:59:59 -0000 1.2
@@ -27,28 +27,38 @@
double buffering and pause the animation and force a repaint, if
you see lots of junk then the repaint engine is not working
properly.</desc>
- <script type="text/ecmascript">
- var time1 = 90;
+ <script type="text/ecmascript"><![CDATA[
+ var inRegard = false;
+ var time1 = 70;
function updateGroup1() {
var elt = document.getElementById("g1");
var x = Math.cos(time1*3.1415926/180)*150 + 225;
var y = Math.sin(.5*(time1+90)*3.1415926/180)*150 + 250;
elt.setAttributeNS(null, "transform",
"translate("+x+","+y+")");
- time1 += 5;
- setTimeout('updateGroup1()', 100);
+ time1 += 15;
+ if (!inRegard || (time1 < 470))
+ setTimeout('updateGroup1()', 100);
+ if (inRegard && (time2 <= -290) && (time1 >= 470))
+ regardTestInstance.scriptDone();
}
- var time2 = 90;
+ var time2 = 110;
function updateGroup2() {
var elt = document.getElementById("g2");
var x = Math.cos(time2*3.1415926/180)*150 + 225;
var y = Math.sin(.5*(time2+90)*3.1415926/180)*150 + 250;
elt.setAttributeNS(null, "transform",
"translate("+x+","+y+")");
- time2 -= 5;
- setTimeout('updateGroup2()', 100);
+ time2 -= 15;
+ if (!inRegard || (time2 > -290))
+ setTimeout('updateGroup2()', 100);
+ if (inRegard && (time2 <= -290) && (time1 >= 470))
+ regardTestInstance.scriptDone();
}
- </script>
+ function regardStart() {
+ inRegard = true;
+ }
+ ]]></script>
<g id="test-content">
<g id="g1">
1.21 +3 -2
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.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- BaseScriptingEnvironment.java 1 Jul 2003 09:34:17 -0000 1.20
+++ BaseScriptingEnvironment.java 3 Jul 2003 02:00:00 -0000 1.21
@@ -54,7 +54,8 @@
*/
public static boolean isDynamicDocument(Document doc) {
Element elt = doc.getDocumentElement();
- if (elt.getNamespaceURI().equals(SVGConstants.SVG_NAMESPACE_URI)) {
+ if ((elt != null) &&
+ SVGConstants.SVG_NAMESPACE_URI.equals(elt.getNamespaceURI())) {
if (elt.getAttributeNS
(null, SVGConstants.SVG_ONABORT_ATTRIBUTE).length() > 0) {
return true;
1.14 +9 -4
xml-batik/sources/org/apache/batik/gvt/event/AWTEventDispatcher.java
Index: AWTEventDispatcher.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/gvt/event/AWTEventDispatcher.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- AWTEventDispatcher.java 11 Apr 2003 13:58:34 -0000 1.13
+++ AWTEventDispatcher.java 3 Jul 2003 02:00:00 -0000 1.14
@@ -344,9 +344,14 @@
// If the receiving node has changed, send a notification
// check if we enter a new node
- Point screenPos = evt.getComponent().getLocationOnScreen();
- screenPos.x += evt.getX();
- screenPos.y += evt.getY();
+ Point screenPos;
+ if (!evt.getComponent().isShowing()) {
+ screenPos = new Point(0,0);
+ } else {
+ screenPos = evt.getComponent().getLocationOnScreen();
+ screenPos.x += evt.getX();
+ screenPos.y += evt.getY();
+ }
if (lastHit != node) {
1.1
xml-batik/test-references/samples/tests/spec/scripting/boundsTransformChange.png
<<Binary file>>
1.1
xml-batik/test-references/samples/tests/spec/scripting/rectResizeOnClick.png
<<Binary file>>
1.1
xml-batik/test-references/samples/tests/spec/scripting/rootSizeChange.png
<<Binary file>>
1.1
xml-batik/test-references/test-resources/org/apache/batik/test/svg/.cvsignore
Index: .cvsignore
===================================================================
accepted-variation
candidate-reference
candidate-variation
1.99 +13 -5
xml-batik/test-resources/org/apache/batik/test/samplesRendering.xml
Index: samplesRendering.xml
===================================================================
RCS file:
/home/cvs/xml-batik/test-resources/org/apache/batik/test/samplesRendering.xml,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -r1.98 -r1.99
--- samplesRendering.xml 1 Jul 2003 09:43:09 -0000 1.98
+++ samplesRendering.xml 3 Jul 2003 02:00:00 -0000 1.99
@@ -12,10 +12,10 @@
<!-- ========================================================================= -->
<testSuite id="samplesRendering" name="samples and samples/test Rendering"
class="org.apache.batik.test.svg.SamplesRenderingTest">
- <!-- ==========================================================================
-->
- <!-- The following tests check correct rendering of images in the samples
-->
- <!-- directory.
-->
- <!-- ==========================================================================
-->
+ <!-- ================================================================== -->
+ <!-- The following tests check correct rendering of images in the -->
+ <!-- samples directory. -->
+ <!-- ================================================================== -->
<testGroup id="samples" name="samples Rendering">
<test id="samples/anne.svg" />
<test id="samples/asf-logo.svg" />
@@ -379,4 +379,12 @@
<testGroup id="test-resources.bugs">
<test id="test-resources/org/apache/batik/test/svg/bug19363.svg" />
</testGroup>
+
+ <testGroup id="updateTests" name="Dynamic Update Tests"
+ class="org.apache.batik.test.svg.JSVGRenderingAccuracyTest">
+ <test id="samples/tests/spec/scripting/boundsTransformChange.svg" />
+ <test id="samples/tests/spec/scripting/rootSizeChange.svg" />
+ <test id="samples/tests/spec/scripting/rectResizeOnClick.svg" />
+ </testGroup>
+
</testSuite>
1.5 +13 -0
xml-batik/test-resources/org/apache/batik/test/svg/resources/Messages.properties
Index: Messages.properties
===================================================================
RCS file:
/home/cvs/xml-batik/test-resources/org/apache/batik/test/svg/resources/Messages.properties,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Messages.properties 16 Apr 2001 22:42:38 -0000 1.4
+++ Messages.properties 3 Jul 2003 02:00:00 -0000 1.5
@@ -77,3 +77,16 @@
SVGRenderingAccuracyTest.message.error.could.not.load.image = \
Could not load image {0}
+JSVGRenderingAccuracyTest.message.error.could.not.load.svg = \
+Could not load SVG file: '{0}'
+
+JSVGRenderingAccuracyTest.message.error.svg.render.failed = \
+Failed to render SVG file: '{0}'
+
+JSVGRenderingAccuracyTest.message.error.svg.update.failed = \
+Failed to handle SVG update: '{0}'
+
+JSVGRenderingAccuracyTest.message.error.save.failed = \
+Save of new image failed: '{0}' \n\
+I/O Exception: {1}
+
1.2 +13 -5
xml-batik/test-sources/org/apache/batik/test/svg/AbstractRenderingAccuracyTest.java
Index: AbstractRenderingAccuracyTest.java
===================================================================
RCS file:
/home/cvs/xml-batik/test-sources/org/apache/batik/test/svg/AbstractRenderingAccuracyTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractRenderingAccuracyTest.java 1 Jul 2003 09:34:17 -0000 1.1
+++ AbstractRenderingAccuracyTest.java 3 Jul 2003 02:00:01 -0000 1.2
@@ -14,8 +14,9 @@
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.IOException;
-import java.io.StringWriter;
+import java.io.OutputStream;
import java.io.PrintWriter;
+import java.io.StringWriter;
import java.net.URL;
import java.net.MalformedURLException;
@@ -422,7 +423,8 @@
// encoding failed and we should return that report.
{
TestReport encodeTR = encode(svgURL, tmpFileOS);
- if (encodeTR != null) {
+ if ((encodeTR != null) &&
+ (encodeTR.hasPassed() == false)) {
tmpFile.deleteOnExit();
return encodeTR;
}
@@ -625,10 +627,16 @@
if(!imgFile.exists()){
imgFile.createNewFile();
}
+ saveImage(img, new FileOutputStream(imgFile));
+ }
+ /**
+ * Saves an image in a given File
+ */
+ protected void saveImage(BufferedImage img, OutputStream os)
+ throws IOException {
PNGImageEncoder encoder = new PNGImageEncoder
- (new FileOutputStream(imgFile),
- PNGEncodeParam.getDefaultEncodeParam(img));
+ (os, PNGEncodeParam.getDefaultEncodeParam(img));
encoder.encode(img);
}
1.34 +2 -34
xml-batik/test-sources/org/apache/batik/test/svg/SVGRenderingAccuracyTest.java
Index: SVGRenderingAccuracyTest.java
===================================================================
RCS file:
/home/cvs/xml-batik/test-sources/org/apache/batik/test/svg/SVGRenderingAccuracyTest.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- SVGRenderingAccuracyTest.java 1 Jul 2003 09:34:17 -0000 1.33
+++ SVGRenderingAccuracyTest.java 3 Jul 2003 02:00:01 -0000 1.34
@@ -8,39 +8,11 @@
package org.apache.batik.test.svg;
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileInputStream;
+import java.awt.Color;
import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.IOException;
import java.io.StringWriter;
import java.io.PrintWriter;
-
import java.net.URL;
-import java.net.MalformedURLException;
-
-import java.util.Locale;
-import java.util.ResourceBundle;
-import java.util.Vector;
-
-import java.awt.Color;
-import java.awt.Graphics2D;
-import java.awt.image.BufferedImage;
-import java.awt.image.RenderedImage;
-import java.awt.image.WritableRaster;
-import java.awt.image.ColorModel;
-
-import org.apache.batik.ext.awt.image.CompositeRule;
-import org.apache.batik.ext.awt.image.GraphicsUtil;
-import org.apache.batik.ext.awt.image.rendered.CompositeRed;
-import org.apache.batik.ext.awt.image.rendered.BufferedImageCachableRed;
-
-import org.apache.batik.ext.awt.image.spi.ImageTagRegistry;
-import org.apache.batik.ext.awt.image.renderable.Filter;
-
-import org.apache.batik.ext.awt.image.codec.PNGImageEncoder;
-import org.apache.batik.ext.awt.image.codec.PNGEncodeParam;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderInput;
@@ -49,11 +21,7 @@
import org.apache.batik.transcoder.image.ImageTranscoder;
import org.apache.batik.transcoder.image.PNGTranscoder;
-import org.apache.batik.util.ParsedURL;
-
-import org.apache.batik.test.AbstractTest;
import org.apache.batik.test.DefaultTestReport;
-import org.apache.batik.test.Test;
import org.apache.batik.test.TestReport;
import org.w3c.dom.Document;
1.1
xml-batik/test-sources/org/apache/batik/test/svg/JSVGRenderingAccuracyTest.java
Index: JSVGRenderingAccuracyTest.java
===================================================================
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
package org.apache.batik.test.svg;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringWriter;
import java.io.PrintWriter;
import java.net.URL;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import org.w3c.dom.Document;
import org.apache.batik.test.DefaultTestReport;
import org.apache.batik.test.TestReport;
import org.apache.batik.bridge.ScriptingEnvironment;
import org.apache.batik.bridge.UpdateManager;
import org.apache.batik.bridge.UpdateManagerEvent;
import org.apache.batik.bridge.UpdateManagerListener;
import org.apache.batik.script.Interpreter;
import org.apache.batik.script.InterpreterException;
import org.apache.batik.swing.gvt.GVTTreeRendererAdapter;
import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
import org.apache.batik.swing.JSVGCanvas;
import org.apache.batik.swing.svg.SVGDocumentLoaderAdapter;
import org.apache.batik.swing.svg.SVGDocumentLoaderEvent;
import java.awt.Dimension;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
/**
* One line Class Desc
*
* Complete Class Desc
*
* @author <a href="mailto:[EMAIL PROTECTED]>l449433</a>
* @version $Id: JSVGRenderingAccuracyTest.java,v 1.1 2003/07/03 02:00:01 deweese
Exp $
*/
public class JSVGRenderingAccuracyTest extends SamplesRenderingTest {
public static final String REGARD_TEST_INSTANCE = "regardTestInstance";
public static final String REGARD_START_SCRIPT =
"try { regardStart(); } catch (er) {}";
/**
* Error when canvas can't load SVG file.
* {0} The file/url that could not be loaded.
*/
public static final String ERROR_CANNOT_LOAD_SVG =
"JSVGRenderingAccuracyTest.message.error.could.not.load.svg";
/**
* Error when canvas can't render SVG file.
* {0} The file/url that could not be rendered.
*/
public static final String ERROR_SVG_RENDER_FAILED =
"JSVGRenderingAccuracyTest.message.error.svg.render.failed";
/**
* Error when canvas can't peform render update SVG file.
* {0} The file/url that could not be updated..
*/
public static final String ERROR_SVG_UPDATE_FAILED =
"JSVGRenderingAccuracyTest.message.error.svg.update.failed";
/**
* Error when canvas can't peform render update SVG file.
* {0} The file/url that could not be updated..
*/
public static final String ERROR_SAVE_FAILED =
"JSVGRenderingAccuracyTest.message.error.save.failed";
public static String fmt(String key, Object []args) {
return Messages.formatMessage(key, args);
}
/**
* For subclasses
*/
public JSVGRenderingAccuracyTest(){
}
JFrame frame = null;
JSVGCanvas canvas = null;
UpdateManager updateManager = null;
BufferedImage theImage = null;
WindowListener wl = null;
boolean renderFailed;
boolean loadFailed;
boolean done;
boolean abort;
Object loadMonitor = new Object();
Object renderMonitor = new Object();
public TestReport encode(URL srcURL, FileOutputStream fos) {
DefaultTestReport report = new DefaultTestReport(this);
loadFailed = true;
renderFailed = true;
frame = new JFrame(getName());
canvas = new JSVGCanvas();
frame.getContentPane().add(canvas);
frame.setSize(new Dimension(450, 500));
frame.setVisible(true);
wl = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
synchronized (loadMonitor) {
abort = true;
loadMonitor.notifyAll();
}
synchronized (renderMonitor) {
abort = true;
renderMonitor.notifyAll();
}
}
};
frame.addWindowListener(wl);
canvas.addGVTTreeRendererListener
(new InitialRenderListener());
canvas.addSVGDocumentLoaderListener
(new LoadListener());
try {
initCanvas(canvas, srcURL);
synchronized (renderMonitor) {
synchronized (loadMonitor) {
try { loadMonitor.wait(); }
catch(InterruptedException ie) { /* nothing */ }
if (abort || loadFailed) {
report.setErrorCode(ERROR_CANNOT_LOAD_SVG);
report.setDescription(new TestReport.Entry[] {
new TestReport.Entry
(fmt(ENTRY_KEY_ERROR_DESCRIPTION, null),
fmt(ERROR_CANNOT_LOAD_SVG,
new Object[]{srcURL.toString()}))
});
report.setPassed(false);
return report;
}
}
try { renderMonitor.wait(); }
catch(InterruptedException ie) { /* nothing */ }
if (abort || renderFailed) {
report.setErrorCode(ERROR_SVG_RENDER_FAILED);
report.setDescription(new TestReport.Entry[] {
new TestReport.Entry
(fmt(ENTRY_KEY_ERROR_DESCRIPTION, null),
fmt(ERROR_SVG_RENDER_FAILED,
new Object[]{srcURL.toString()}))
});
report.setPassed(false);
return report;
}
updateManager = canvas.getUpdateManager();
if (updateManager == null) {
// Not dynamic? Just use image..
theImage = copyImage(canvas.getOffScreen());
} else {
updateManager.addUpdateManagerListener
(new UpdateRenderListener());
done = false;
updateManager.getUpdateRunnableQueue().invokeLater
(new Runnable() {
UpdateManager um = updateManager;
public void run() {
ScriptingEnvironment scriptEnv;
scriptEnv = um.getScriptingEnvironment();
Interpreter interp;
interp = scriptEnv.getInterpreter();
interp.bindObject(REGARD_TEST_INSTANCE,
JSVGRenderingAccuracyTest.this);
try {
interp.evaluate(REGARD_START_SCRIPT);
} catch (InterpreterException ie) {
// Could not wait if no start script.
}
}
});
while (theImage == null) {
try { renderMonitor.wait(); }
catch (InterruptedException ie) { /* nothing */ }
if (abort || renderFailed) {
report.setErrorCode(ERROR_SVG_UPDATE_FAILED);
report.setDescription(new TestReport.Entry[] {
new TestReport.Entry
(fmt(ENTRY_KEY_ERROR_DESCRIPTION, null),
fmt(ERROR_SVG_UPDATE_FAILED,
new Object[]{srcURL.toString()}))
});
report.setPassed(false);
return report;
}
}
}
try {
saveImage(theImage, fos);
} catch (IOException ioe) {
StringWriter trace = new StringWriter();
ioe.printStackTrace(new PrintWriter(trace));
report.setErrorCode(ERROR_SAVE_FAILED);
report.setDescription(new TestReport.Entry[] {
new TestReport.Entry
(fmt(ENTRY_KEY_ERROR_DESCRIPTION, null),
fmt(ERROR_SAVE_FAILED,
new Object[]{ srcURL.toString(),
trace.toString()}))
});
report.setPassed(false);
return report;
}
}
} finally {
dispose();
}
report.setPassed(true);
return report;
}
public void dispose() {
frame.removeWindowListener(wl);
wl = null;
if (frame != null)
frame.setVisible(false);
theImage = null;
updateManager = null;
canvas = null;
frame = null;
}
/**
* Method subclasses can implement to do more sophisticated
* initialization of the canvas.
*/
protected void initCanvas(JSVGCanvas canvas, URL srcURL) {
canvas.setURI(srcURL.toString());
}
public void scriptDone() {
synchronized (renderMonitor) {
done = true;
// Don't notify. The Update Complete will notify - and
// provide us with the 'up to date' image for comparison.
}
}
public static BufferedImage copyImage(BufferedImage bi) {
// Copy off the image just rendered.
BufferedImage ret;
ret = new BufferedImage(bi.getWidth(), bi.getHeight(), bi.getType());
bi.copyData(ret.getRaster());
return ret;
}
class UpdateRenderListener implements UpdateManagerListener {
public void updateCompleted(UpdateManagerEvent e) {
synchronized(renderMonitor){
renderFailed = false;
if (done) {
theImage = copyImage(e.getImage());
}
renderMonitor.notifyAll();
}
}
public void updateFailed(UpdateManagerEvent e) {
synchronized(renderMonitor){
renderFailed = true;
renderMonitor.notifyAll();
}
}
public void managerStarted(UpdateManagerEvent e) { }
public void managerSuspended(UpdateManagerEvent e) { }
public void managerResumed(UpdateManagerEvent e) { }
public void managerStopped(UpdateManagerEvent e) { }
public void updateStarted(UpdateManagerEvent e) { }
}
class InitialRenderListener extends GVTTreeRendererAdapter {
public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
synchronized(renderMonitor){
renderFailed = false;
if (done) {
theImage = copyImage(e.getImage());
}
renderMonitor.notifyAll();
}
}
public void gvtRenderingCancelled(GVTTreeRendererEvent e) {
synchronized(renderMonitor){
renderMonitor.notifyAll();
}
}
public void gvtRenderingFailed(GVTTreeRendererEvent e) {
synchronized(renderMonitor){
renderMonitor.notifyAll();
}
}
}
class LoadListener extends SVGDocumentLoaderAdapter {
public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
synchronized(loadMonitor){
loadFailed = false;
loadMonitor.notifyAll();
}
}
public void documentLoadingFailed(SVGDocumentLoaderEvent e) {
synchronized(loadMonitor){
loadMonitor.notifyAll();
}
}
public void documentLoadingCancelled(SVGDocumentLoaderEvent e) {
synchronized(loadMonitor){
loadMonitor.notifyAll();
}
}
}
};
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]