|
|
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
* parents 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 JInternalFrames 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 JInternalFrames 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);
}
|