1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.dom.svg.utils;
19
20 import org.vectomatic.dom.svg.OMCSSValue;
21 import org.vectomatic.dom.svg.OMNode;
22 import org.vectomatic.dom.svg.OMSVGDocument;
23 import org.vectomatic.dom.svg.OMSVGPaint;
24 import org.vectomatic.dom.svg.OMSVGSVGElement;
25 import org.vectomatic.dom.svg.impl.DashArrayParser;
26 import org.vectomatic.dom.svg.impl.SVGDocument;
27 import org.vectomatic.dom.svg.impl.SVGPaintParser;
28 import org.vectomatic.dom.svg.impl.SVGParserImpl;
29 import org.vectomatic.dom.svg.impl.SVGSVGElement;
30
31 import com.google.gwt.core.client.GWT;
32 import com.google.gwt.core.client.JavaScriptException;
33
34
35
36
37
38 public class OMSVGParser {
39 private static final SVGParserImpl impl = GWT.create(SVGParserImpl.class);
40
41
42
43
44
45
46 public static final OMSVGDocument createDocument() {
47 SVGDocument doc = DOMHelper.createDocument(SVGConstants.SVG_NAMESPACE_URI, SVGConstants.SVG_SVG_TAG).cast();
48 return OMNode.convert(doc);
49 }
50
51
52
53
54
55 public static final OMSVGDocument currentDocument() {
56 return OMNode.convert(DOMHelper.getCurrentDocument());
57 }
58
59
60
61
62
63
64
65
66
67
68
69 public static final OMSVGSVGElement parse(String rawSvg) throws ParserException {
70 return parse(rawSvg, true);
71 }
72
73
74
75
76
77
78
79
80
81
82
83
84 public static final OMSVGSVGElement parse(String rawSvg, boolean enableScripts) throws ParserException {
85 SVGSVGElement elt = impl.parse(rawSvg, enableScripts);
86 if (!SVGConstants.SVG_NAMESPACE_URI.equals(DOMHelper.getNamespaceURI(elt))) {
87 throw new ParserException(ParserException.Type.NotSvg, "Invalid root element: {" + DOMHelper.getNamespaceURI(elt) + "}" + elt.getTagName());
88 }
89 return new OMSVGSVGElement(elt);
90 }
91
92
93
94
95
96
97
98
99
100
101
102 public static OMSVGPaint parsePaint(String cssText) throws JavaScriptException {
103 return SVGPaintParser.INSTANCE.parse(cssText);
104 }
105
106
107
108
109
110
111
112
113
114 public static OMCSSValue parseDashArray(String cssText) throws JavaScriptException {
115 return DashArrayParser.INSTANCE.parse(cssText);
116 }
117 }