< prev index next >

src/java.desktop/share/classes/java/awt/Container.java

Print this page




  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;


3837         }
3838 
3839         /**
3840          * Number of PropertyChangeListener objects registered. It's used
3841          * to add/remove ContainerListener to track target Container's state.
3842          */
3843         private transient volatile int propertyListenersCount = 0;
3844 
3845         /**
3846          * The handler to fire {@code PropertyChange}
3847          * when children are added or removed
3848          */
3849         protected ContainerListener accessibleContainerHandler = null;
3850 
3851         /**
3852          * Fire {@code PropertyChange} listener, if one is registered,
3853          * when children are added or removed.
3854          * @since 1.3
3855          */
3856         protected class AccessibleContainerHandler
3857             implements ContainerListener {


3858             public void componentAdded(ContainerEvent e) {
3859                 Component c = e.getChild();
3860                 if (c != null && c instanceof Accessible) {
3861                     AccessibleAWTContainer.this.firePropertyChange(
3862                         AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
3863                         null, ((Accessible) c).getAccessibleContext());
3864                 }
3865             }
3866             public void componentRemoved(ContainerEvent e) {
3867                 Component c = e.getChild();
3868                 if (c != null && c instanceof Accessible) {
3869                     AccessibleAWTContainer.this.firePropertyChange(
3870                         AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
3871                         ((Accessible) c).getAccessibleContext(), null);
3872                 }
3873             }
3874         }
3875 
3876         /**
3877          * 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;


3838         }
3839 
3840         /**
3841          * Number of PropertyChangeListener objects registered. It's used
3842          * to add/remove ContainerListener to track target Container's state.
3843          */
3844         private transient volatile int propertyListenersCount = 0;
3845 
3846         /**
3847          * The handler to fire {@code PropertyChange}
3848          * when children are added or removed
3849          */
3850         protected ContainerListener accessibleContainerHandler = null;
3851 
3852         /**
3853          * Fire {@code PropertyChange} listener, if one is registered,
3854          * when children are added or removed.
3855          * @since 1.3
3856          */
3857         protected class AccessibleContainerHandler
3858             implements ContainerListener, Serializable {
3859             private static final long serialVersionUID = -480855353991814677L;
3860 
3861             public void componentAdded(ContainerEvent e) {
3862                 Component c = e.getChild();
3863                 if (c != null && c instanceof Accessible) {
3864                     AccessibleAWTContainer.this.firePropertyChange(
3865                         AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
3866                         null, ((Accessible) c).getAccessibleContext());
3867                 }
3868             }
3869             public void componentRemoved(ContainerEvent e) {
3870                 Component c = e.getChild();
3871                 if (c != null && c instanceof Accessible) {
3872                     AccessibleAWTContainer.this.firePropertyChange(
3873                         AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
3874                         ((Accessible) c).getAccessibleContext(), null);
3875                 }
3876             }
3877         }
3878 
3879         /**
3880          * Adds a PropertyChangeListener to the listener list.


< prev index next >