Home » openjdk-7 » javax » swing » [javadoc | source]

    1   /*
    2    * Copyright (c) 1997, 2002, 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 javax.swing;
   27   
   28   /** DesktopManager objects are owned by a JDesktopPane object. They are responsible
   29     * for implementing L&F specific behaviors for the JDesktopPane. JInternalFrame
   30     * implementations should delegate specific behaviors to the DesktopManager. For
   31     * instance, if a JInternalFrame was asked to iconify, it should try:
   32     * <PRE>
   33     *    getDesktopPane().getDesktopManager().iconifyFrame(frame);
   34     * </PRE>
   35     * This delegation allows each L&F to provide custom behaviors for desktop-specific
   36     * actions. (For example, how and where the internal frame's icon would appear.)
   37     * <p>This class provides a policy for the various JInternalFrame methods, it is not
   38     * meant to be called directly rather the various JInternalFrame methods will call
   39     * into the DesktopManager.</p>
   40     *
   41     * @see JDesktopPane
   42     * @see JInternalFrame
   43     * @see JInternalFrame.JDesktopIcon
   44     *
   45     * @author David Kloba
   46     */
   47   public interface DesktopManager
   48   {
   49       /** If possible, display this frame in an appropriate location.
   50         * Normally, this is not called, as the creator of the JInternalFrame
   51         * will add the frame to the appropriate parent.
   52         */
   53       void openFrame(JInternalFrame f);
   54   
   55       /** Generally, this call should remove the frame from it's parent. */
   56       void closeFrame(JInternalFrame f);
   57   
   58       /** Generally, the frame should be resized to match it's parents bounds. */
   59       void maximizeFrame(JInternalFrame f);
   60       /** Generally, this indicates that the frame should be restored to it's
   61         * size and position prior to a maximizeFrame() call.
   62         */
   63       void minimizeFrame(JInternalFrame f);
   64       /** Generally, remove this frame from it's parent and add an iconic representation. */
   65       void iconifyFrame(JInternalFrame f);
   66       /** Generally, remove any iconic representation that is present and restore the
   67         * frame to it's original size and location.
   68         */
   69       void deiconifyFrame(JInternalFrame f);
   70   
   71       /**
   72        * Generally, indicate that this frame has focus. This is usually called after
   73        * the JInternalFrame's IS_SELECTED_PROPERTY has been set to true.
   74        */
   75       void activateFrame(JInternalFrame f);
   76   
   77       /**
   78        * Generally, indicate that this frame has lost focus. This is usually called
   79        * after the JInternalFrame's IS_SELECTED_PROPERTY has been set to false.
   80        */
   81       void deactivateFrame(JInternalFrame f);
   82   
   83       /** This method is normally called when the user has indicated that
   84         * they will begin dragging a component around. This method should be called
   85         * prior to any dragFrame() calls to allow the DesktopManager to prepare any
   86         * necessary state. Normally <b>f</b> will be a JInternalFrame.
   87         */
   88       void beginDraggingFrame(JComponent f);
   89   
   90       /** The user has moved the frame. Calls to this method will be preceded by calls
   91         * to beginDraggingFrame().
   92         *  Normally <b>f</b> will be a JInternalFrame.
   93         */
   94       void dragFrame(JComponent f, int newX, int newY);
   95       /** This method signals the end of the dragging session. Any state maintained by
   96         * the DesktopManager can be removed here.  Normally <b>f</b> will be a JInternalFrame.
   97         */
   98       void endDraggingFrame(JComponent f);
   99   
  100       /** This methods is normally called when the user has indicated that
  101         * they will begin resizing the frame. This method should be called
  102         * prior to any resizeFrame() calls to allow the DesktopManager to prepare any
  103         * necessary state.  Normally <b>f</b> will be a JInternalFrame.
  104         */
  105       void beginResizingFrame(JComponent f, int direction);
  106       /** The user has resized the component. Calls to this method will be preceded by calls
  107         * to beginResizingFrame().
  108         *  Normally <b>f</b> will be a JInternalFrame.
  109         */
  110       void resizeFrame(JComponent f, int newX, int newY, int newWidth, int newHeight);
  111       /** This method signals the end of the resize session. Any state maintained by
  112         * the DesktopManager can be removed here.  Normally <b>f</b> will be a JInternalFrame.
  113         */
  114       void endResizingFrame(JComponent f);
  115   
  116       /** This is a primitive reshape method.*/
  117       void setBoundsForFrame(JComponent f, int newX, int newY, int newWidth, int newHeight);
  118   }

Home » openjdk-7 » javax » swing » [javadoc | source]