1 /*
2 * Copyright 1998-2001 Sun Microsystems, Inc. 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. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25 package javax.swing.event;
26
27 import java.awt.AWTEvent;
28 import javax.swing.JInternalFrame;
29
30 /**
31 * An <code>AWTEvent</code> that adds support for
32 * <code>JInternalFrame</code> objects as the event source. This class has the
33 * same event types as <code>WindowEvent</code>,
34 * although different IDs are used.
35 * Help on handling internal frame events
36 * is in
37 * <a href="http://java.sun.com/docs/books/tutorial/uiswing/events/internalframelistener.html" target="_top">How to Write an Internal Frame Listener</a>,
38 * a section in <em>The Java Tutorial</em>.
39 * <p>
40 * <strong>Warning:</strong>
41 * Serialized objects of this class will not be compatible with
42 * future Swing releases. The current serialization support is
43 * appropriate for short term storage or RMI between applications running
44 * the same version of Swing. As of 1.4, support for long term storage
45 * of all JavaBeans<sup><font size="-2">TM</font></sup>
46 * has been added to the <code>java.beans</code> package.
47 * Please see {@link java.beans.XMLEncoder}.
48 *
49 * @see java.awt.event.WindowEvent
50 * @see java.awt.event.WindowListener
51 * @see JInternalFrame
52 * @see InternalFrameListener
53 *
54 * @author Thomas Ball
55 */
56 public class InternalFrameEvent extends AWTEvent {
57
58 /**
59 * The first number in the range of IDs used for internal frame events.
60 */
61 public static final int INTERNAL_FRAME_FIRST = 25549;
62
63 /**
64 * The last number in the range of IDs used for internal frame events.
65 */
66 public static final int INTERNAL_FRAME_LAST = 25555;
67
68 /**
69 * The "window opened" event. This event is delivered only
70 * the first time the internal frame is made visible.
71 *
72 * @see JInternalFrame#show
73 */
74 public static final int INTERNAL_FRAME_OPENED = INTERNAL_FRAME_FIRST;
75
76 /**
77 * The "window is closing" event. This event is delivered when
78 * the user attempts to close the internal frame, such as by
79 * clicking the internal frame's close button,
80 * or when a program attempts to close the internal frame
81 * by invoking the <code>setClosed</code> method.
82 *
83 * @see JInternalFrame#setDefaultCloseOperation
84 * @see JInternalFrame#doDefaultCloseAction
85 * @see JInternalFrame#setClosed
86 */
87 public static final int INTERNAL_FRAME_CLOSING = 1 + INTERNAL_FRAME_FIRST;
88
89 /**
90 * The "window closed" event. This event is delivered after
91 * the internal frame has been closed as the result of a call to
92 * the <code>setClosed</code> or
93 * <code>dispose</code> method.
94 *
95 * @see JInternalFrame#setClosed
96 * @see JInternalFrame#dispose
97 */
98 public static final int INTERNAL_FRAME_CLOSED = 2 + INTERNAL_FRAME_FIRST;
99
100 /**
101 * The "window iconified" event.
102 * This event indicates that the internal frame
103 * was shrunk down to a small icon.
104 *
105 * @see JInternalFrame#setIcon
106 */
107 public static final int INTERNAL_FRAME_ICONIFIED = 3 + INTERNAL_FRAME_FIRST;
108
109 /**
110 * The "window deiconified" event type. This event indicates that the
111 * internal frame has been restored to its normal size.
112 *
113 * @see JInternalFrame#setIcon
114 */
115 public static final int INTERNAL_FRAME_DEICONIFIED = 4 + INTERNAL_FRAME_FIRST;
116
117 /**
118 * The "window activated" event type. This event indicates that keystrokes
119 * and mouse clicks are directed towards this internal frame.
120 *
121 * @see JInternalFrame#show
122 * @see JInternalFrame#setSelected
123 */
124 public static final int INTERNAL_FRAME_ACTIVATED = 5 + INTERNAL_FRAME_FIRST;
125
126 /**
127 * The "window deactivated" event type. This event indicates that keystrokes
128 * and mouse clicks are no longer directed to the internal frame.
129 *
130 * @see JInternalFrame#setSelected
131 */
132 public static final int INTERNAL_FRAME_DEACTIVATED = 6 + INTERNAL_FRAME_FIRST;
133
134 /**
135 * Constructs an <code>InternalFrameEvent</code> object.
136 * @param source the <code>JInternalFrame</code> object that originated the event
137 * @param id an integer indicating the type of event
138 */
139 public InternalFrameEvent(JInternalFrame source, int id) {
140 super(source, id);
141 }
142
143 /**
144 * Returns a parameter string identifying this event.
145 * This method is useful for event logging and for debugging.
146 *
147 * @return a string identifying the event and its attributes
148 */
149 public String paramString() {
150 String typeStr;
151 switch(id) {
152 case INTERNAL_FRAME_OPENED:
153 typeStr = "INTERNAL_FRAME_OPENED";
154 break;
155 case INTERNAL_FRAME_CLOSING:
156 typeStr = "INTERNAL_FRAME_CLOSING";
157 break;
158 case INTERNAL_FRAME_CLOSED:
159 typeStr = "INTERNAL_FRAME_CLOSED";
160 break;
161 case INTERNAL_FRAME_ICONIFIED:
162 typeStr = "INTERNAL_FRAME_ICONIFIED";
163 break;
164 case INTERNAL_FRAME_DEICONIFIED:
165 typeStr = "INTERNAL_FRAME_DEICONIFIED";
166 break;
167 case INTERNAL_FRAME_ACTIVATED:
168 typeStr = "INTERNAL_FRAME_ACTIVATED";
169 break;
170 case INTERNAL_FRAME_DEACTIVATED:
171 typeStr = "INTERNAL_FRAME_DEACTIVATED";
172 break;
173 default:
174 typeStr = "unknown type";
175 }
176 return typeStr;
177 }
178
179
180 /**
181 * Returns the originator of the event.
182 *
183 * @return the <code>JInternalFrame</code> object that originated the event
184 * @since 1.3
185 */
186
187 public JInternalFrame getInternalFrame () {
188 return (source instanceof JInternalFrame)? (JInternalFrame)source : null;
189 }
190
191
192 }