API Overview API Index Package Overview Direct link to this page
JDK 1.6
  java.awt.event. HierarchyEvent View Javadoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291

/*
 * @(#)HierarchyEvent.java	1.14 05/11/17
 *
 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package java.awt.event;

import java.awt.AWTEvent;
import java.awt.Component;
import java.awt.Container;

/**
 * An event which indicates a change to the <code>Component</code>
 * hierarchy to which a <code>Component</code> belongs.
 * <ul>
 * <li>Hierarchy Change Events (HierarchyListener)
 *     <ul>
 *     <li> addition of an ancestor
 *     <li> removal of an ancestor
 *     <li> hierarchy made displayable
 *     <li> hierarchy made undisplayable
 *     <li> hierarchy shown on the screen (both visible and displayable)
 *     <li> hierarchy hidden on the screen (either invisible or undisplayable)
 *     </ul>
 * <li>Ancestor Reshape Events (HierarchyBoundsListener)
 *     <ul>
 *     <li> an ancestor was resized
 *     <li> an ancestor was moved
 *     </ul>
 * </ul>
 * <p>
 * Hierarchy events are provided for notification purposes ONLY.
 * The AWT will automatically handle changes to the hierarchy internally so
 * that GUI layout and displayability works properly regardless of whether a
 * program is receiving these events or not.
 * <p>
 * This event is generated by a Container object (such as a Panel) when the
 * Container is added, removed, moved, or resized, and passed down the
 * hierarchy. It is also generated by a Component object when that object's
 * <code>addNotify</code>, <code>removeNotify</code>, <code>show</code>, or
 * <code>hide</code> method is called. ANCESTOR_MOVED and ANCESTOR_RESIZED
 * events are dispatched to every <code>HierarchyBoundsListener</code> or
 * <code>HierarchyBoundsAdapter</code> object which registered to receive
 * such events using the Component's <code>addHierarchyBoundsListener</code>
 * method. (<code>HierarchyBoundsAdapter</code> objects implement the <code>
 * HierarchyBoundsListener</code> interface.) HIERARCHY_CHANGED events are
 * dispatched to every <code>HierarchyListener</code> object which registered
 * to receive such events using the Component's <code>addHierarchyListener
 * </code> method. Each such listener object gets this <code>HierarchyEvent
 * </code> when the event occurs.
 *
 * @author	David Mendenhall
 * @version	1.14, 11/17/05
 * @see		HierarchyListener
 * @see		HierarchyBoundsAdapter
 * @see		HierarchyBoundsListener
 * @since 	1.3
 */
public class HierarchyEvent extends AWTEvent {
    /*
     * serialVersionUID
     */
    private static final long serialVersionUID = -5337576970038043990L;

    /**
     * Marks the first integer id for the range of hierarchy event ids.
     */
    public static final int HIERARCHY_FIRST = 1400; // 1300 used by sun.awt.windows.ModalityEvent

    /**
     * The event id indicating that modification was made to the
     * entire hierarchy tree.
     */
    public static final int HIERARCHY_CHANGED = HIERARCHY_FIRST;

    /**
     * The event id indicating an ancestor-Container was moved.
     */
    public static final int ANCESTOR_MOVED = 1 + HIERARCHY_FIRST;

    /**
     * The event id indicating an ancestor-Container was resized.
     */
    public static final int ANCESTOR_RESIZED = 2 + HIERARCHY_FIRST;

    /**
     * Marks the last integer id for the range of ancestor event ids.
     */
    public static final int HIERARCHY_LAST = ANCESTOR_RESIZED;

    /**
     * Indicates that the <code>HIERARCHY_CHANGED</code> event
     * was generated by a reparenting operation.
     */
    public static final int PARENT_CHANGED = 0x1;

    /**
     * Indicates that the <code>HIERARCHY_CHANGED</code> event
     * was generated due to a change in the displayability
     * of the hierarchy.  To discern the
     * current displayability of the hierarchy, call
     * <code>Component.isDisplayable</code>. Displayability changes occur
     * in response to explicit or implicit calls to
     * <code>Component.addNotify</code> and
     * <code>Component.removeNotify</code>.
     *
     * @see java.awt.Component#isDisplayable()
     * @see java.awt.Component#addNotify()
     * @see java.awt.Component#removeNotify()
     */
    public static final int DISPLAYABILITY_CHANGED = 0x2;

    /**
     * Indicates that the <code>HIERARCHY_CHANGED</code> event
     * was generated due to a change in the showing state
     * of the hierarchy. To discern the
     * current showing state of the hierarchy, call
     * <code>Component.isShowing</code>. Showing state changes occur
     * when either the displayability or visibility of the
     * hierarchy occurs. Visibility changes occur in response to explicit
     * or implicit calls to <code>Component.show</code> and
     * <code>Component.hide</code>.
     *
     * @see java.awt.Component#isShowing()
     * @see java.awt.Component#addNotify()
     * @see java.awt.Component#removeNotify()
     * @see java.awt.Component#show()
     * @see java.awt.Component#hide()
     */
    public static final int SHOWING_CHANGED = 0x4;

    Component changed;
    Container changedParent;
    long      changeFlags;

    /**
     * Constructs an <code>HierarchyEvent</code> object to identify a
     * change in the <code>Component</code> hierarchy.
     * <p>Note that passing in an invalid <code>id</code> results in
     * unspecified behavior. This method throws an
     * <code>IllegalArgumentException</code> if <code>source</code>
     * is <code>null</code>.
     *
     * @param source          the <code>Component</code> object that
     *                        originated the event
     * @param id              an integer indicating the type of event
     * @param changed         the <code>Component</code> at the top of
     *                        the hierarchy which was changed
     * @param changedParent   the parent of <code>changed</code>; this
     *                        may be the parent before or after the
     *                        change, depending on the type of change
     * @throws IllegalArgumentException if <code>source</code> is null
     */
    public HierarchyEvent(Component source, int id, Component changed,
			  Container changedParent) {
        super(source, id);
	this.changed = changed;
	this.changedParent = changedParent;
    }

    /**
     * Constructs an <code>HierarchyEvent</code> object to identify
     * a change in the <code>Component</code> hierarchy.
     * <p>Note that passing in an invalid <code>id</code> results in
     * unspecified behavior. This method throws an
     * <code>IllegalArgumentException</code> if <code>source</code>
     * is <code>null</code>.
     *
     * @param source          the <code>Component</code> object that
     *                        originated the event
     * @param id              an integer indicating the type of event
     * @param changed         the <code>Component</code> at the top
     *                        of the hierarchy which was changed
     * @param changedParent   the parent of <code>changed</code>; this
     *                        may be the parent before or after the
     *                        change, depending on the type of change
     * @param changeFlags     a bitmask which indicates the type(s) of
     *                        <code>HIERARCHY_CHANGED</code> events
     *                        represented in this event object
     * @throws IllegalArgumentException if <code>source</code> is null
     */
    public HierarchyEvent(Component source, int id, Component changed,
			  Container changedParent, long changeFlags) {
        super(source, id);
	this.changed = changed;
	this.changedParent = changedParent;
	this.changeFlags = changeFlags;
    }

    /**
     * Returns the originator of the event.
     *
     * @return the <code>Component</code> object that originated 
     * the event, or <code>null</code> if the object is not a 
     * <code>Component</code>.  
     */
    public Component getComponent() {
        return (source instanceof Component) ? (Component)source : null;
    }

    /**
     * Returns the Component at the top of the hierarchy which was
     * changed.
     *
     * @return the changed Component
     */
    public Component getChanged() {
        return changed;
    }

    /**
     * Returns the parent of the Component returned by <code>
     * getChanged()</code>. For a HIERARCHY_CHANGED event where the
     * change was of type PARENT_CHANGED via a call to <code>
     * Container.add</code>, the parent returned is the parent
     * after the add operation. For a HIERARCHY_CHANGED event where
     * the change was of type PARENT_CHANGED via a call to <code>
     * Container.remove</code>, the parent returned is the parent
     * before the remove operation. For all other events and types,
     * the parent returned is the parent during the operation.
     *
     * @return the parent of the changed Component
     */
    public Container getChangedParent() {
        return changedParent;
    }

    /**
     * Returns a bitmask which indicates the type(s) of
     * HIERARCHY_CHANGED events represented in this event object.
     * The bits have been bitwise-ored together.
     *
     * @return the bitmask, or 0 if this is not an HIERARCHY_CHANGED
     * event
     */
    public long getChangeFlags() {
        return changeFlags;
    }

    /**
     * Returns a parameter string identifying this event.
     * This method is useful for event-logging and for debugging.
     *
     * @return a string identifying the event and its attributes
     */
    public String paramString() {
        String typeStr;
	switch(id) {
	  case ANCESTOR_MOVED:
	      typeStr = "ANCESTOR_MOVED ("+changed+","+changedParent+")";
	      break;
	  case ANCESTOR_RESIZED:
	      typeStr = "ANCESTOR_RESIZED ("+changed+","+changedParent+")";
	      break;
	  case HIERARCHY_CHANGED: {
	      typeStr = "HIERARCHY_CHANGED (";
	      boolean first = true;
	      if ((changeFlags & PARENT_CHANGED) != 0) {
		  first = false;
		  typeStr += "PARENT_CHANGED";
	      }
	      if ((changeFlags & DISPLAYABILITY_CHANGED) != 0) {
		  if (first) {
		      first = false;
		  } else {
		      typeStr += ",";
		  }
		  typeStr += "DISPLAYABILITY_CHANGED";
	      }
	      if ((changeFlags & SHOWING_CHANGED) != 0) {
		  if (first) {
		      first = false;
		  } else {
		      typeStr += ",";
		  }
		  typeStr += "SHOWING_CHANGED";
	      }
	      if (!first) {
		  typeStr += ",";
	      }
	      typeStr += changed + "," + changedParent + ")";
	      break;
	  }
	  default:
	      typeStr = "unknown type";
	}
	return typeStr;
    }
}

Generated By: JavaOnTracks Doclet 0.1.4     ©Thibaut Colar