diff options
Diffstat (limited to 'libjava/java/applet/Applet.java')
-rw-r--r-- | libjava/java/applet/Applet.java | 523 |
1 files changed, 0 insertions, 523 deletions
diff --git a/libjava/java/applet/Applet.java b/libjava/java/applet/Applet.java deleted file mode 100644 index 861aaa95bff..00000000000 --- a/libjava/java/applet/Applet.java +++ /dev/null @@ -1,523 +0,0 @@ -/* Applet.java -- Java base applet class - Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.applet; - -import java.awt.Dimension; -import java.awt.GraphicsEnvironment; -import java.awt.HeadlessException; -import java.awt.Image; -import java.awt.Panel; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Locale; - -import javax.accessibility.AccessibleContext; -import javax.accessibility.AccessibleRole; -import javax.accessibility.AccessibleState; -import javax.accessibility.AccessibleStateSet; - -/** - * This is the base applet class. An applet is a Java program that - * runs inside a web browser or other applet viewer in a restricted - * environment. - * - * <p>To be useful, a subclass should override at least start(). Also useful - * are init, stop, and destroy for control purposes, and getAppletInfo and - * getParameterInfo for descriptive purposes. - * - * @author Aaron M. Renn (arenn@urbanophile.com) - * @author Eric Blake (ebb9@email.byu.edu) - * @since 1.0 - * @status updated to 1.4 - */ -public class Applet extends Panel -{ - /** - * Compatible with JDK 1.0+. - */ - private static final long serialVersionUID = -5836846270535785031L; - - /** The applet stub for this applet. */ - private transient AppletStub stub; - - /** Some applets call setSize in their constructors. In that case, - these fields are used to store width and height values until a - stub is set. */ - private transient int width; - private transient int height; - - /** - * The accessibility context for this applet. - * - * @serial the accessibleContext for this - * @since 1.2 - */ - private AccessibleContext accessibleContext; - - /** - * Default constructor for subclasses. - * - * @throws HeadlessException if in a headless environment - */ - public Applet() - { - if (GraphicsEnvironment.isHeadless()) - throw new HeadlessException(); - } - - /** - * The browser calls this method to set the applet's stub, which is the - * low level interface to the browser. Manually setting this to null is - * asking for problems down the road. - * - * @param stub the applet stub for this applet - */ - public final void setStub(AppletStub stub) - { - this.stub = stub; - - if (width != 0 && height != 0) - stub.appletResize (width, height); - } - - /** - * Tests whether or not this applet is currently active. An applet is active - * just before the browser invokes start(), and becomes inactive just - * before the browser invokes stop(). - * - * @return <code>true</code> if this applet is active - */ - public boolean isActive() - { - return stub.isActive(); - } - - /** - * Returns the basename URL of the document this applet is embedded in. This - * is everything up to the final '/'. - * - * @return the URL of the document this applet is embedded in - * @see #getCodeBase() - */ - public URL getDocumentBase() - { - return stub.getDocumentBase(); - } - - /** - * Returns the URL of the code base for this applet. - * - * @return the URL of the code base for this applet - */ - public URL getCodeBase() - { - return stub.getCodeBase(); - } - - /** - * Returns the value of the specified parameter that was specified in - * the <code><APPLET></code> tag for this applet. - * - * @param name the parameter name - * @return the parameter value, or null if the parameter does not exist - * @throws NullPointerException if name is null - */ - public String getParameter(String name) - { - return stub.getParameter(name); - } - - /** - * Returns the applet context for this applet. - * - * @return the applet context for this applet - */ - public AppletContext getAppletContext() - { - return stub.getAppletContext(); - } - - /** - * Requests that the applet window for this applet be resized. - * - * @param width the new width in pixels - * @param height the new height in pixels - */ - public void resize(int width, int height) - { - if (stub == null) - { - this.width = width; - this.height = height; - } - else - stub.appletResize(width, height); - } - - /** - * Requests that the applet window for this applet be resized. - * - * @param dim the requested dimensions - * @throws NullPointerException if dim is null - */ - public void resize(Dimension dim) - { - resize(dim.width, dim.height); - } - - /** - * Displays the specified message in the status window if that window - * exists. - * - * @param message the status message, may be null - */ - public void showStatus(String message) - { - getAppletContext().showStatus(message); - } - - /** - * Returns an image from the specified URL. Note that the image is not - * actually retrieved until the applet attempts to display it, so this - * method returns immediately. - * - * @param url the URL of the image - * @return the retrieved image - * @throws NullPointerException if url is null - */ - public Image getImage(URL url) - { - return getAppletContext().getImage(url); - } - - /** - * Returns an image from the specified absolute URL, and relative path - * from that URL. Note that the image is not actually retrieved until the - * applet attempts to display it, so this method returns immediately. - * This calls <code>getImage(new URL(url, name))</code>, but if building - * the new URL fails, this returns null. - * - * @param url the base URL of the image - * @param name the name of the image relative to the URL - * @return the retrieved image, or null on failure - * @see #getImage(URL) - */ - public Image getImage(URL url, String name) - { - try - { - return getImage(new URL(url, name)); - } - catch (MalformedURLException e) - { - return null; - } - } - - /** - * Returns an audio clip from the specified URL. This clip is not tied to - * any particular applet. - * - * XXX Classpath does not yet implement this. - * - * @param url the URL of the audio clip - * @return the retrieved audio clip - * @throws NullPointerException if url is null - * @see #getAudioClip(URL) - * @since 1.2 - */ - public static final AudioClip newAudioClip(URL url) - { - // This requires an implementation of AudioClip in gnu.java.applet. - throw new Error("Not implemented"); - } - - /** - * Returns an audio clip from the specified URL. Note that the clip is not - * actually retrieved until the applet attempts to play it, so this method - * returns immediately. - * - * @param url the URL of the audio clip - * @return the retrieved audio clip - * @throws NullPointerException if url is null - */ - public AudioClip getAudioClip(URL url) - { - return getAppletContext().getAudioClip(url); - } - - /** - * Returns an audio clip from the specified absolute URL, and relative path - * from that URL. Note that the clip is not actually retrieved until the - * applet attempts to play it, so this method returns immediately. This - * calls <code>getAudioClip(new URL(url, name))</code>, but if building - * the new URL fails, this returns null. - * - * @param url the base URL of the audio clip - * @param name the name of the clip relative to the URL - * @return the retrieved audio clip, or null on failure - * @see #getAudioClip(URL) - */ - public AudioClip getAudioClip(URL url, String name) - { - try - { - return getAudioClip(new URL(url, name)); - } - catch (MalformedURLException e) - { - return null; - } - } - - /** - * Returns a descriptive string with applet defined information. The - * implementation in this class returns <code>null</code>, so subclasses - * must override to return information. - * - * @return a string describing the author, version, and applet copyright - */ - public String getAppletInfo() - { - return null; - } - - /** - * Returns the locale for this applet, if it has been set. If no applet - * specific locale has been set, the default locale is returned. - * - * @return the locale for this applet - * @see Component#setLocale(Locale) - * @since 1.1 - */ - public Locale getLocale() - { - return super.getLocale(); - } - - /** - * Returns a list of parameters this applet supports. Each element of - * the outer array is an array of three strings with the name of the - * parameter, the data type or valid values, and a description. This - * method is optional and the default implementation returns null. - * - * @return the list of parameters supported by this applet - */ - public String[][] getParameterInfo() - { - return null; - } - - /** - * Loads and plays the audio clip pointed to by the specified URL. This does - * nothing if the URL does not point to a valid audio clip. - * - * @param url the URL of the audio clip - * @throws NullPointerException if url is null - * @see #getAudioClip(URL) - */ - public void play(URL url) - { - AudioClip ac = getAudioClip(url); - try - { - ac.play(); - } - catch (Exception ignored) - { - } - } - - /** - * Loads and plays the audio clip pointed to by the specified absolute URL, - * and relative path from that URL. This does nothing if the URL cannot be - * constructed, or if it does not point to a valid audio clip. - * - * @param url the base URL of the audio clip - * @param name the name of the audio clip relative to the URL - * @see #getAudioClip(URL, String) - * @see #play(URL) - */ - public void play(URL url, String name) - { - try - { - getAudioClip(url, name).play(); - } - catch (Exception ignored) - { - } - } - - /** - * This method is called when the applet is first loaded, before start(). - * The default implementation does nothing; override to do any one-time - * initialization. - * - * @see #start() - * @see #stop() - * @see #destroy() - */ - public void init() - { - } - - /** - * This method is called when the applet should start running. This is - * normally each time a web page containing it is loaded. The default - * implemention does nothing; override for your applet to be useful. - * - * @see #init() - * @see #stop() - * @see #destroy() - */ - public void start() - { - } - - /** - * This method is called when the applet should stop running. This is - * normally when the next web page is loaded. The default implementation - * does nothing; override for your applet to stop using resources when - * it is no longer visible, but may be restarted soon. - * - * @see #init() - * @see #start() - * @see #destroy() - */ - public void stop() - { - } - - /** - * This method is called when the applet is being unloaded. The default - * implementation does nothing; override for your applet to clean up - * resources on exit. - * - * @see #init() - * @see #start() - * @see #stop() - */ - public void destroy() - { - } - - /** - * Gets the AccessibleContext associated with this applet, creating one if - * necessary. This always returns an instance of {@link AccessibleApplet}. - * - * @return the accessibility context of this applet - * @since 1.3 - */ - public AccessibleContext getAccessibleContext() - { - if (accessibleContext == null) - accessibleContext = new AccessibleApplet(); - return accessibleContext; - } - - /** - * Read an applet from an object stream. This checks for a headless - * environment, then does the normal read. - * - * @param s the stream to read from - * @throws ClassNotFoundException if a class is not found - * @throws IOException if deserialization fails - * @throws HeadlessException if this is a headless environment - * @see GraphicsEnvironment#isHeadless() - * @since 1.4 - */ - private void readObject(ObjectInputStream s) - throws ClassNotFoundException, IOException - { - if (GraphicsEnvironment.isHeadless()) - throw new HeadlessException(); - s.defaultReadObject(); - } - - /** - * This class provides accessibility support for Applets, and is the - * runtime type returned by {@link #getAccessibleContext()}. - * - * @author Eric Blake (ebb9@email.byu.edu) - * @since 1.3 - */ - protected class AccessibleApplet extends AccessibleAWTPanel - { - /** - * Compatible with JDK 1.4+. - */ - private static final long serialVersionUID = 8127374778187708896L; - - /** - * The default constructor. - */ - protected AccessibleApplet() - { - } - - /** - * Get the role of this accessible object, a frame. - * - * @return the role of the object - * @see AccessibleRole#FRAME - */ - public AccessibleRole getAccessibleRole() - { - return AccessibleRole.FRAME; - } - - /** - * Get the state set of this accessible object. In addition to the default - * states of a Component, the applet can also be active. - * - * @return the role of the object - * @see AccessibleState - */ - public AccessibleStateSet getAccessibleStateSet() - { - AccessibleStateSet s = super.getAccessibleStateSet(); - if (isActive()) - s.add(AccessibleState.ACTIVE); - return s; - } - } // class AccessibleApplet -} // class Applet |