javauis/m2g_qt/javasrc/javax/microedition/m2g/SVGImage.java
author hgs
Fri, 29 Oct 2010 11:49:32 +0300
changeset 87 1627c337e51e
parent 56 abc41079b313
permissions -rw-r--r--
v2.2.21_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     1
/*
87
1627c337e51e v2.2.21_1
hgs
parents: 56
diff changeset
     2
* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
56
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     3
* All rights reserved.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     8
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    11
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    12
* Contributors:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    13
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    14
* Description:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    15
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    16
*/
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    17
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    18
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    19
package javax.microedition.m2g;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    20
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    21
//--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    22
//Imports
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    23
//--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    24
import java.io.*;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    25
import java.io.InputStream;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    26
import org.w3c.dom.Document;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    27
import org.w3c.dom.DOMException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    28
import org.w3c.dom.svg.SVGElement;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    29
import com.nokia.microedition.m2g.M2GSVGImage;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    30
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    31
/**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    32
* This class represents an SVG image conforming to the W3C SVG Tiny 1.1 Profile. Applications can access the Document
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    33
* associated with this SVGImage using <code>getDocument</code> method. Using the <code>Document</code> class,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    34
* it is possible to interact with the content and perform operations such as zoom, pan, and rotate
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    35
* apart from various other functions. The event dispatching methods as described
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    36
* in this class must be used for dispatching user specific events to the underlying SVG engine.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    37
*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    38
* <p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    39
* The width and height values specified in the SVGImage are only used to compute the initial viewport width/height.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    40
* It is also important to note that according to the SVG 1.1 specification, if viewBox is not defined, then
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    41
* the preserveAspectRatio attribute is ignored. Therefore, the contents should not be scaled if there is no
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    42
* viewBox defined.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    43
* </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    44
* <p><b>Note:</b> If the application does not have the necessary privilege rights to access this (SVG)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    45
* content, a SecurityException may be thrown by the underlying implementation. This is applicable
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    46
* to all the tree navigation (see {@link org.w3c.dom.Node Node}) and trait acessor methods (see {@link org.w3c.dom.svg.SVGElement SVGElement}).
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    47
* Features such as zooming, panning and playing of animations will not be affected.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    48
* <p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    49
* Here is the list of events supported in this specification:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    50
* <p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    51
* <table  cellpadding="2" cellspacing="2" border="1"
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    52
 *  style="border-collapse: collapse;">
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    53
 *   <tbody>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    54
 *     <tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    55
 *       <th width="150" valign="top" bgcolor="#999999"><b>Events<br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    56
 *       </b> </th>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    57
 *       <th valign="top" bgcolor="#999999"><b>Description<br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    58
 *       </b> </th>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    59
 *     </tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    60
 *     <tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    61
 *       <td valign="top"> <b>"DOMFocusIn"</b><br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    62
 *       </td>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    63
 *       <td valign="top"> Occurs when the element comes into focus.<br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    64
 *       </td>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    65
 *     </tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    66
 *     <tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    67
 *       <td valign="top"> <b>"DOMFocusOut"</b><br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    68
 *       </td>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    69
 *       <td valign="top"> Occurs when an element goes out of focus.<br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    70
 *       </td>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    71
 *     </tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    72
 *     <tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    73
 *       <td valign="top"> <b>"DOMActivate"</b><br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    74
 *       </td>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    75
 *       <td valign="top"> Occurs when an element is activated, for instance, through a keypress (select)<br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    76
 *       </td>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    77
 *     </tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    78
 *     <tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    79
 *       <td valign="top"> <b>"click"</b><br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    80
 *       </td>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    81
 *       <td valign="top"> Occurs when the pointing device button is clicked over the SVG content (or particular SVGElement) <br>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    82
 *       </td>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    83
 *     </tr>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    84
 *   </tbody>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    85
 * </table>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    86
* @see      javax.microedition.m2g.ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    87
* @see      org.w3c.dom.Document
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    88
*/
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    89
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    90
public class SVGImage extends ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    91
{
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    92
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    93
    // VARIABLES
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    94
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    95
    private M2GSVGImage iImg = null;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    96
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    97
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    98
     * Constructor
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    99
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   100
    protected SVGImage()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   101
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   102
        super();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   103
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   104
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   105
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   106
     * This method is used to dispatch an "DOMActivate" event to the document.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   107
     * The element that has focus is activated, which means that a
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   108
     * "DOMActivate" event with the the currently focused element as target is
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   109
     * dispatched. If no element has focus, this method does not do anything
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   110
     * and no event is dispatched.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   111
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   112
    public void activate()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   113
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   114
        iImg.activate();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   115
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   116
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   117
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   118
     * This method creates and loads an empty SVGImage (skeleton) that can be used to
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   119
     * programatically construct a simple SVG image. Note: A root &lt;svg&gt; element
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   120
     * with default viewport size of 100x100 is also created inside this method.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   121
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   122
     * <p>If an handler is specified, the engine will invoke it for any external resource
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   123
     * referenced in the document. If the handler is set to null, the SVGImage will try to
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   124
     * load images automatically using the engine default implementation,but might not be
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   125
     * able to load all of them.</p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   126
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   127
     * <p>Note that the <code>handler</code> is also called when the xlink:href attribute on
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   128
     * &lt;image&gt; is set or changed by the application, but the call is made only when the
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   129
     * element is hooked into the document tree i.e. when the ancestors go all the way up to
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   130
     * the root &lt;svg&gt; element. There are two cases:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   131
     * <ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   132
     * <li>When changing the xlink:href attribute of an existing &lt;image&gt; element that is already hooked or part of the tree.</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   133
     * <li>When creating a new &lt;image&gt;, setting its xlink:href and hooking it to the document tree.</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   134
     * </ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   135
     * </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   136
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   137
     * @param handler implementation of the ExternalResourceHandler interface
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   138
     * @see      javax.microedition.m2g.ExternalResourceHandler
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   139
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   140
     * @return an empty SVGImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   141
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   142
    public static SVGImage createEmptyImage(ExternalResourceHandler handler)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   143
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   144
        M2GSVGImage image = M2GSVGImage.buildEmptyImage(handler);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   145
        if (image == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   146
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   147
            throw new NullPointerException();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   148
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   149
        SVGImage proxy = new SVGImage();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   150
        proxy.iImg = image;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   151
        return proxy;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   152
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   153
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   154
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   155
     * @see javax.microedition.m2g.ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   156
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   157
    public static ScalableImage createImage(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   158
        InputStream stream, ExternalResourceHandler handler) throws IOException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   159
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   160
        M2GSVGImage image = M2GSVGImage.buildImage(stream, handler, null, null);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   161
        if (image == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   162
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   163
            throw new NullPointerException();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   164
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   165
        SVGImage proxy = new SVGImage();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   166
        proxy.iImg = image;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   167
        return proxy;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   168
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   169
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   170
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   171
     * @see javax.microedition.m2g.ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   172
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   173
    public static ScalableImage createImage(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   174
        String url, ExternalResourceHandler handler) throws IOException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   175
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   176
        M2GSVGImage image = M2GSVGImage.buildImage(url, handler);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   177
        if (image == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   178
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   179
            throw new NullPointerException();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   180
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   181
        SVGImage proxy = new SVGImage();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   182
        proxy.iImg = image;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   183
        return proxy;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   184
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   185
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   186
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   187
     * This method is used to dispatch a mouse event of the specified <code>type</code> to the
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   188
     * document. The mouse position is given as screen coordinates <code>x, y</code>. If the
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   189
     * x, y values are outside the viewport area or no target is available for the x, y
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   190
     * coordinates, the event is not dispatched. Note that when a "click" event is dispatched,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   191
     * a "DOMActivate" is automatically dispatched by the underlying implementation. The only
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   192
     * required mouse event type is "click". Therefore, if an unsupported type is specified,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   193
     * a DOMException with error code NOT_SUPPORTED_ERR is thrown.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   194
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   195
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   196
     * @param type the type of mouse event.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   197
     * @param x the x location of the mouse/pointer in viewport coordinate
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   198
     *        system.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   199
     * @param y the y location of the mouse/pointer in viewport coordinate
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   200
     *        system.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   201
     * @throws DOMException with error code NOT_SUPPORTED_ERR: if the event <code>type</code> is not supported.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   202
     * @throws NullPointerException if <code>type</code> is null.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   203
     * @throws IllegalArgumentException if the x or y values are negative.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   204
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   205
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   206
    public void dispatchMouseEvent(String type, int x, int y) throws DOMException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   207
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   208
        iImg.dispatchMouseEvent(type, x, y);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   209
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   210
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   211
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   212
     * Returns the associated <code>Document</code>.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   213
     * @return the associated <code>Document</code>.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   214
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   215
    public Document getDocument()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   216
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   217
        return iImg.getDocument();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   218
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   219
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   220
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   221
     * @see javax.microedition.m2g.ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   222
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   223
    public int getViewportHeight()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   224
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   225
        return iImg.getViewportHeight();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   226
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   227
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   228
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   229
     * @see javax.microedition.m2g.ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   230
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   231
    public int getViewportWidth()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   232
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   233
        return iImg.getViewportWidth();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   234
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   235
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   236
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   237
     * This method triggers a "DOMFocusIn" event with the specified element as
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   238
     * the event target. That element becomes the element with focus. This
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   239
     * method also triggers a "DOMFocusOut" event with the element which
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   240
     * previous had focus as target. When the activate method is called, a
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   241
     * "DOMActivate" event is triggered with the currently focused element as
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   242
     * the target. The initial focus is always <code>null</code> and setting
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   243
     * <code>null</code> will remove the current focus.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   244
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   245
     * @param element the element to set the focus on.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   246
     * @throws DOMException with error code WRONG_DOCUMENT_ERR: if invalid element is passed (for
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   247
     * ex: an element that does not belong to this document).
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   248
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   249
    public void focusOn(SVGElement element)  throws DOMException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   250
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   251
        iImg.focusOn(element);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   252
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   253
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   254
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   255
     * Increments the animation or media timeline for this SVGImage (in seconds). As the name
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   256
     * implies, this method is intended to move only forward in the timeline and typically should be used
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   257
     * to animate SVG content when the SVGAnimator class in not used. Setting negative values will throw
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   258
     * an Exception. It is important to note that setting large increments of time would result in
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   259
     * skipping parts of the animation as per the SVG animation model.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   260
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   261
     * @param seconds the value of time to increment in seconds.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   262
     * @throws IllegalArgumentException if the specified time is negative.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   263
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   264
    public void incrementTime(float seconds)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   265
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   266
        iImg.incrementTime(seconds);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   267
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   268
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   269
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   270
     * @see javax.microedition.m2g.ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   271
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   272
    public void requestCompleted(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   273
        String URI, InputStream resourceData) throws IOException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   274
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   275
        iImg.requestCompleted(URI, resourceData);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   276
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   277
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   278
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   279
     * @see javax.microedition.m2g.ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   280
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   281
    public void setViewportHeight(int height)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   282
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   283
        iImg.setViewportHeight(height);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   284
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   285
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   286
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   287
     * @see javax.microedition.m2g.ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   288
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   289
    public void setViewportWidth(int width)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   290
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   291
        iImg.setViewportWidth(width);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   292
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   293
}
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   294