6101N/A * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 2362N/A * published by the Free Software Foundation. Oracle designates this 0N/A * particular file as subject to the "Classpath" exception as provided 2362N/A * by Oracle in the LICENSE file that accompanied this code. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 0N/A * A container used to create a multiple-document interface or a virtual desktop. 0N/A * You create <code>JInternalFrame</code> objects and add them to the 0N/A * <code>JDesktopPane</code>. <code>JDesktopPane</code> extends 0N/A * <code>JLayeredPane</code> to manage the potentially overlapping internal 0N/A * frames. It also maintains a reference to an instance of 0N/A * <code>DesktopManager</code> that is set by the UI 0N/A * class for the current look and feel (L&F). Note that <code>JDesktopPane</code> 0N/A * does not support borders. 0N/A * This class is normally used as the parent of <code>JInternalFrames</code> 0N/A * to provide a pluggable <code>DesktopManager</code> object to the 0N/A * <code>JInternalFrames</code>. The <code>installUI</code> of the 0N/A * L&F specific implementation is responsible for setting the 0N/A * <code>desktopManager</code> variable appropriately. 0N/A * When the parent of a <code>JInternalFrame</code> is a <code>JDesktopPane</code>, 0N/A * it should delegate most of its behavior to the <code>desktopManager</code> 0N/A * (closing, resizing, etc). 0N/A * For further documentation and examples see 0N/A * a section in <em>The Java Tutorial</em>. 0N/A * <strong>Warning:</strong> Swing is not thread safe. For more 0N/A * information see <a 0N/A * <strong>Warning:</strong> 0N/A * Serialized objects of this class will not be compatible with 0N/A * future Swing releases. The current serialization support is 0N/A * appropriate for short term storage or RMI between applications running 0N/A * the same version of Swing. As of 1.4, support for long term storage 0N/A * of all JavaBeans<sup><font size="-2">TM</font></sup> 0N/A * has been added to the <code>java.beans</code> package. 0N/A * @see JInternalFrame 0N/A * @see JInternalFrame.JDesktopIcon 0N/A * @see DesktopManager 0N/A * @author David Kloba 0N/A * @see #getUIClassID 0N/A * Indicates that the entire contents of the item being dragged 0N/A * should appear inside the desktop pane. 0N/A * @see #OUTLINE_DRAG_MODE 0N/A * Indicates that an outline only of the item being dragged 0N/A * should appear inside the desktop pane. 0N/A * @see #LIVE_DRAG_MODE 0N/A * Creates a new <code>JDesktopPane</code>. 0N/A * Returns the L&F object that renders this component. 0N/A * @return the <code>DesktopPaneUI</code> object that 0N/A * renders this component 0N/A * Sets the L&F object that renders this component. 0N/A * @param ui the DesktopPaneUI L&F object 0N/A * @see UIDefaults#getUI 0N/A * attribute: visualUpdate true 0N/A * description: The UI object that implements the Component's LookAndFeel. 0N/A * Sets the "dragging style" used by the desktop pane. 0N/A * You may want to change to one mode or another for 0N/A * performance or aesthetic reasons. 0N/A * @param dragMode the style of drag to use for items in the Desktop 0N/A * @see #LIVE_DRAG_MODE 0N/A * @see #OUTLINE_DRAG_MODE 0N/A * description: Dragging style for internal frame children. 0N/A * enum: LIVE_DRAG_MODE JDesktopPane.LIVE_DRAG_MODE 0N/A * OUTLINE_DRAG_MODE JDesktopPane.OUTLINE_DRAG_MODE 0N/A * Gets the current "dragging style" used by the desktop pane. 0N/A * @return either <code>Live_DRAG_MODE</code> or 0N/A * <code>OUTLINE_DRAG_MODE</code> 0N/A * Returns the <code>DesktopManger</code> that handles 0N/A * desktop-specific UI actions. 0N/A * Sets the <code>DesktopManger</code> that will handle 2784N/A * desktop-specific UI actions. This may be overridden by 0N/A * @param d the <code>DesktopManager</code> to use 0N/A * description: Desktop manager to handle the internal frames in the 0N/A * Notification from the <code>UIManager</code> that the L&F has changed. 0N/A * Replaces the current UI object with the latest version from the 0N/A * <code>UIManager</code>. 0N/A * @see JComponent#updateUI 0N/A * Returns the name of the L&F class that renders this component. 0N/A * @return the string "DesktopPaneUI" 0N/A * @see JComponent#getUIClassID 0N/A * @see UIDefaults#getUI 0N/A * Returns all <code>JInternalFrames</code> currently displayed in the 0N/A * desktop. Returns iconified frames as well as expanded frames. 0N/A * @return an array of <code>JInternalFrame</code> objects 0N/A /** Returns the currently active <code>JInternalFrame</code> 0N/A * in this <code>JDesktopPane</code>, or <code>null</code> 0N/A * if no <code>JInternalFrame</code> is currently active. 0N/A * @return the currently active <code>JInternalFrame</code> or 0N/A /** Sets the currently active <code>JInternalFrame</code> 0N/A * in this <code>JDesktopPane</code>. This method is used to bridge 0N/A * the package gap between JDesktopPane and the platform implementation 0N/A * code and should not be called directly. To visually select the frame 0N/A * the client must call JInternalFrame.setSelected(true) to activate 0N/A * @see JInternalFrame#setSelected(boolean) 0N/A * @param f the internal frame that's currently selected 0N/A * Returns all <code>JInternalFrames</code> currently displayed in the 0N/A * specified layer of the desktop. Returns iconified frames as well 0N/A * @param layer an int specifying the desktop layer 0N/A * @return an array of <code>JInternalFrame</code> objects 0N/A // navigate to the next frame 0N/A // navigate to the previous frame 0N/A // If framesCache is dirty, then recreate it. 0N/A * Selects the next <code>JInternalFrame</code> in this desktop pane. 0N/A * @param forward a boolean indicating which direction to select in; 0N/A * <code>true</code> for forward, <code>false</code> for 0N/A * @return the JInternalFrame that was selected or <code>null</code> 0N/A * if nothing was selected 0N/A // Maintain navigation traversal order until an 0N/A // external stack change, such as a click on a frame. 0N/A * Sets whether component order checking is enabled. 0N/A * @param enable a boolean value, where <code>true</code> means 0N/A * a change in component order will cause a change in the keyboard 0N/A * See readObject() and writeObject() in JComponent for more 0N/A * information about serialization in Swing. 0N/A * Returns a string representation of this <code>JDesktopPane</code>. 0N/A * This method is intended to be used only for debugging purposes, and the 0N/A * content and format of the returned string may vary between 0N/A * implementations. The returned string may be empty but may not 0N/A * be <code>null</code>. 0N/A * @return a string representation of this <code>JDesktopPane</code> 0N/A// Accessibility support 0N/A * Gets the <code>AccessibleContext</code> associated with this 0N/A * <code>JDesktopPane</code>. For desktop panes, the 0N/A * <code>AccessibleContext</code> takes the form of an 0N/A * <code>AccessibleJDesktopPane</code>. 0N/A * A new <code>AccessibleJDesktopPane</code> instance is created if necessary. 0N/A * @return an <code>AccessibleJDesktopPane</code> that serves as the 0N/A * <code>AccessibleContext</code> of this <code>JDesktopPane</code> 0N/A * This class implements accessibility support for the 0N/A * <code>JDesktopPane</code> class. It provides an implementation of the 0N/A * Java Accessibility API appropriate to desktop pane user-interface 0N/A * <strong>Warning:</strong> 0N/A * Serialized objects of this class will not be compatible with 0N/A * future Swing releases. The current serialization support is 0N/A * appropriate for short term storage or RMI between applications running 0N/A * the same version of Swing. As of 1.4, support for long term storage 0N/A * of all JavaBeans<sup><font size="-2">TM</font></sup> 0N/A * has been added to the <code>java.beans</code> package. 0N/A * Get the role of this object. 0N/A * @return an instance of AccessibleRole describing the role of the 0N/A * @see AccessibleRole