History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/javax/swing/DesktopManager.java (1 of 18352 files). Show all

Unified · Split

java/pkg/javax/swing/DesktopManager.java+118−0
@@ -0,0 +1,118 @@
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+}