1 /* 2 * Copyright (c) 1995, 2018, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package java.applet; 27 28 import java.awt.Image; 29 import java.io.IOException; 30 import java.io.InputStream; 31 import java.net.URL; 32 import java.util.Enumeration; 33 import java.util.Iterator; 34 35 /** 36 * This interface corresponds to an applet's environment: the document 37 * containing the applet and the other applets in the same document. 38 * <p> 39 * The methods in this interface can be used by an applet to obtain information 40 * about its environment. 41 * 42 * @author Arthur van Hoff 43 * @since 1.0 44 * @deprecated The Applet API is deprecated, no replacement. 45 */ 46 @Deprecated(since = "9") 47 public interface AppletContext { 48 49 /** 50 * Creates an audio clip. 51 * 52 * @param url an absolute {@code URL} giving the location of the audio clip 53 * @return the audio clip at the specified {@code URL} 54 */ 55 AudioClip getAudioClip(URL url); 56 57 /** 58 * Returns an {@code Image} object that can then be painted on the screen. 59 * The {@code url} argument that is passed as an argument must specify an 60 * absolute {@code URL}. 61 * <p> 62 * This method always returns immediately, whether or not the image exists. 63 * When the applet attempts to draw the image on the screen, the data will 64 * be loaded. The graphics primitives that draw the image will incrementally 65 * paint on the screen. 66 * 67 * @param url an absolute {@code URL} giving the location of the image 68 * @return the image at the specified {@code URL} 69 * @see java.awt.Image 70 */ 71 Image getImage(URL url); 72 73 /** 74 * Finds and returns the applet in the document represented by this applet 75 * context with the given name. The name can be set in the HTML tag by 76 * setting the {@code name} attribute. 77 * 78 * @param name an applet name 79 * @return the applet with the given name, or {@code null} if not found 80 */ 81 Applet getApplet(String name); 82 83 /** 84 * Finds all the applets in the document represented by this applet context. 85 * 86 * @return an enumeration of all applets in the document represented by this 87 * applet context 88 */ 89 Enumeration<Applet> getApplets(); 90 91 /** 92 * Requests that the browser or applet viewer show the Web page indicated by 93 * the {@code url} argument. The browser or applet viewer determines which 94 * window or frame to display the Web page. This method may be ignored by 95 * applet contexts that are not browsers. 96 * 97 * @param url an absolute {@code URL} giving the location of the document 98 */ 99 void showDocument(URL url); 100 101 /** 102 * Requests that the browser or applet viewer show the Web page indicated by 103 * the {@code url} argument. The {@code target} argument indicates in which 104 * HTML frame the document is to be displayed. The target argument is 105 * interpreted as follows: 106 * 107 * <table class="striped"> 108 * <caption>Target arguments and their descriptions</caption> 109 * <thead> 110 * <tr> 111 * <th scope="col">Target Argument 112 * <th scope="col">Description 113 * </thead> 114 * <tbody> 115 * <tr> 116 * <th scope="row">{@code "_self"} 117 * <td>Show in the window and frame that contain the applet. 118 * <tr> 119 * <th scope="row">{@code "_parent"} 120 * <td>Show in the applet's parent frame. If the applet's frame has no 121 * parent frame, acts the same as "_self". 122 * <tr> 123 * <th scope="row">{@code "_top"} 124 * <td>Show in the top-level frame of the applet's window. If the 125 * applet's frame is the top-level frame, acts the same as "_self". 126 * <tr> 127 * <th scope="row">{@code "_blank"} 128 * <td>Show in a new, unnamed top-level window. 129 * <tr> 130 * <th scope="row"><i>name</i> 131 * <td>Show in the frame or window named <i>name</i>. If a target named 132 * <i>name</i> does not already exist, a new top-level window with the 133 * specified name is created, and the document is shown there. 134 * </tbody> 135 * </table> 136 * <p> 137 * An applet viewer or browser is free to ignore {@code showDocument}. 138 * 139 * @param url an absolute {@code URL} giving the location of the document 140 * @param target a {@code String} indicating where to display the page 141 */ 142 public void showDocument(URL url, String target); 143 144 /** 145 * Requests that the argument string be displayed in the "status window". 146 * Many browsers and applet viewers provide such a window, where the 147 * application can inform users of its current state. 148 * 149 * @param status a string to display in the status window 150 */ 151 void showStatus(String status); 152 153 /** 154 * Associates the specified stream with the specified key in this applet 155 * context. If the applet context previously contained a mapping for this 156 * key, the old value is replaced. 157 * <p> 158 * For security reasons, mapping of streams and keys exists for each 159 * codebase. In other words, applet from one codebase cannot access the 160 * streams created by an applet from a different codebase 161 * 162 * @param key key with which the specified value is to be associated 163 * @param stream stream to be associated with the specified key. If this 164 * parameter is {@code null}, the specified key is removed in this 165 * applet context. 166 * @throws IOException if the stream size exceeds a certain size limit. Size 167 * limit is decided by the implementor of this interface. 168 * @since 1.4 169 */ 170 public void setStream(String key, InputStream stream) throws IOException; 171 172 /** 173 * Returns the stream to which specified key is associated within this 174 * applet context. Returns {@code null} if the applet context contains no 175 * stream for this key. 176 * <p> 177 * For security reasons, mapping of streams and keys exists for each 178 * codebase. In other words, applet from one codebase cannot access the 179 * streams created by an applet from a different codebase. 180 * 181 * @param key key whose associated stream is to be returned 182 * @return the stream to which this applet context maps the key 183 * @since 1.4 184 */ 185 public InputStream getStream(String key); 186 187 /** 188 * Finds all the keys of the streams in this applet context. 189 * <p> 190 * For security reasons, mapping of streams and keys exists for each 191 * codebase. In other words, applet from one codebase cannot access the 192 * streams created by an applet from a different codebase. 193 * 194 * @return an {@code Iterator} of all the names of the streams in this 195 * applet context 196 * @since 1.4 197 */ 198 public Iterator<String> getStreamKeys(); 199 }