FileDocCategorySizeDatePackage
WindowsDesktopManager.javaAPI DocJava SE 6 API3165Tue Jun 10 00:21:58 BST 2008com.sun.java.swing.plaf.windows

WindowsDesktopManager

public class WindowsDesktopManager extends DefaultDesktopManager implements UIResource, Serializable
This class implements a DesktopManager which more closely follows the MDI model than the DefaultDesktopManager. Unlike the DefaultDesktopManager policy, MDI requires that the selected and activated child frames are the same, and that that frame always be the top-most window.

The maximized state is managed by the DesktopManager with MDI, instead of just being a property of the individual child frame. This means that if the currently selected window is maximized and another window is selected, that new window will be maximized.

see
javax.swing.DefaultDesktopManager
version
1.21 05/10/06
author
Thomas Ball

Fields Summary
private WeakReference
currentFrameRef
Constructors Summary
Methods Summary
public voidactivateFrame(javax.swing.JInternalFrame f)

        JInternalFrame currentFrame = currentFrameRef != null ? 
            currentFrameRef.get() : null;
        try {
            super.activateFrame(f);
            if (currentFrame != null && f != currentFrame) {
                // If the current frame is maximized, transfer that 
                // attribute to the frame being activated.
                if (currentFrame.isMaximum() &&
		    (f.getClientProperty("JInternalFrame.frameType") !=
		    "optionDialog") ) {
                    //Special case.  If key binding was used to select next
                    //frame instead of minimizing the icon via the minimize
                    //icon.
                    if (!currentFrame.isIcon()) {
                        currentFrame.setMaximum(false);
                        if (f.isMaximizable()) {
                            if (!f.isMaximum()) {
                                f.setMaximum(true);
                            } else if (f.isMaximum() && f.isIcon()) {
                                f.setIcon(false);
                            } else {
                                f.setMaximum(false);
                            }
                        }
                    }
                }
                if (currentFrame.isSelected()) {
                    currentFrame.setSelected(false);
                }
            }

            if (!f.isSelected()) {
                f.setSelected(true);
            }
        } catch (PropertyVetoException e) {}
        if (f != currentFrame) {
            currentFrameRef = new WeakReference(f);
        }