1 /**********************************************
2 * Copyright (C) 2010 Lukas Laag
3 * This file is part of lib-gwt-svg.
4 *
5 * libgwtsvg is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * libgwtsvg is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with libgwtsvg. If not, see http://www.gnu.org/licenses/
17 **********************************************/
18 /*
19 * Copyright (c) 2004 World Wide Web Consortium,
20 *
21 * (Massachusetts Institute of Technology, European Research Consortium for
22 * Informatics and Mathematics, Keio University). All Rights Reserved. This
23 * work is distributed under the W3C(r) Software License [1] in the hope that
24 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
25 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
26 *
27 * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
28 */
29
30 package org.vectomatic.dom.svg;
31
32 import org.vectomatic.dom.svg.impl.SVGCursorElement;
33 import org.vectomatic.dom.svg.itf.ISVGExternalResourcesRequired;
34 import org.vectomatic.dom.svg.itf.ISVGTests;
35 import org.vectomatic.dom.svg.itf.ISVGURIReference;
36 import org.vectomatic.dom.svg.utils.DOMHelper;
37 import org.vectomatic.dom.svg.utils.SVGConstants;
38
39 import com.google.gwt.dom.client.TagName;
40
41 /**
42 * The {@link org.vectomatic.dom.svg.OMSVGCursorElement} interface corresponds
43 * to the <a href='http://www.w3.org/TR/SVG11/interact.html#CursorElement'
44 * title='cursor element specification'>cursor</a> element.
45 */
46 @TagName("cursor")
47 public class OMSVGCursorElement extends OMSVGElement implements ISVGURIReference, ISVGTests, ISVGExternalResourcesRequired {
48 public OMSVGCursorElement() {
49 this((SVGCursorElement)DOMHelper.createElementNS(DOMHelper.getCurrentDocument(), SVGConstants.SVG_NAMESPACE_URI, SVGConstants.SVG_CURSOR_TAG).cast());
50 }
51
52 protected OMSVGCursorElement(SVGCursorElement ot) {
53 super(ot);
54 }
55
56 // Implementation of the svg::SVGCursorElement W3C IDL interface
57 /**
58 * Corresponds to attribute {@link org.vectomatic.dom.svg.OMSVGCursorElement#getX()}
59 * on the given <a href='http://www.w3.org/TR/SVG11/interact.html#CursorElement'
60 * title='cursor element specification'>cursor</a> element.
61 */
62 public final OMSVGAnimatedLength getX() {
63 return ((SVGCursorElement)ot).getX();
64 }
65 /**
66 * Corresponds to attribute {@link org.vectomatic.dom.svg.OMSVGCursorElement#getY()}
67 * on the given <a href='http://www.w3.org/TR/SVG11/interact.html#CursorElement'
68 * title='cursor element specification'>cursor</a> element.
69 */
70 public final OMSVGAnimatedLength getY() {
71 return ((SVGCursorElement)ot).getY();
72 }
73
74 // Implementation of the svg::SVGExternalResourcesRequired W3C IDL interface
75 /**
76 * Corresponds to attribute {@link org.vectomatic.dom.svg.itf.ISVGExternalResourcesRequired#getExternalResourcesRequired()}
77 * on the given element. Note that the SVG DOM defines the attribute {@link
78 * org.vectomatic.dom.svg.itf.ISVGExternalResourcesRequired#getExternalResourcesRequired()}
79 * as being of type {@link org.vectomatic.dom.svg.OMSVGAnimatedBoolean}, whereas
80 * the SVG language definition says that {@link org.vectomatic.dom.svg.itf.ISVGExternalResourcesRequired#getExternalResourcesRequired()}
81 * is not animated. Because the SVG language definition states that {@link
82 * org.vectomatic.dom.svg.itf.ISVGExternalResourcesRequired#getExternalResourcesRequired()}
83 * cannot be animated, the {@link org.vectomatic.dom.svg.OMSVGAnimatedBoolean#getAnimVal()}
84 * will always be the same as the {@link org.vectomatic.dom.svg.OMSVGAnimatedBoolean#getBaseVal()}.
85 */
86 public final OMSVGAnimatedBoolean getExternalResourcesRequired() {
87 return ((SVGCursorElement)ot).getExternalResourcesRequired();
88 }
89
90 // Implementation of the svg::SVGTests W3C IDL interface
91 /**
92 * Corresponds to attribute {@link org.vectomatic.dom.svg.itf.ISVGTests#getRequiredFeatures()}
93 * on the given element.
94 */
95 public final OMSVGStringList getRequiredFeatures() {
96 return ((SVGCursorElement)ot).getRequiredFeatures();
97 }
98 /**
99 * Corresponds to attribute {@link org.vectomatic.dom.svg.itf.ISVGTests#getRequiredExtensions()}
100 * on the given element.
101 */
102 public final OMSVGStringList getRequiredExtensions() {
103 return ((SVGCursorElement)ot).getRequiredExtensions();
104 }
105 /**
106 * Corresponds to attribute {@link org.vectomatic.dom.svg.itf.ISVGTests#getSystemLanguage()}
107 * on the given element.
108 */
109 public final OMSVGStringList getSystemLanguage() {
110 return ((SVGCursorElement)ot).getSystemLanguage();
111 }
112 /**
113 * Returns true if the user agent supports the given extension, specified
114 * by a URI.
115 * @param extension The name of the extension, expressed as a URI.
116 * @return True or false, depending on whether the given extension is supported.
117 */
118 public final boolean hasExtension(String extension) {
119 return ((SVGCursorElement)ot).hasExtension(extension);
120 }
121
122 // Implementation of the svg::SVGURIReference W3C IDL interface
123 /**
124 * Corresponds to attribute <span class='attr-name'>'xlink:href'</span> on
125 * the given element.
126 */
127 public final OMSVGAnimatedString getHref() {
128 return ((SVGCursorElement)ot).getHref();
129 }
130
131 }