javauis/m2g_qt/javasrc/com/nokia/microedition/m2g/M2GSVGImage.java
author hgs
Fri, 23 Jul 2010 12:27:20 +0300
changeset 56 abc41079b313
permissions -rw-r--r--
v2.2.7_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     1
/*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
     2
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
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
package com.nokia.microedition.m2g;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    19
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    20
import java.io.ByteArrayInputStream;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    21
import java.io.IOException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    22
import java.io.InputStream;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    23
import javax.microedition.m2g.ExternalResourceHandler;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    24
import javax.microedition.m2g.SVGImage;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    25
import org.w3c.dom.Document;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    26
import org.w3c.dom.svg.SVGElement;
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 com.nokia.microedition.m2g.connection.*;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    29
import com.nokia.mj.impl.utils.Logger;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    30
import com.nokia.mj.impl.utils.StreamUtils;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    31
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    32
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    33
/*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    34
 * Image implementation
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    35
 */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    36
public class M2GSVGImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    37
        extends SVGImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    38
{
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    39
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    40
    // STATIC CONSTANTS
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    41
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    42
    /* Optimization: static finals changed to local variables
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    43
    private static final String NULL_TYPE_ESTR =
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    44
      "The type is null.";
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    45
    private static final String ILLEGAL_VALUS_ESTR =
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    46
      "The x or y values are negative.";
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    47
    private static final String EVENT_TYPE_NOT_SUPPORTED_ESTR =
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    48
      "The event type is not supported.";
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    49
    private static final String INVALID_ELEMENT_ESTR =
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    50
      "Invalid element.";
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    51
    public static final String URI_IS_NULL_ESTR =
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    52
      "The URI is null.";
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    53
    */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    54
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    55
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    56
    //  VARIABLES
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    57
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    58
    M2GDocument iDocument = null;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    59
    private SVGElement iFocusedNode = null;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    60
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    61
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    62
    //  METHODS
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    63
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    64
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    65
     * Constructor
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    66
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    67
    M2GSVGImage()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    68
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    69
        super();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    70
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    71
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    72
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    73
     * @see javax.microedition.m2g.SVGImage#activate()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    74
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    75
    public void activate()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    76
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    77
        SVGElement node = iFocusedNode;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    78
        while (node != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    79
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    80
            ((M2GDocument)getDocument()).handleEvent(new M2GEvent(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    81
                        M2GSVGConstants.EVENT_ACTIVATE,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    82
                        node,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    83
                        M2GEvent.EVENT_TARGET));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    84
            node = (SVGElement)node.getParentNode();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    85
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    86
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    87
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    88
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    89
     * @see javax.microedition.m2g.SVGImage#dispatchMouseEvent()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    90
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    91
    public void dispatchMouseEvent(String type, int x, int y)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    92
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    93
        if (type == null || type.equals(""))
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    94
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    95
            Logger.ELOG(Logger.EJavaUI, "dispatchMouseEvent() NullPointerException");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    96
            throw new NullPointerException(/*SF*/"The type is null."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    97
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    98
        if (x < 0 || y < 0)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    99
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   100
            Logger.ELOG(Logger.EJavaUI,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   101
                        "dispatchMouseEvent() IllegalArgumentException");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   102
            throw new IllegalArgumentException(/*SF*/"The x or y values are negative."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   103
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   104
        if (!type.equals(M2GSVGConstants.EVENT_CLICK))
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   105
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   106
            Logger.ELOG(Logger.EJavaUI,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   107
                        "dispatchMouseEvent() DOMException - only click event is supported");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   108
            throw new DOMException(DOMException.NOT_SUPPORTED_ERR, /*SF*/"The event type is not supported."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   109
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   110
        int elementHandle = _dispatchMouseEvent(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   111
                                iDocument.getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   112
                                iDocument.getHandle(), x, y);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   113
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   114
        SVGElement targetElement = M2GSVGElement.buildElement(elementHandle, iDocument);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   115
        SVGElement usedFromElement = null;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   116
        if ((targetElement != null) && ((M2GSVGElement)targetElement).isUsed())
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   117
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   118
            usedFromElement = ((M2GSVGElement)((M2GSVGElement)targetElement).getUsedFromElement());
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   119
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   120
        if (targetElement instanceof M2GSVGElement)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   121
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   122
            iFocusedNode = targetElement;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   123
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   124
        while (targetElement != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   125
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   126
            // click event
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   127
            iDocument.handleEvent(new M2GEvent(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   128
                                      M2GSVGConstants.EVENT_CLICK, targetElement, M2GEvent.EVENT_TARGET));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   129
            // DOMActivate event
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   130
            iDocument.handleEvent(new M2GEvent(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   131
                                      M2GSVGConstants.EVENT_ACTIVATE, targetElement, M2GEvent.EVENT_TARGET));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   132
            // Gets parent node
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   133
            targetElement = (SVGElement)targetElement.getParentNode();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   134
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   135
        // The "target element" is only a clone. The "used from element" is the actual element.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   136
        if (usedFromElement != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   137
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   138
            iDocument.handleEvent(new M2GEvent(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   139
                                      M2GSVGConstants.EVENT_CLICK, usedFromElement, M2GEvent.WRAPPED_EVENT_TARGET));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   140
            iDocument.handleEvent(new M2GEvent(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   141
                                      M2GSVGConstants.EVENT_ACTIVATE, usedFromElement, M2GEvent.WRAPPED_EVENT_TARGET));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   142
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   143
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   144
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   145
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   146
     * @see javax.microedition.m2g.SVGImage#focusOn()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   147
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   148
    public void focusOn(SVGElement element)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   149
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   150
        SVGElement tempNode = element;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   151
        // If focusOn is called on the same element, do not focus out.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   152
        boolean callFocusOut =
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   153
            (((iFocusedNode != null) && (iFocusedNode == element ? false : true)) || ((iFocusedNode != null) && (element == null)));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   154
        //Checking to see if the element is hooked into the tree.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   155
        if (element != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   156
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   157
            tempNode = element;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   158
            while (tempNode != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   159
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   160
                if ((tempNode.getLocalName()).equals(M2GSVGConstants.ROOT_SVG_ELEMENT_NAME))
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   161
                {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   162
                    // Breaks if tempNode is root svg
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   163
                    break;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   164
                }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   165
                tempNode = (SVGElement)tempNode.getParentNode();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   166
            }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   167
            // This indicates that the element does not contain a root element,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   168
            // therefore does not belong to the document.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   169
            if (tempNode == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   170
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   171
                Logger.ELOG(Logger.EJavaUI, "focusOn() - DOMException invalid element");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   172
                throw new DOMException(DOMException.WRONG_DOCUMENT_ERR, /*SF*/"Invalid element."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   173
            }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   174
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   175
        // Focus out from the current focused node and its parents
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   176
        if (callFocusOut)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   177
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   178
            if (iFocusedNode instanceof M2GSVGElement)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   179
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   180
                _focusOut(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   181
                    ((M2GSVGElement)iFocusedNode).getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   182
                    ((M2GSVGElement)iFocusedNode).getDocument().getHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   183
                    ((M2GSVGElement)iFocusedNode).getHandle());
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
            // Focus out the current focused node and its parents
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   187
            tempNode = iFocusedNode;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   188
            while (tempNode != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   189
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   190
                iDocument.handleEvent(new M2GEvent(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   191
                                          M2GSVGConstants.EVENT_FOCUS_OUT, tempNode, M2GEvent.EVENT_TARGET));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   192
                tempNode = (SVGElement)tempNode.getParentNode();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   193
            }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   194
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   195
        //focus in for element and its parents
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   196
        if ((element != null) && (element instanceof M2GSVGElement))
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   197
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   198
            _focusOn(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   199
                ((M2GSVGElement)element).getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   200
                ((M2GSVGElement)element).getDocument().getHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   201
                ((M2GSVGElement)element).getHandle() );
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   202
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   203
        tempNode = element;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   204
        while (tempNode != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   205
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   206
            iDocument.handleEvent(new M2GEvent(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   207
                                      M2GSVGConstants.EVENT_FOCUS_IN, tempNode, M2GEvent.EVENT_TARGET));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   208
            tempNode = (SVGElement)tempNode.getParentNode();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   209
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   210
        // Sets the new focus
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   211
        iFocusedNode = element;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   212
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   213
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   214
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   215
     * @see javax.microedition.m2g.SVGImage#getDocument()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   216
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   217
    public Document getDocument()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   218
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   219
        return iDocument;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   220
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   221
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   222
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   223
     * @see javax.microedition.m2g.ScalableImage#getViewportHeight()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   224
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   225
    public synchronized int getViewportHeight()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   226
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   227
        return iDocument.getViewportHeight();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   228
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   229
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   230
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   231
    /*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   232
     * @see javax.microedition.m2g.ScalableImage#getViewportWidth()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   233
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   234
    public synchronized int getViewportWidth()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   235
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   236
        return iDocument.getViewportWidth();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   237
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   238
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   239
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   240
     * @see javax.microedition.m2g.SVGImage#incrementTime()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   241
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   242
    public void incrementTime(float seconds)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   243
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   244
        ((M2GSVGSVGElement)iDocument.getDocumentElement()).incrementTime(seconds);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   245
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   246
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   247
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   248
     * @see javax.microedition.m2g.ScalableImage#requestCompleted()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   249
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   250
    public void requestCompleted(String uri, InputStream resourceData) throws IOException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   251
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   252
        if (uri == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   253
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   254
            Logger.ELOG(Logger.EJavaUI,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   255
                        "requestCompleted() throw NullPointerException");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   256
            throw new NullPointerException(/*SF*/"The URI is null."/*SF*/);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   257
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   258
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   259
        if (resourceData != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   260
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   261
            byte receiveData[] = StreamUtils.readBytesFromStream(resourceData, -1);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   262
            iDocument.requestCompleted(uri, receiveData);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   263
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   264
        else
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   265
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   266
            // Indicates that the requested resource could not be
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   267
            // fetched by the ResourceHandler or application,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   268
            // and in this event the SVG engine will not make further attempts
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   269
            // to load this resource.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   270
            // Pass the null to the native side so it can delete the image
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   271
            iDocument.requestCompleted(uri, null);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   272
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   273
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   274
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   275
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   276
     * Set document
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   277
     * @param aDocument -
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   278
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   279
    public void setDocument(M2GDocument aDocument)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   280
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   281
        iDocument = aDocument;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   282
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   283
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   284
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   285
     * @see javax.microedition.m2g.ScalableImage#setViewportHeight()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   286
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   287
    public synchronized void setViewportHeight(int height)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   288
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   289
        iDocument.setViewportHeight(height);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   290
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   291
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   292
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   293
     * @see javax.microedition.m2g.ScalableImage#setViewportWidth()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   294
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   295
    public synchronized void setViewportWidth(int width)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   296
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   297
        iDocument.setViewportWidth(width);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   298
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   299
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   300
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   301
    //  STATIC METHODS
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   302
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   303
    /*
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   304
     * @see javax.microedition.m2g.SVGImage#createEmptyImage()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   305
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   306
    public static M2GSVGImage buildEmptyImage(ExternalResourceHandler handler)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   307
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   308
        try
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   309
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   310
            return M2GSVGImage.buildImage(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   311
                       new ByteArrayInputStream(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   312
                           M2GSVGConstants.getInstance().iEmptySvgDocument.getBytes()),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   313
                       handler, null, null);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   314
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   315
        catch (IOException e)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   316
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   317
            Logger.ELOG(Logger.EJavaUI, "M2GSVGImage: buildEmptyImage - IOEception: " + e.toString());
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   318
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   319
        return null;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   320
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   321
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   322
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   323
     * Build svg image
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   324
     * @see javax.microedition.m2g.ScalableImage#createImage()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   325
     * @param stream Plain text stream that contains svg data
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   326
     * @param handler External resource handler. If null then default
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   327
     * external resource handler is used.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   328
     * @param baseUrl A base url from where a document is downloaded.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   329
     * @param suffixUrl The suffix url according to the DRM opening mode of the SVG file
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   330
     * Null if it's not known.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   331
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   332
    public static M2GSVGImage buildImage(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   333
        InputStream stream,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   334
        ExternalResourceHandler handler,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   335
        String baseUrl,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   336
        String suffixUrl) throws IOException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   337
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   338
        if (stream == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   339
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   340
            throw new NullPointerException();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   341
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   342
				System.out.println("P-M2GSVGImage");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   343
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   344
        String strData = new String(StreamUtils.readBytesFromStream(stream, -1));
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   345
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   346
        // Default handler is used if the specified handler is null
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   347
        if (handler == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   348
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   349
            handler = M2GConnectionFactory.getExternalResourceHandler(null);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   350
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   351
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   352
        // Creates and setups svg image
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   353
        M2GSVGImage image = new M2GSVGImage();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   354
        System.out.println("P-M2GSVGImage  call to buildDocument");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   355
        M2GDocument document = M2GDocument.buildDocument(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   356
                                   image,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   357
                                   baseUrl,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   358
                                   suffixUrl,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   359
                                   strData,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   360
                                   handler);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   361
        // Checks document validity
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   362
				System.out.println("P-M2GSVGImage  call to buildDocument Completed Setting documents");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   363
        image.setDocument(document);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   364
        if (handler != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   365
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   366
            // Gets size of external resources
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   367
            int itemCount = _getExternalListSize(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   368
                                document.getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   369
                                document.getHandle());
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   370
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   371
            // Loops through external items
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   372
            for (int index = 0; index < itemCount; index++)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   373
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   374
                String url = _getExternalListItem(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   375
                                 document.getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   376
                                 document.getHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   377
                                 index);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   378
                // Calls an external implementation of the resource handler
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   379
                if ((url != null) && !(url.equals("")))
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   380
                {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   381
                    document.invokeResourceHandler(url);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   382
                }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   383
            }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   384
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   385
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   386
        // initialise the viewport
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   387
        _initViewport(document.getNativeSVGProxyHandle(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   388
                      document.getHandle());
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   389
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   390
        return image;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   391
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   392
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   393
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   394
     * @see javax.microedition.m2g.ScalableImage#createImage()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   395
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   396
    public static M2GSVGImage buildImage(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   397
        String url, ExternalResourceHandler handler) throws IOException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   398
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   399
        // Checks passed parameters
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   400
        if (url == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   401
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   402
            Logger.ELOG(Logger.EJavaUI,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   403
                        "M2GSVGImage: 2 buildImage() - url is null");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   404
            throw new NullPointerException();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   405
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   406
        if (url.length() == 0)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   407
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   408
            Logger.ELOG(Logger.EJavaUI,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   409
                        "M2GSVGImage: 2 buildImage() - url is empty");
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   410
            throw new IllegalArgumentException();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   411
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   412
        // Default handler is used if the specified handler is null
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   413
        if (handler == null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   414
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   415
            handler = M2GConnectionFactory.getExternalResourceHandler(url);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   416
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   417
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   418
        // Open the url and get input stream
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   419
        M2GSVGImage image = null;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   420
        M2GConnectionProxy connectionProxy = null;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   421
        try
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   422
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   423
            connectionProxy = M2GConnectionFactory.create(url);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   424
            image = M2GSVGImage.buildImage(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   425
                        connectionProxy.getInputStream(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   426
                        handler,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   427
                        connectionProxy.getBaseUrl(),
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   428
                        connectionProxy.getSuffixUrl());
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   429
            // Set connection policy
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   430
            if (image != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   431
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   432
                Document doc = image.getDocument();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   433
                if (doc != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   434
                {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   435
                    ((M2GDocument)doc).setConnectionPolicy(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   436
                        connectionProxy.getConnectionPolicy());
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   437
                }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   438
            }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   439
            return image;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   440
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   441
        finally
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   442
        {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   443
            if (connectionProxy != null)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   444
            {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   445
                connectionProxy.close();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   446
                connectionProxy = null;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   447
            }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   448
        }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   449
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   450
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   451
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   452
    // NATIVE METHODS
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   453
    //--------------------------------------------------
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   454
    private native static int _dispatchMouseEvent(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   455
        int aSvgProxyHandle,int aDocumentHandle, 
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   456
        int aX, int aY);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   457
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   458
    private native static void _focusOn(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   459
        int aSvgProxyHandle,int aDocumentHandle, 
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   460
        int aSvgElementHandle);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   461
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   462
    private native static void _focusOut(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   463
        int aSvgProxyHandle,int aDocumentHandle, 
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   464
        int aSvgElementHandle);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   465
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   466
    native static int _getExternalListSize(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   467
         int aSvgProxyHandle, int aDocumentHandle);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   468
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   469
    native static String _getExternalListItem(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   470
        int aSvgProxyHandle, int aDocumentHandle,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   471
        int aIndex);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   472
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   473
    private native static void _initViewport(
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   474
        int aSvgProxyHandle, int aDocumentHandle);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   475
}