HierarchyEvent.java revision 2362
1N/A * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved. 1N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1N/A * This code is free software; you can redistribute it and/or modify it 1N/A * under the terms of the GNU General Public License version 2 only, as 1N/A * published by the Free Software Foundation. Oracle designates this 1N/A * particular file as subject to the "Classpath" exception as provided 1N/A * by Oracle in the LICENSE file that accompanied this code. 1N/A * This code is distributed in the hope that it will be useful, but WITHOUT 1N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1N/A * version 2 for more details (a copy is included in the LICENSE file that 1N/A * accompanied this code). 1N/A * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * An event which indicates a change to the <code>Component</code> * hierarchy to which <code>Component</code> belongs. * <li>Hierarchy Change Events (HierarchyListener) * <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) * <li>Ancestor Reshape Events (HierarchyBoundsListener) * <li> an ancestor was resized * <li> an ancestor was moved * 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. * 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. The {@code ANCESTOR_MOVED} and * {@code 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.) The {@code 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. * An unspecified behavior will be caused if the {@code id} parameter * of any particular {@code HierarchyEvent} instance is not * in the range from {@code HIERARCHY_FIRST} to {@code HIERARCHY_LAST}. * The {@code changeFlags} parameter of any {@code HierarchyEvent} instance takes one of the following * <li> {@code HierarchyEvent.PARENT_CHANGED} * <li> {@code HierarchyEvent.DISPLAYABILITY_CHANGED} * <li> {@code HierarchyEvent.SHOWING_CHANGED} * Assigning the value different from listed above will cause unspecified behavior. * @author David Mendenhall * @see HierarchyBoundsAdapter * @see HierarchyBoundsListener * 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 * The event id indicating an ancestor-Container was moved. * The event id indicating an ancestor-Container was resized. * Marks the last integer id for the range of ancestor event ids. * A change flag indicates that the <code>HIERARCHY_CHANGED</code> event * was generated by a reparenting operation. * A change flag indicates that the <code>HIERARCHY_CHANGED</code> event * was generated due to the changing of the hierarchy displayability. * current displayability of the hierarchy, call the * <code>Component.isDisplayable</code> method. Displayability changes occur * in response to explicit or implicit calls of the * <code>Component.addNotify</code> and * <code>Component.removeNotify</code> methods. * @see java.awt.Component#isDisplayable() * @see java.awt.Component#addNotify() * @see java.awt.Component#removeNotify() * A change flag indicates that the <code>HIERARCHY_CHANGED</code> event * was generated due to the changing of the hierarchy showing state. * current showing state of the hierarchy, call the * <code>Component.isShowing</code> method. Showing state changes occur * when either the displayability or visibility of the * hierarchy occurs. Visibility changes occur in response to explicit * or implicit calls of the <code>Component.show</code> and * <code>Component.hide</code> methods. * @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() * Constructs an <code>HierarchyEvent</code> object to identify a * change in the <code>Component</code> hierarchy. * <p>This method throws an * <code>IllegalArgumentException</code> if <code>source</code> * @param source The <code>Component</code> object that * @param id An integer indicating the type of event. * For information on allowable values, see * the class description for {@link HierarchyEvent} * @param changed The <code>Component</code> at the top of * the hierarchy which was changed * @param changedParent The parent of the <code>changed</code> component. * may be the parent before or after the * change, depending on the type of change * @throws IllegalArgumentException if <code>source</code> is {@code null} * @see #getChangedParent() * Constructs an <code>HierarchyEvent</code> object to identify * a change in the <code>Component</code> hierarchy. * <p> This method throws an * <code>IllegalArgumentException</code> if <code>source</code> * @param source The <code>Component</code> object that * @param id An integer indicating the type of event. * For information on allowable values, see * the class description for {@link HierarchyEvent} * @param changed The <code>Component</code> at the top * of the hierarchy which was changed * @param changedParent The parent of the <code>changed</code> component. * 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 * the <code>HIERARCHY_CHANGED</code> events * represented in this event object. * For information on allowable values, see * the class description for {@link HierarchyEvent} * @throws IllegalArgumentException if <code>source</code> is null * @see #getChangedParent() * 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>. * Returns the Component at the top of the hierarchy which was * @return the changed Component * 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 * 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 * 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 typeStr +=
"DISPLAYABILITY_CHANGED";