Diff of /xmlgraphics/batik/branches/svg11/sources/org/apache/batik/bridge/SVGBrokenLinkProvider.java
Parent Directory
| Revision Log
| Patch
--- xmlgraphics/batik/branches/svg11/sources/org/apache/batik/bridge/SVGBrokenLinkProvider.java 2005/07/16 10:26:04 219311
+++ xmlgraphics/batik/branches/svg11/sources/org/apache/batik/bridge/SVGBrokenLinkProvider.java 2005/07/16 10:27:56 219312
@@ -17,19 +17,14 @@
*/
package org.apache.batik.bridge;
-import java.net.URL;
import java.util.HashMap;
import java.util.Map;
-import org.apache.batik.dom.util.DOMUtilities;
import org.apache.batik.ext.awt.image.renderable.Filter;
import org.apache.batik.ext.awt.image.spi.DefaultBrokenLinkProvider;
-import org.apache.batik.gvt.GraphicsNode;
+import org.apache.batik.gvt.CompositeGraphicsNode;
import org.apache.batik.gvt.filter.GraphicsNodeRable8Bit;
-import org.apache.batik.util.SVGConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.svg.SVGDocument;
+
/**
* This interface is to be used to provide alternate ways of
* generating a placeholder image when the ImageTagRegistry
@@ -39,31 +34,7 @@ public class SVGBrokenLinkProvider
extends DefaultBrokenLinkProvider
implements ErrorConstants {
- public final static String SVG_BROKEN_LINK_DOCUMENT_PROPERTY =
- "org.apache.batik.bridge.BrokenLinkDocument";
-
- UserAgent userAgent;
- DocumentLoader loader;
- BridgeContext ctx;
- GraphicsNode gvtRoot = null;
- SVGDocument svgDoc;
-
public SVGBrokenLinkProvider() {
- userAgent = new UserAgentAdapter();
- loader = new DocumentLoader(userAgent);
- ctx = new BridgeContext(userAgent, loader);
-
- Class cls = SVGBrokenLinkProvider.class;
- URL blURL = cls.getResource("BrokenLink.svg");
- if (blURL == null) return;
-
- GVTBuilder builder = new GVTBuilder();
- try {
- svgDoc = (SVGDocument)loader.loadDocument(blURL.toString());
- gvtRoot = builder.build(ctx, svgDoc);
- } catch (Exception ex) {
- // t.printStackTrace();
- }
}
/**
@@ -81,38 +52,11 @@ public class SVGBrokenLinkProvider
* the circumstances of the failure. */
public Filter getBrokenLinkImage(Object base, String code,
Object[] params) {
- if (gvtRoot == null)
- return null;
-
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);
- }
-
- 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;
+ CompositeGraphicsNode cgn = new CompositeGraphicsNode();
+ return new GraphicsNodeRable8Bit(cgn, props);
}
}