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 com.google.gwt.dom.client.Document;
33  
34  /**
35   * <p>When an <a href='http://www.w3.org/TR/SVG11/struct.html#SVGElement'
36   * title='svg element specification'>svg</a> element is embedded inline as
37   * a component of a document from another namespace, such as when an <a href='http://www.w3.org/TR/SVG11/struct.html#SVGElement'
38   * title='svg element specification'>svg</a> element is embedded inline within
39   * an XHTML document [<a href="refs.html#ref-XHTML">XHTML</a>], then an {@link
40   * org.vectomatic.dom.svg.impl.SVGDocument} object will not exist; instead,
41   * the root object in the document object hierarchy will be a Document object
42   * of a different type, such as an HTMLDocument object.</p> <p>However, an
43   * {@link org.vectomatic.dom.svg.impl.SVGDocument} object will indeed exist
44   * when the root element of the XML document hierarchy is an <a href='http://www.w3.org/TR/SVG11/struct.html#SVGElement'
45   * title='svg element specification'>svg</a> element, such as when viewing
46   * a stand-alone SVG file (i.e., a file with MIME type "image/svg+xml"). In
47   * this case, the {@link org.vectomatic.dom.svg.impl.SVGDocument} object will
48   * be the root object of the document object model hierarchy.</p> <p>In the
49   * case where an SVG document is embedded by reference, such as when an XHTML
50   * document has an <span class="element-name">'object'</span> element whose
51   * <span class="attr-name">'href'</span> attribute references an SVG document
52   * (i.e., a document whose MIME type is "image/svg+xml" and whose root element
53   * is thus an <a href='http://www.w3.org/TR/SVG11/struct.html#SVGElement'
54   * title='svg element specification'>svg</a> element), there will exist two
55   * distinct DOM hierarchies. The first DOM hierarchy will be for the referencing
56   * document (e.g., an XHTML document). The second DOM hierarchy will be for
57   * the referenced SVG document.  In this second DOM hierarchy, the root object
58   * of the document object model hierarchy is an {@link org.vectomatic.dom.svg.impl.SVGDocument}
59   * object.</p> <p>The {@link org.vectomatic.dom.svg.impl.SVGDocument} interface
60   * contains a similar list of attributes and methods to the HTMLDocument interface
61   * described in the <a href="http://www.w3.org/TR/REC-DOM-Level-1/level-one-html.html">Document
62   * Object Model (HTML) Level 1</a> chapter of the [<a href="refs.html#ref-DOM1">DOM1</a>]
63   * specification.</p>
64   */
65  public class SVGDocument extends Document {
66    protected SVGDocument() {
67    }
68  
69    // Implementation of the svg::SVGDocument W3C IDL interface
70    /**
71     * The root <a href='http://www.w3.org/TR/SVG11/struct.html#SVGElement' title='svg
72     * element specification'>svg</a> in the document hierarchy.
73     */
74    public final native SVGSVGElement getRootElement() /*-{
75      return this.rootElement;
76    }-*/;
77  
78  }