home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 November / Chip_1998-11_cd.bin / tema / Cafe / jfc.bin / RootPaneContainer.java < prev    next >
Text File  |  1998-02-26  |  4KB  |  142 lines

  1. /*
  2.  * @(#)RootPaneContainer.java    1.5 98/02/05
  3.  * 
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  */
  20.  
  21. package com.sun.java.swing;
  22.  
  23. import java.awt.Component;
  24. import java.awt.Container;
  25.  
  26.  
  27. /**
  28.  * This interface is implemented by components that have a single
  29.  * JRootPane child: JDialog, JFrame, JWindow, JApplet, JInternalFrame.
  30.  * The methods in  this interface are just <i>covers</i> for the JRootPane 
  31.  * properties, e.g. <code>getContentPane()</code> is generally implemented 
  32.  * like this:
  33.  * <pre>
  34.  * public Container getContentPane() {
  35.  *     return getRootPane().getContentPane();
  36.  * }
  37.  * </pre>
  38.  * <p>
  39.  * This interface serves as a <i>marker</i> for Swing GUI builders
  40.  * that need to treat components like JFrame, that contain a
  41.  * single JRootPane, specially.  For example in a GUI builder, 
  42.  * dropping a component on a RootPaneContainer would be interpreted 
  43.  * as <code>frame.getContentPane().add(child)</code>.  
  44.  * 
  45.  * @see JRootPane
  46.  * @see JFrame
  47.  * @see JDialog
  48.  * @see JWindow
  49.  * @see JApplet
  50.  * @see JInternalFrame
  51.  *
  52.  * @version 1.5 02/05/98
  53.  */
  54. public interface RootPaneContainer
  55. {
  56.     /**
  57.      * Return this components single JRootPane child.  A conventional
  58.      * implementation of this interface will have all of the other 
  59.      * methods indirect through this one.  The rootPane has two
  60.      * children: the glassPane and the layeredPane.
  61.      *
  62.      * @return this components single JRootPane child.  
  63.      * @see JRootPane
  64.      */
  65.     JRootPane getRootPane();
  66.  
  67.  
  68.     /**
  69.      * The "contentPane" is the primary container for application 
  70.      * specific components.  Applications should add children to 
  71.      * the contentPane, set its layout manager, and so on.  
  72.      * <p>
  73.      * The contentPane my not be null.
  74.      * <p>
  75.      * Generally implemented with 
  76.      * <code>getRootPane().setContentPane(contentPane);</code>
  77.      * 
  78.      * @see #getContentPane
  79.      * @see JRootPane#getContentPane
  80.      */
  81.     void setContentPane(Container contentPane);
  82.  
  83.  
  84.     /**
  85.      * @return the value of the contentPane property.
  86.      * @see #setContentPane
  87.      */
  88.     Container getContentPane();
  89.  
  90.  
  91.     /**
  92.      * A Container that manages the contentPane and in some cases a menu bar. 
  93.      * The layeredPane can be used by descendants that want to add a child
  94.      * to the RootPaneContainer that isn't layout managed.  For example
  95.      * an internal dialog or a drag and drop effect component.
  96.      * <p>
  97.      * The layeredPane may not be null.
  98.      * <p>
  99.      * Generally implemented with 
  100.      * <code>getRootPane().setLayeredPane(layeredPane);</code>
  101.      * 
  102.      * @see #getLayeredPane
  103.      * @see JRootPane#getLayeredPane
  104.      */
  105.     void setLayeredPane(JLayeredPane layeredPane);
  106.  
  107.  
  108.     /**
  109.      * @return the value of the layeredPane property.
  110.      * @see #setLayeredPane
  111.      */
  112.     JLayeredPane getLayeredPane();
  113.  
  114.  
  115.     /**
  116.      * The glassPane is always the first child of the rootPane
  117.      * and the rootPanes layout manager ensures that it's always
  118.      * as big as the rootPane.  By default it's transparent and
  119.      * not visible.  It can be used to temporarily grab all keyboard 
  120.      * and mouse input by adding listeners and then making it visible.
  121.      * by default it's not visible.
  122.      * <p>
  123.      * The glassPane may not be null.
  124.      * <p>
  125.      * Generally implemented with 
  126.      * <code>getRootPane().setGlassPane(glassPane);</code>
  127.      * 
  128.      * @see #getGlassPane
  129.      * @see JRootPane#setGlassPane
  130.      */
  131.     void setGlassPane(Component glassPane);
  132.  
  133.  
  134.     /**
  135.      * @return the value of the glassPane property.
  136.      * @see #setGlassPane
  137.      */
  138.     Component getGlassPane();
  139.  
  140. }
  141.  
  142.