AppletContext.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. /* AppletContext.java -- access the applet's runtime environment
  2. Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
  3. This file is part of GNU Classpath.
  4. GNU Classpath is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 2, or (at your option)
  7. any later version.
  8. GNU Classpath is distributed in the hope that it will be useful, but
  9. WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with GNU Classpath; see the file COPYING. If not, write to the
  14. Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  15. 02110-1301 USA.
  16. Linking this library statically or dynamically with other modules is
  17. making a combined work based on this library. Thus, the terms and
  18. conditions of the GNU General Public License cover the whole
  19. combination.
  20. As a special exception, the copyright holders of this library give you
  21. permission to link this library with independent modules to produce an
  22. executable, regardless of the license terms of these independent
  23. modules, and to copy and distribute the resulting executable under
  24. terms of your choice, provided that you also meet, for each linked
  25. independent module, the terms and conditions of the license of that
  26. module. An independent module is a module which is not derived from
  27. or based on this library. If you modify this library, you may extend
  28. this exception to your version of the library, but you are not
  29. obligated to do so. If you do not wish to do so, delete this
  30. exception statement from your version. */
  31. package java.applet;
  32. import java.awt.Image;
  33. import java.io.IOException;
  34. import java.io.InputStream;
  35. import java.net.URL;
  36. import java.util.Enumeration;
  37. import java.util.Iterator;
  38. /**
  39. * This interface allows an applet access to the browser to retrieve
  40. * additional data files and display documents. It also allows the
  41. * applet to find out other applets in the same document.
  42. *
  43. * @author Aaron M. Renn (arenn@urbanophile.com)
  44. * @since 1.0
  45. * @status updated to 1.5
  46. */
  47. public interface AppletContext
  48. {
  49. /**
  50. * Returns an audio clip from the specified URL.
  51. *
  52. * @param url the URL of the audio clip
  53. * @return the retrieved audio clip
  54. * @throws NullPointerException if url is null
  55. */
  56. AudioClip getAudioClip(URL url);
  57. /**
  58. * Returns an image from the specified URL. Note that the image is not
  59. * actually retrieved until the applet attempts to display it, so this
  60. * method returns immediately.
  61. *
  62. * @param url the absolute URL of the image
  63. * @return the retrieved image
  64. * @throws NullPointerException if url is null
  65. */
  66. Image getImage(URL url);
  67. /**
  68. * Returns the applet in the document for this object that has the
  69. * specified name.
  70. *
  71. * @param name the applet name
  72. * @return the requested applet, or <code>null</code> if not found
  73. */
  74. Applet getApplet(String name);
  75. /**
  76. * Returns a list of all the applets in the document for this object.
  77. *
  78. * @return a list of all the applets
  79. */
  80. Enumeration<Applet> getApplets();
  81. /**
  82. * Displays the web page pointed to by the specified URL in the window
  83. * for this object. This page replaces the document that is currently
  84. * there.
  85. *
  86. * @param url the URL of the web page to load; unspecified on an error
  87. */
  88. void showDocument(URL url);
  89. /**
  90. * Displays the web page pointed to be the sepcified URL in the window
  91. * with the specified name. The standard names "_top", "_blank",
  92. * "_parent", and "_self" are allowed. An applet viewer may disregard
  93. * this request.
  94. *
  95. * @param url the URL of the web page to load
  96. * @param target the target window
  97. */
  98. void showDocument(URL url, String target);
  99. /**
  100. * Displays the specified message in the status window if that window
  101. * exists.
  102. *
  103. * @param message the status message, may be null
  104. */
  105. void showStatus(String message);
  106. /**
  107. * Associate a stream to a key for this applet context, possibly replacing
  108. * the old value. Stream associations are local to the applet context, for
  109. * security purposes.
  110. *
  111. * @param key the key to associate with
  112. * @param stream the stream value to tie to the key, or null to remove
  113. * @throws IOException if the stream is too large
  114. * @since 1.4
  115. */
  116. void setStream(String key, InputStream stream) throws IOException;
  117. /**
  118. * Return the stream associated with a given key in this applet context, or
  119. * null if nothing is associated. Stream associations are local to the
  120. * applet context, for security purposes.
  121. *
  122. * @param key the key to look up
  123. * @return the associated stream, or null
  124. * @since 1.4
  125. */
  126. InputStream getStream(String key);
  127. /**
  128. * Iterate over all keys that have associated streams. Stream associated
  129. * are local to the applet context, for security purposes.
  130. *
  131. * @return an iterator over the association keys
  132. * @since 1.4
  133. */
  134. Iterator<String> getStreamKeys();
  135. } // interface AppletContext