23 * questions.
24 */
25 package java.awt;
26
27 import java.awt.dnd.DropTarget;
28
29 import java.awt.event.*;
30
31 import java.awt.peer.ContainerPeer;
32 import java.awt.peer.ComponentPeer;
33 import java.awt.peer.LightweightPeer;
34
35 import java.beans.PropertyChangeListener;
36
37 import java.io.IOException;
38 import java.io.ObjectInputStream;
39 import java.io.ObjectOutputStream;
40 import java.io.ObjectStreamField;
41 import java.io.PrintStream;
42 import java.io.PrintWriter;
43
44 import java.lang.ref.WeakReference;
45 import java.security.AccessController;
46
47 import java.util.ArrayList;
48 import java.util.EventListener;
49 import java.util.HashSet;
50 import java.util.Set;
51
52 import javax.accessibility.*;
53
54 import sun.util.logging.PlatformLogger;
55
56 import sun.awt.AppContext;
57 import sun.awt.AWTAccessor;
58 import sun.awt.AWTAccessor.MouseEventAccessor;
59 import sun.awt.PeerEvent;
60 import sun.awt.SunToolkit;
61
62 import sun.awt.dnd.SunDropTargetEvent;
3832 }
3833
3834 /**
3835 * Number of PropertyChangeListener objects registered. It's used
3836 * to add/remove ContainerListener to track target Container's state.
3837 */
3838 private transient volatile int propertyListenersCount = 0;
3839
3840 /**
3841 * The handler to fire {@code PropertyChange}
3842 * when children are added or removed
3843 */
3844 protected ContainerListener accessibleContainerHandler = null;
3845
3846 /**
3847 * Fire {@code PropertyChange} listener, if one is registered,
3848 * when children are added or removed.
3849 * @since 1.3
3850 */
3851 protected class AccessibleContainerHandler
3852 implements ContainerListener {
3853 public void componentAdded(ContainerEvent e) {
3854 Component c = e.getChild();
3855 if (c != null && c instanceof Accessible) {
3856 AccessibleAWTContainer.this.firePropertyChange(
3857 AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
3858 null, ((Accessible) c).getAccessibleContext());
3859 }
3860 }
3861 public void componentRemoved(ContainerEvent e) {
3862 Component c = e.getChild();
3863 if (c != null && c instanceof Accessible) {
3864 AccessibleAWTContainer.this.firePropertyChange(
3865 AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
3866 ((Accessible) c).getAccessibleContext(), null);
3867 }
3868 }
3869 }
3870
3871 /**
3872 * Adds a PropertyChangeListener to the listener list.
|
23 * questions.
24 */
25 package java.awt;
26
27 import java.awt.dnd.DropTarget;
28
29 import java.awt.event.*;
30
31 import java.awt.peer.ContainerPeer;
32 import java.awt.peer.ComponentPeer;
33 import java.awt.peer.LightweightPeer;
34
35 import java.beans.PropertyChangeListener;
36
37 import java.io.IOException;
38 import java.io.ObjectInputStream;
39 import java.io.ObjectOutputStream;
40 import java.io.ObjectStreamField;
41 import java.io.PrintStream;
42 import java.io.PrintWriter;
43 import java.io.Serializable;
44
45 import java.lang.ref.WeakReference;
46 import java.security.AccessController;
47
48 import java.util.ArrayList;
49 import java.util.EventListener;
50 import java.util.HashSet;
51 import java.util.Set;
52
53 import javax.accessibility.*;
54
55 import sun.util.logging.PlatformLogger;
56
57 import sun.awt.AppContext;
58 import sun.awt.AWTAccessor;
59 import sun.awt.AWTAccessor.MouseEventAccessor;
60 import sun.awt.PeerEvent;
61 import sun.awt.SunToolkit;
62
63 import sun.awt.dnd.SunDropTargetEvent;
3833 }
3834
3835 /**
3836 * Number of PropertyChangeListener objects registered. It's used
3837 * to add/remove ContainerListener to track target Container's state.
3838 */
3839 private transient volatile int propertyListenersCount = 0;
3840
3841 /**
3842 * The handler to fire {@code PropertyChange}
3843 * when children are added or removed
3844 */
3845 protected ContainerListener accessibleContainerHandler = null;
3846
3847 /**
3848 * Fire {@code PropertyChange} listener, if one is registered,
3849 * when children are added or removed.
3850 * @since 1.3
3851 */
3852 protected class AccessibleContainerHandler
3853 implements ContainerListener, Serializable {
3854 private static final long serialVersionUID = -480855353991814677L;
3855
3856 public void componentAdded(ContainerEvent e) {
3857 Component c = e.getChild();
3858 if (c != null && c instanceof Accessible) {
3859 AccessibleAWTContainer.this.firePropertyChange(
3860 AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
3861 null, ((Accessible) c).getAccessibleContext());
3862 }
3863 }
3864 public void componentRemoved(ContainerEvent e) {
3865 Component c = e.getChild();
3866 if (c != null && c instanceof Accessible) {
3867 AccessibleAWTContainer.this.firePropertyChange(
3868 AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
3869 ((Accessible) c).getAccessibleContext(), null);
3870 }
3871 }
3872 }
3873
3874 /**
3875 * Adds a PropertyChangeListener to the listener list.
|