home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 October / Chip_1997-10_cd.bin / tema / sybase / powerj / java.z / Applet.java < prev    next >
Text File  |  1996-05-03  |  6KB  |  248 lines

  1. /*
  2.  * @(#)Applet.java    1.31 96/03/27 Arthur van Hoff
  3.  *
  4.  * Copyright (c) 1994-1995 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19. package java.applet;
  20.  
  21. import java.awt.*;
  22. import java.awt.image.ColorModel;
  23. import java.net.URL;
  24. import java.net.MalformedURLException;
  25.  
  26. /**
  27.  * Base applet class. 
  28.  *
  29.  * @version     1.31, 27 Mar 1996
  30.  *
  31.  * @author Chris Warth
  32.  * @author Arthur van Hoff
  33.  */
  34. public class Applet extends Panel {
  35.     private AppletStub stub;
  36.  
  37.     /**
  38.      * Sets the applet stub. This is done by automatically by the system.
  39.      */
  40.     public final void setStub(AppletStub stub) {
  41.     this.stub = (AppletStub)stub;
  42.     }
  43.  
  44.     /**
  45.      * Returns true if the applet is active. An applet is marked active
  46.      * just before the start method is called.
  47.      * @see #start
  48.      */
  49.     public boolean isActive() {
  50.     return stub.isActive();
  51.     }
  52.     
  53.     /**
  54.      * Gets the document URL. This is the URL of the document in which
  55.      * the applet is embedded.
  56.      * @see #getCodeBase
  57.      */
  58.     public URL getDocumentBase() {
  59.     return stub.getDocumentBase();
  60.     }
  61.  
  62.     /**
  63.      * Gets the base URL. This is the URL of the applet itself. 
  64.      * @see #getDocumentBase
  65.      */
  66.     public URL getCodeBase() {
  67.     return stub.getCodeBase();
  68.     }
  69.  
  70.     /**
  71.      * Gets a parameter of the applet.
  72.      */
  73.      public String getParameter(String name) {
  74.      return stub.getParameter(name);
  75.      }
  76.  
  77.     /**
  78.      * Gets a handle to the applet context. The applet context
  79.      * lets an applet control the applet's environment which is
  80.      * usually the browser or the applet viewer.
  81.      */
  82.     public AppletContext getAppletContext() {
  83.     return stub.getAppletContext();
  84.     }
  85.  
  86.    
  87.     /**
  88.      * Requests that the applet be resized.
  89.      */
  90.     public void resize(int width, int height) {
  91.     Dimension d = size();
  92.     if ((d.width != width) || (d.height != height)) {
  93.         super.resize(width, height);
  94.         if (stub != null) {
  95.         stub.appletResize(width, height);
  96.         }
  97.     }
  98.     }
  99.  
  100.     /**
  101.      * Requests thatthe applet be resized.
  102.      */    
  103.     public void resize(Dimension d) {
  104.     resize(d.width, d.height);
  105.     }
  106.  
  107.     /**
  108.      * Shows a status message in the applet's context.
  109.      */
  110.     public void showStatus(String msg) {
  111.     getAppletContext().showStatus(msg);
  112.     }
  113.  
  114.     /**
  115.      * Gets an image given a URL. Note that this method
  116.      * always returns an image object immediatly, even if 
  117.      * the image does not exist. The actual image data is 
  118.      * loaded when it is first needed.
  119.      */
  120.     public Image getImage(URL url) {
  121.     return getAppletContext().getImage(url);
  122.     }
  123.  
  124.     /**
  125.      * Gets an image relative to a URL. This methods returns
  126.      * immediately, even if the image does not exist. The actual
  127.      * image data is loaded when it is first needed.
  128.      * 
  129.      * @see #getImage
  130.      */
  131.     public Image getImage(URL url, String name) {
  132.     try {
  133.         return getImage(new URL(url, name));
  134.     } catch (MalformedURLException e) {
  135.         return null;
  136.     }
  137.     }
  138.  
  139.     /**
  140.      * Gets an audio clip. 
  141.      */
  142.     public AudioClip getAudioClip(URL url) {
  143.     return getAppletContext().getAudioClip(url);
  144.     }
  145.  
  146.     /**
  147.      * Gets an audio clip. 
  148.      * @see #getAudioClip
  149.      */
  150.     public AudioClip getAudioClip(URL url, String name) {
  151.     try {
  152.         return getAudioClip(new URL(url, name));
  153.     } catch (MalformedURLException e) {
  154.         return null;
  155.     }
  156.     }
  157.  
  158.     /**
  159.      * Returns a string containing information about
  160.      * the author, version and copyright of the applet.
  161.      */
  162.     public String getAppletInfo() {
  163.     return null;
  164.     }
  165.  
  166.     /**
  167.      * Returns an array of strings describing the
  168.      * parameters that are understood by this
  169.      * applet. The array consists of sets of three strings:
  170.      * name/type/description. For example:
  171.      * <pre>
  172.      *     String pinfo[][] = {
  173.      *      {"fps",    "1-10",    "frames per second"},
  174.      *      {"repeat", "boolean", "repeat image loop"},
  175.      *      {"imgs",   "url",     "directory in which the images live"}
  176.      *    };
  177.      * </pre>
  178.      */
  179.     public String[][] getParameterInfo() {
  180.     return null;
  181.     }
  182.  
  183.     /**
  184.      * Plays an audio clip. Nothing happens if the audio clip could
  185.      * not be found.
  186.      */
  187.     public void play(URL url) {
  188.     AudioClip clip = getAudioClip(url);
  189.     if (clip != null) {
  190.         clip.play();
  191.     }
  192.     }
  193.  
  194.     /**
  195.      * Plays an audio clip. Nothing happens if the audio clip could
  196.      * not be found.
  197.      */
  198.     public void play(URL url, String name) {
  199.     AudioClip clip = getAudioClip(url, name);
  200.     if (clip != null) {
  201.         clip.play();
  202.     }
  203.     }
  204.  
  205.     /**
  206.      * Initializes the applet.
  207.      * You never need to call this directly, it is called automatically
  208.      * by the system once the applet is created.
  209.      * @see #start
  210.      * @see #stop
  211.      * @see #destroy
  212.      */
  213.     public void init() {
  214.     }
  215.  
  216.     /**
  217.      * Called to start the applet. You never need to call this method
  218.      * directly, it is called when the applet's document is visited.
  219.      * @see #init
  220.      * @see #stop
  221.      * @see #destroy
  222.      */
  223.     public void start() {
  224.     }
  225.  
  226.     /**
  227.      * Called to stop the applet. It is called when the applet's document is
  228.      * no longer on the screen. It is guaranteed to be called before destroy()
  229.      * is called. You never need to call this method directly.
  230.      * @see #init
  231.      * @see #start
  232.      * @see #destroy
  233.      */
  234.     public void stop() {
  235.     }
  236.  
  237.     /**
  238.      * Cleans up whatever resources are being held. If the applet is active
  239.      * it is stopped stopped.
  240.  
  241.      * @see #init
  242.      * @see #start
  243.      * @see #stop
  244.      */
  245.     public void destroy() {
  246.     }
  247. }
  248.