Brought to you by EarthWeb
ITKnowledge Logo Login Graphic Click Here!
Click Here!
ITKnowledge
Search this book:
 
Search the site:
 
EXPERT SEARCH ----- nav

EarthWeb Direct

EarthWeb Direct

EarthWeb sites: other sites

Previous Table of Contents Next


The DesktopManager Interface

The DesktopManager interface defines the responsibilities of a desktop manager. A class that implements this interface is set as the desktop manager in a desktop pane when its user interface component is set. This allows a look-and-feel to dictate how the desktop operations are performed. For example, a look-and-feel can choose to place iconified windows along the right edge of the desktop instead of the customary location along the bottom. The DesktopManager interface is shown in Listing 17.3.

Listing 17.3 The DesktopManager Interface

public interface DesktopManager
{
    /** If possible, display this frame in an appropriate location.
      * Normally, this is not called, as the creator of the
      * JInternalFrame will add the frame to the appropriate parent.
      */
    void openFrame(JInternalFrame f);

    /**
     * Generally, this call should remove the frame from its parent.
     */
    void closeFrame(JInternalFrame f);

    /**
     * Generally, the frame should be resized to match its
     * parent’s bounds.
     */
    void maximizeFrame(JInternalFrame f);

    /** Generally, this indicates that the frame should be restored to
      * its size and position prior to a maximizeFrame() call.
      */
    void minimizeFrame(JInternalFrame f);

    /**
     * Generally, remove this frame from its parent and add an
     * iconic representation.
     */
    void iconifyFrame(JInternalFrame f);

    /**
      * Generally, remove any iconic representation that is present
      * and restore the frame to its original size and location.
      */
    void deiconifyFrame(JInternalFrame f);

    /**
     * Generally, indicate that this frame has focus. This is usually
     * called after the JInternalFrame’s IS_SELECTED_PROPERTY has been
     * set to true.
     */
    void activateFrame(JInternalFrame f);

    /**
     * Generally, indicate that this frame has lost focus.
     * This is usually called after the JInternalFrame’s IS_
     * SELECTED_PROPERTY has been set to false.
     */
    void deactivateFrame(JInternalFrame f);

    /** This method is normally called when the user has indicated that
      * they will begin dragging a component around. This method should
      * be called prior to any dragFrame() calls to allow the
      * DesktopManager to prepare any necessary state.
      * Normally <b>f</b> will be a JInternalFrame.
      */
    void beginDraggingFrame(JComponent f);

    /** The user has moved the frame. Calls to this method will be
      * preceded by calls to beginDraggingFrame().
      *  Normally <b>f</b> will be a JInternalFrame.
      */
    void dragFrame(JComponent f, int newX, int newY);

    /** This method signals the end of the dragging session.
      * Any state maintained by the DesktopManager can be removed
      * here.  Normally <b>f</b> will be a JInternalFrame.
      */
    void endDraggingFrame(JComponent f);

    /** This method is normally called when the user has indicated that
      * they will begin resizing the frame. This method should be called
      * prior to any resizeFrame() calls to allow the DesktopManager to
      * prepare any necessary state.  Normally <b>f</b> will be a
      * JInternalFrame.
      */
    void beginResizingFrame(JComponent f, int direction);

    /** The user has resized the component. Calls to this method
     * will be preceded by calls to beginResizingFrame().
     *  Normally <b>f</b> will be a JInternalFrame.
     */
    void resizeFrame(JComponent f, int newX, int newY,
                     int newWidth, int newHeight);

    /** This method signals the end of the resize session. Any state
     * maintained by the DesktopManager can be removed here.
     * Normally <b>f</b> will be a JInternalFrame.
     */
    void endResizingFrame(JComponent f);

    /** This is a primitive reshape method.*/
    void setBoundsForFrame(JComponent f, int newX, int newY,
                           int newWidth, int newHeight);
}


Previous Table of Contents Next
HomeAbout UsSearchSubscribeAdvertising InfoContact UsFAQs
Use of this site is subject to certain Terms & Conditions.
Copyright (c) 1996-1999 EarthWeb Inc. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement.