AWT/Swing merge from GNU Classpath.

From-SVN: r56147
This commit is contained in:
Bryce McKinlay 2002-08-09 04:26:17 +00:00 committed by Bryce McKinlay
parent 097684ce62
commit 7bde45b2eb
490 changed files with 86038 additions and 9753 deletions

View file

@ -1,4 +1,5 @@
/* Copyright (C) 2000, 2002 Free Software Foundation
/* HierarchyEvent.java -- generated for a change in hierarchy
Copyright (C) 2000, 2002 Free Software Foundation
This file is part of GNU Classpath.
@ -38,87 +39,211 @@ package java.awt.event;
import java.awt.*;
/**
* @since 1.3
* This class represents an event generated for an ancestor component which
* may affect this component. These events normally do not need to be handled
* by the application, since the AWT system automatically takes care of them.
*
* <p>There are two types of hierarchy events. The first type is handled by
* HierarchyListener, and includes addition or removal of an ancestor, or
* an ancestor changing its on-screen status (visible and/or displayble). The
* second type is handled by HierarchyBoundsListener, and includes resizing
* or moving of an ancestor.
*
* @author Bryce McKinlay
* @see HierarchyListener
* @see HierarchyBoundsAdapter
* @see HierarchyBoundsListener
* @since 1.3
* @status updated to 1.4
*/
/* Status: thought to be complete and correct. */
public class HierarchyEvent extends AWTEvent
{
public static final int PARENT_CHANGED = 1 << 0,
DISPLAYABILITY_CHANGED = 1 << 1,
SHOWING_CHANGED = 1 << 2,
HIERARCHY_FIRST = 1400,
HIERARCHY_CHANGED = 1400,
ANCESTOR_MOVED = 1401,
ANCESTOR_RESIZED = 1402,
HIERARCHY_LAST = 1402;
/* Serialized fields from the serialization spec. */
Component changed;
Container changedParent;
long changeFlags = 0;
/**
* Compatible with JDK 1.3+.
*/
private static final long serialVersionUID = -5337576970038043990L;
/** This is the first id in the range of ids used by this class. */
public static final int HIERARCHY_FIRST = 1400;
/** This id indicates that the hierarchy tree changed. */
public static final int HIERARCHY_CHANGED = 1400;
/** This id indicates that an ancestor was moved. */
public static final int ANCESTOR_MOVED = 1401;
/** This id indicates that an ancestor was resized. */
public static final int ANCESTOR_RESIZED = 1402;
/** This is the last id in the range of ids used by this class. */
public static final int HIERARCHY_LAST = 1402;
/** This indicates that the HIERARCHY_CHANGED is a changed parent. */
public static final int PARENT_CHANGED = 1;
/**
* This indicates that the HIERARCHY_CHANGED is caused by a change in
* displayability.
*
* @see Component#isDisplayable()
* @see Component#addNotify()
* @see Component#removeNotify()
*/
public static final int DISPLAYABILITY_CHANGED = 2;
/**
* This indicates that the HIERARCHY_CHANGED is a changed visibility.
*
* @see Component#isShowing()
* @see Component#addNotify()
* @see Component#removeNotify()
* @see Component#show()
* @see Component#hide()
*/
public static final int SHOWING_CHANGED = 4;
/**
* The component at the top of the changed hierarchy.
*
* @serial the top component changed
*/
private final Component changed;
/**
* The parent of this component, either before or after the change depending
* on the type of change.
*
* @serial the parent component changed
*/
private final Container changedParent;
/**
* The bitmask of HIERARCHY_CHANGED event types.
*
* @serial the change flags
*/
private final long changeFlags;
/**
* Initializes a new instance of <code>HierarchyEvent</code> with the
* specified parameters. Note that an invalid id leads to unspecified
* results.
*
* @param source the component whose hierarchy changed
* @param id the event id
* @param changed the top component in the tree of changed hierarchy
* @param changedParent the updated parent of this object
* @throws IllegalArgumentException if source is null
*/
public HierarchyEvent(Component source, int id, Component changed,
Container changedParent)
Container changedParent)
{
this(source, id, changed, changedParent, 0);
}
/**
* Initializes a new instance of <code>HierarchyEvent</code> with the
* specified parameters. Note that an invalid id leads to unspecified
* results.
*
* @param source the component whose hierarchy changed
* @param id the event id
* @param changed the top component in the tree of changed hierarchy
* @param changedParent the updated parent of this object
* @param changeFlags the bitmask of specific HIERARCHY_CHANGED events
* @throws IllegalArgumentException if source is null
*/
public HierarchyEvent(Component source, int id, Component changed,
Container changedParent, long changeFlags)
{
super(source, id);
this.changed = changed;
this.changedParent = changedParent;
}
public HierarchyEvent(Component source, int id, Component changed,
Container changedParent, long changeFlags)
{
super(source,id);
this.changed = changed;
this.changedParent = changedParent;
this.changeFlags = changeFlags;
}
/**
* This method returns the event source as a <code>Component</code>. If the
* source has subsequently been modified to a non-Component, this returns
* null.
*
* @return the event source as a <code>Component</code>, or null
*/
public Component getComponent()
{
return (Component) source;
return source instanceof Component ? (Component) source : null;
}
/**
* Returns the component at the top of the hierarchy which changed.
*
* @return the top changed component
*/
public Component getChanged()
{
return changed;
}
/**
* Returns the parent of the component listed in <code>getChanged()</code>.
* If the cause of this event was <code>Container.add</code>, this is the
* new parent; if the cause was <code>Container.remove</code>, this is the
* old parent; otherwise it is the unchanged parent.
*
* @return the parent container of the changed component
*/
public Container getChangedParent()
{
return changedParent;
}
/**
* If this is a HIERARCHY_CHANGED event, this returns a bitmask of the
* types of changes that took place.
*
* @return the bitwise or of hierarchy change types, or 0
* @see #PARENT_CHANGED
* @see #DISPLAYABILITY_CHANGED
* @see #SHOWING_CHANGED
*/
public long getChangeFlags()
{
return changeFlags;
}
/**
* This method returns a string identifying this event. This is the field
* name of the id type, followed by a parenthesized listing of the changed
* component and its parent container. In addition, if the type is
* HIERARCHY_CHANGED, the flags preceed the changed component, in the
* order PARENT_CHANGED, DISPLAYABILITY_CHANGED, and SHOWING_CHANGED.
*
* @return a string identifying this event
*/
public String paramString()
{
String r;
StringBuffer r = new StringBuffer();
switch (id)
{
case HIERARCHY_CHANGED:
r = "HIERARCHY_CHANGED";
break;
case ANCESTOR_MOVED:
r = "ANCESTOR_MOVED";
break;
case ANCESTOR_RESIZED:
r = "ANCESTOR_RESIZED";
break;
default:
return "unknown type";
case HIERARCHY_CHANGED:
r.append("HIERARCHY_CHANGED (");
if ((changeFlags & PARENT_CHANGED) != 0)
r.append("PARENT_CHANGED,");
if ((changeFlags & DISPLAYABILITY_CHANGED) != 0)
r.append("DISPLAYABILITY_CHANGED,");
if ((changeFlags & SHOWING_CHANGED) != 0)
r.append("SHOWING_CHANGED,");
break;
case ANCESTOR_MOVED:
r.append("ANCESTOR_MOVED (");
break;
case ANCESTOR_RESIZED:
r.append("ANCESTOR_RESIZED (");
break;
default:
return "unknown type";
}
r += "(" + changed + "," + changedParent + ")";
return r;
r.append(changed).append(',').append(changedParent).append(')');
return r.toString();
}
}
} // class HierarchyEvent