1 51 package org.apache.fop.svg; 52 53 import org.apache.fop.fo.DirectPropertyListBuilder; 54 import org.apache.fop.fo.TreeBuilder; 55 import org.apache.fop.fo.ElementMapping; 56 import org.apache.fop.apps.Driver; 57 58 import org.apache.batik.util.XMLResourceDescriptor; 59 60 import java.util.HashMap ; 61 62 public class SVGElementMapping implements ElementMapping { 63 64 private static HashMap foObjs = null; 65 66 private static synchronized void setupSVG() { 67 68 if(foObjs == null) { 69 XMLResourceDescriptor.setXMLParserClassName(Driver.getParserClassName()); 73 74 foObjs = new HashMap (); 75 foObjs.put("svg", SVGElement.maker()); 76 foObjs.put("rect", SVGObj.maker("rect")); 77 foObjs.put("line", SVGObj.maker("line")); 78 foObjs.put("text", SVGObj.maker("text")); 79 80 foObjs.put("font-face", SVGObj.maker("font-face")); 81 foObjs.put("font-face-uri", SVGObj.maker("font-face-uri")); 82 foObjs.put("font-face-src", SVGObj.maker("font-face-src")); 83 foObjs.put("desc", SVGObj.maker("desc")); 84 foObjs.put("title", SVGObj.maker("title")); 85 foObjs.put("circle", SVGObj.maker("circle")); 86 foObjs.put("ellipse", SVGObj.maker("ellipse")); 87 foObjs.put("g", SVGObj.maker("g")); 88 foObjs.put("polyline", SVGObj.maker("polyline")); 89 foObjs.put("polygon", SVGObj.maker("polygon")); 90 foObjs.put("defs", SVGObj.maker("defs")); 91 foObjs.put("path", SVGObj.maker("path")); 92 foObjs.put("use", SVGObj.maker("use")); 93 foObjs.put("tspan", SVGObj.maker("tspan")); 94 foObjs.put("tref", SVGObj.maker("tref")); 95 foObjs.put("image", SVGObj.maker("image")); 96 foObjs.put("style", SVGObj.maker("style")); 97 98 foObjs.put("textPath", SVGObj.maker("textPath")); 99 foObjs.put("clipPath", SVGObj.maker("clipPath")); 100 foObjs.put("mask", SVGObj.maker("mask")); 101 foObjs.put("linearGradient", SVGObj.maker("linearGradient")); 102 foObjs.put("radialGradient", SVGObj.maker("radialGradient")); 103 foObjs.put("stop", SVGObj.maker("stop")); 104 foObjs.put("a", SVGObj.maker("a")); 105 foObjs.put("switch", SVGObj.maker("switch")); 106 foObjs.put("symbol", SVGObj.maker("symbol")); 107 108 foObjs.put("pattern", SVGObj.maker("pattern")); 109 110 foObjs.put("marker", SVGObj.maker("marker")); 111 foObjs.put("animate", SVGObj.maker("animate")); 112 foObjs.put("altGlyph", SVGObj.maker("altGlyph")); 113 foObjs.put("font", SVGObj.maker("font")); 114 foObjs.put("glyph", SVGObj.maker("glyph")); 115 foObjs.put("missing-glyph", SVGObj.maker("missing-glyph")); 116 foObjs.put("hkern", SVGObj.maker("hkern")); 117 foObjs.put("vkern", SVGObj.maker("vkern")); 118 foObjs.put("set", SVGObj.maker("set")); 119 foObjs.put("animateMotion", SVGObj.maker("animateMotion")); 120 foObjs.put("animateColor", SVGObj.maker("animateColor")); 121 foObjs.put("animateTransform", SVGObj.maker("animateTransform")); 122 foObjs.put("cursor", SVGObj.maker("cursor")); 123 foObjs.put("filter", SVGObj.maker("filter")); 124 125 foObjs.put("feFlood", SVGObj.maker("feFlood")); 126 foObjs.put("feGaussianBlur", SVGObj.maker("feGaussianBlur")); 127 foObjs.put("feOffset", SVGObj.maker("feOffset")); 128 foObjs.put("feMerge", SVGObj.maker("feMerge")); 129 foObjs.put("feMergeNode", SVGObj.maker("feMergeNode")); 130 } 131 } 132 133 public void addToBuilder(TreeBuilder builder) { 134 setupSVG(); 135 String uri = "http://www.w3.org/2000/svg"; 136 builder.addMapping(uri, foObjs); 137 138 builder.addPropertyListBuilder(uri, new DirectPropertyListBuilder()); 139 } 140 } 141 142 | Popular Tags |