javauis/m2g_qt/javasrc/javax/microedition/m2g/ScalableImage.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
import java.io.IOException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    22
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    23
/**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    24
 * This class models images in vector format, such as the Scalable Vector
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    25
 * Graphics (SVG) image format.  Therefore, it is required that all classes
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    26
 * representing "scalable" images extend this class.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    27
 * @see      javax.microedition.m2g.SVGImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    28
 */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    29
public abstract class ScalableImage
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
     * Constructor
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    33
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    34
    protected ScalableImage()
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    35
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    36
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    37
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    38
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    39
     * This method creates and loads a ScalableImage (e.g. SVG) from the specified stream.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    40
     * A ScalableImage can only be rendered using the render() method in the ScalableGraphics
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    41
     * context.The image size is determined by the content specification
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    42
     * (eg: width/height attributes on root SVG element). The default viewport size
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    43
     * of 100-by-100 pixels is used when the size is unspecified. This method will throw an exception
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    44
     * when the image is in error. For SVG document, the document is in error when:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    45
     * <ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    46
     * <li>the SVG document does not conform to the XML 1.0 specification</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    47
     * <li>an element has an attribute or property value which is not permissible according to the SVG specification </li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    48
     * <li>the required or mandatory attributes according to the SVG specification are missing</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    49
     * <li>the document contains circular references on the &lt;use&gt; element</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    50
     * <li>the document contains &lt;image&gt; element(s) with local references </li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    51
     * <li>the document contains elements with duplicate Id's</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    52
     * <li>the document contains animation(s) in error</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    53
     * </ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    54
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    55
     * <p>If an <code>handler</code> is specified, the engine will invoke it for any
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    56
     * external resource referenced in the document. However, please note that data URIs
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    57
     * (for ex: base64 encoded images like &lt;image xlink:href="data:image/png;base64,/9j/4AAQ..."/&gt;)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    58
     * are required to be decoded by the engine, and therefore the handler will not be invoked
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    59
     * in such cases. All these requests must occur before createImage returns, and the
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    60
     * engine must only make one call if there exist multiple resources
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    61
     * with the same URI. If the <code>handler</code> is set to null, the ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    62
     * will try to load images automatically using the engine's default implementation,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    63
     * but might not be able to load all of them. For example, if the ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    64
     * is loaded from a file in a Jar file, the implementation will not be able
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    65
     * to load images that have relative URIs (ex; &lt;image xlink:href="myImage.png" /&gt;).
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    66
     * If the handler is not able to locate a requested resource, it informs the SVG engine
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    67
     * by calling the requestCompleted method with <code>null</code> for resourceData. </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    68
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    69
     * <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
    70
     * &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
    71
     * 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
    72
     * the root &lt;svg&gt; element. There are two cases:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    73
     * <ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    74
     * <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
    75
     * <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
    76
     * </ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    77
     * </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    78
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    79
     * @param stream The stream from which the SVG content should be read.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    80
     * @param handler implementation of the ExternalResourceHandler interface
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    81
     * @see      javax.microedition.m2g.ExternalResourceHandler
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    82
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    83
     * @return the loaded ScalableImage.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    84
     * @throws IOException if an error occurs while loading the content.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    85
     * @throws NullPointerException if <code>stream</code> is null.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    86
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    87
    public static ScalableImage createImage(java.io.InputStream stream,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    88
                                            ExternalResourceHandler handler) throws IOException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    89
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    90
        return SVGImage.createImage(stream, handler);
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
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    94
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    95
     * This method creates and loads a ScalableImage (e.g. SVG) with the specified
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    96
     * URI. A ScalableImage can only be rendered using the render() method in the ScalableGraphics
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    97
     * context.The image size is determined by the content specification
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    98
     * (eg: width/height attributes on root SVG element). The default viewport size
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
    99
     * of 100-by-100 pixels is used when the size is unspecified. This method will throw an
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   100
     * exception when the image is in error. For SVG document, the document is in error when:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   101
     * <ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   102
     * <li>the SVG document does not conform to the XML 1.0 specification</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   103
     * <li>an element has an attribute or property value which is not permissible according to the SVG specification </li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   104
     * <li>the required or mandatory attributes according to the SVG specification are missing</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   105
     * <li>the document contains circular references on the &lt;use&gt; element</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   106
     * <li>the document contains &lt;image&gt; element(s) with local references </li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   107
     * <li>the document contains elements with duplicate Id's</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   108
     * <li>the document contains animation(s) in error</li>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   109
     * </ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   110
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   111
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   112
     * <p>If an <code>handler</code> is specified, the engine will invoke it for any
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   113
     * external resource referenced in the document. However, please note that data URIs
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   114
     * (for ex: base64 encoded images like &lt;image xlink:href="data:image/png;base64,/9j/4AAQ..."/&gt;)
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   115
     * are required to be decoded by the engine, and therefore the handler will not be invoked
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   116
     * in such cases. All these requests must occur before createImage returns, and the
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   117
     * engine must only make one call if there exist multiple resources
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   118
     * with the same URI. If the <code>handler</code> is set to null, the ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   119
     * will try to load images automatically using the engine's default implementation,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   120
     * but might not be able to load all of them. For example, if the ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   121
     * is loaded from a file in a Jar file, the implementation will not be able
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   122
     * to load images that have relative URIs (ex: &lt;image xlink:href="myImage.png" /&gt;).
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   123
     * If the handler is not able to locate a requested resource, it informs the SVG engine
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   124
     * by calling the requestCompleted method with <code>null</code> for resourceData. </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   125
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   126
     * <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
   127
     * &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
   128
     * 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
   129
     * the root &lt;svg&gt; element. There are two cases:
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   130
     * <ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   131
     * <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
   132
     * <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
   133
     * </ul>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   134
     * </p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   135
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   136
     * <p>
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   137
     * If the platform implementation supports the JSR-75 FileConnection, then the file: URLs
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   138
     * as used by JSR-75 shall be supported and the images are loaded from files identified
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   139
     * by this locator. This can be used to load possible DRM protected image files from the
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   140
     * file system.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   141
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   142
     * @param url A string in URL syntax that identifies the image source.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   143
     * @param handler implementation of the ExternalResourceHandler interface
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   144
     * @see      javax.microedition.m2g.ExternalResourceHandler
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   145
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   146
     * @return the loaded ScalableImage
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   147
     * @throws IOException if an error occurs while loading the SVG content.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   148
     * @throws NullPointerException if <code>URL</code> is null.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   149
     * @throws java.lang.IllegalArgumentException if the specified locator is of unsupported type.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   150
     * @throws SecurityException if the application does not have the privilege rights to access
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   151
     * the contents of this resource.
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
    public static ScalableImage createImage(String url,
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   155
                                            ExternalResourceHandler handler) throws IOException
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   156
    {
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   157
        return SVGImage.createImage(url, handler);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   158
    }
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   159
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   160
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   161
     * This method returns the ScalableImage's viewport height. The initial
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   162
     * viewport height is taken from the "height" value specified in the Scalable Image. The value
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   163
     * returned is always in pixels. If the specified height is defined in percentages, the
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   164
     * values are mapped to the default view port size of 100x100. If the viewport height
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   165
     * is explicitly changed by the application, then the percentages are ignored and the content
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   166
     * is made to fit to this new viewport height.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   167
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   168
     * @return the current height of this ScalableImage.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   169
     * @see #setViewportHeight
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   170
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   171
    public abstract int getViewportHeight();
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   172
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   173
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   174
     * This method returns the ScalableImage's viewport width. The initial
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   175
     * viewport width is taken from the "width" value specified in the Scalable Image. The value
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   176
     * returned is always in pixels. If the specified width is defined in percentages, the
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   177
     * values are mapped to the default view port size of 100x100. If the viewport width
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   178
     * is explicitly changed by the application, then the percentages are ignored and the content
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   179
     * is made to fit to this new viewport width.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   180
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   181
     * @return the current width of this ScalableImage.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   182
     * @see #setViewportWidth
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   183
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   184
    public abstract int getViewportWidth();
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
    * Once the requested external resource is available, the application forwards this information
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   188
    * (resourceData) to the SVG engine. If this method is called a second time for a same URL of a
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   189
    * same <code>SVGImage</code>, the engine will replace the current resource data with the new
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   190
    * one. <b>Note:</b> Setting <code>null</code> for resourceData indicates that the requested resource
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   191
    * could not be fetched by the <code>ResourceHandler</code> or application, and in this
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   192
    * event the SVG engine will not make further attempts to load this resource.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   193
    *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   194
    * @param URI URI that was requested through requestExternalResource
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   195
    * @param resourceData inputstream containing the external resource
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   196
    *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   197
    * @see      javax.microedition.m2g.ExternalResourceHandler
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   198
    *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   199
    * @throws IOException if an error occurs while loading the resource.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   200
    * @throws NullPointerException if URL is null.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   201
    */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   202
    public abstract void requestCompleted(String URI, java.io.InputStream resourceData) throws IOException;
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   203
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   204
    /**
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   205
     * This method sets the new (viewport) height of this ScalableImage.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   206
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   207
     * @param height the new height to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   208
     * @see #getViewportHeight
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   209
     * @throws IllegalArgumentException if height is negative.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   210
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   211
    public abstract void setViewportHeight(int height);
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
     * This method sets the new (viewport) width of this ScalableImage.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   215
     * The viewport is the area where the ScalableImage is rendered. Any parts
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   216
     * of the viewport that lie outside the boundaries of the target clipping
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   217
     * rectangle are clipped. The viewport upper left corner (x, y) is given
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   218
     * relative to the upper left corner of the target rendering surface.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   219
     *
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   220
     * @param width the new width to be set.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   221
     * @see #getViewportWidth
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   222
     * @throws IllegalArgumentException if width is negative.
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   223
     */
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   224
    public abstract void setViewportWidth(int width);
abc41079b313 v2.2.7_1
hgs
parents:
diff changeset
   225
}