View Javadoc

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.impl;
31  
32  import org.vectomatic.dom.svg.OMSVGAnimatedString;
33  
34  import com.google.gwt.core.client.JavaScriptException;
35  import com.google.gwt.dom.client.Element;
36  
37  /**
38   * All of the SVG DOM interfaces that correspond directly to elements in the
39   * SVG language (such as the {@link org.vectomatic.dom.svg.impl.SVGPathElement}
40   * interface for the <a href='http://www.w3.org/TR/SVG11/paths.html#PathElement'
41   * title='path element specification'>path</a> element) derive from the {@link
42   * org.vectomatic.dom.svg.impl.SVGElement} interface.
43   */
44  public class SVGElement extends Element {
45    protected SVGElement() {
46    }
47  
48    // Implementation of the svg::SVGElement W3C IDL interface
49    /**
50     * Corresponds to attribute <code>xml:base</code> on the given element.
51     */
52    public final native String getXmlbase() /*-{
53      return this.xmlbase;
54    }-*/;
55    /**
56     * Corresponds to attribute <code>xml:base</code> on the given element.
57     * @throws DOMException(NO_MODIFICATION_ALLOWED_ERR) Raised on an attempt
58     * to change the value of a <a href="svgdom.html#ReadOnlyNodes">read only
59     * attribute</a>.
60     */
61    public final native void setXmlbase(String value) throws JavaScriptException /*-{
62      this.xmlbase = value;
63    }-*/;
64    /**
65     * The nearest ancestor <a href='http://www.w3.org/TR/SVG11/struct.html#SVGElement'
66     * title='svg element specification'>svg</a> element. Null if the given element
67     * is the outermost <a href='http://www.w3.org/TR/SVG11/struct.html#SVGElement'
68     * title='svg element specification'>svg</a> element.
69     */
70    public final native SVGSVGElement getOwnerSVGElement() /*-{
71      return this.ownerSVGElement;
72    }-*/;
73    /**
74     * The element which established the current viewport. Often, the nearest
75     * ancestor <a href='http://www.w3.org/TR/SVG11/struct.html#SVGElement' title='svg
76     * element specification'>svg</a> element. Null if the given element is the
77     * outermost <a href='http://www.w3.org/TR/SVG11/struct.html#SVGElement' title='svg
78     * element specification'>svg</a> element.
79     */
80    public final native SVGElement getViewportElement() /*-{
81      return this.viewportElement;
82    }-*/;
83  
84    // Partial implementation of the svg::Stylable W3C IDL interface
85    // (the rest is inherited from Element)
86    public final native OMSVGAnimatedString getClassName_() /*-{
87      return this.className;
88    }-*/;
89    
90    public final native String getMarkup() /*-{
91  	return new XMLSerializer().serializeToString(this);
92    }-*/;
93  }