/[classpath]/classpath/java/awt/Component.java
ViewVC logotype

Diff of /classpath/java/awt/Component.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.12 by mark, Tue Jan 22 22:26:58 2002 UTC revision 1.13 by ericb, Mon Mar 18 22:40:25 2002 UTC
# Line 1  Line 1 
1  /* Copyright (C) 1999, 2000, 2001, 2002  Free Software Foundation  /* Component.java -- a graphics component
2       Copyright (C) 1999, 2000, 2001, 2002  Free Software Foundation
3    
4  This file is part of GNU Classpath.  This file is part of GNU Classpath.
5    
# Line 35  obligated to do so.  If you do not wish Line 36  obligated to do so.  If you do not wish
36  exception statement from your version. */  exception statement from your version. */
37    
38  package java.awt;  package java.awt;
39  import java.awt.event.*;  
40  import java.awt.image.*;  import java.awt.event.ComponentEvent;
41    import java.awt.event.ComponentListener;
42    import java.awt.event.FocusEvent;
43    import java.awt.event.FocusListener;
44    import java.awt.event.HierarchyBoundsListener;
45    import java.awt.event.HierarchyEvent;
46    import java.awt.event.HierarchyListener;
47    import java.awt.event.KeyEvent;
48    import java.awt.event.KeyListener;
49    import java.awt.event.InputMethodEvent;
50    import java.awt.event.InputMethodListener;
51    import java.awt.event.MouseEvent;
52    import java.awt.event.MouseListener;
53    import java.awt.event.MouseMotionListener;
54    import java.awt.event.PaintEvent;
55    import java.awt.image.ColorModel;
56    import java.awt.image.ImageObserver;
57    import java.awt.image.ImageProducer;
58    import java.awt.peer.ComponentPeer;
59    import java.awt.peer.LightweightPeer;
60    import java.beans.PropertyChangeListener;
61    import java.beans.PropertyChangeSupport;
62  import java.io.PrintStream;  import java.io.PrintStream;
63  import java.io.PrintWriter;  import java.io.PrintWriter;
64  import java.lang.reflect.*;  import java.io.Serializable;
65    import java.lang.reflect.Array;
66  import java.util.EventListener;  import java.util.EventListener;
67  import java.util.Locale;  import java.util.Locale;
68  import java.util.ResourceBundle;  import java.util.ResourceBundle;
69  import java.util.Vector;  import java.util.Vector;
70  import java.awt.peer.ComponentPeer;  import javax.accessibility.Accessible;
71  import java.awt.peer.LightweightPeer;  import javax.accessibility.AccessibleComponent;
72  import java.beans.PropertyChangeSupport;  import javax.accessibility.AccessibleContext;
73  import java.beans.PropertyChangeListener;  import javax.accessibility.AccessibleRole;
74  // import javax.accessibility.AccessibleContext;  import javax.accessibility.AccessibleStateSet;
75    
76  /**  /**
77    * The root of all evil.   * The root of all evil.
78    *   *
79    * Status: Incomplete. The event dispatch mechanism is implemented. All   * Status: Incomplete. The event dispatch mechanism is implemented. All
80    * other methods defined in the J2SE 1.3 API javadoc exist, but are mostly   * other methods defined in the J2SE 1.3 API javadoc exist, but are mostly
81    * incomplete or only stubs; except for methods relating to the Drag and Drop,   * incomplete or only stubs; except for methods relating to the Drag and
82    * Input Method, and Accessibility frameworks: These methods are present but   * Drop, Input Method, and Accessibility frameworks: These methods are
83    * commented out.   * present but commented out.
84    */   *
85  public abstract class Component implements ImageObserver, MenuContainer,   * @author original author unknown
86                                             java.io.Serializable   * @author Eric Blake <ebb9@email.byu.edu>
87     * @since 1.0
88     * @status still missing 1.4 support
89     */
90    public abstract class Component
91      implements ImageObserver, MenuContainer, Serializable
92  {  {
93    /**    /**
94     * Constant returned by the <code>getAlignmentY</code> method to indicate     * Constant returned by the <code>getAlignmentY</code> method to indicate
# Line 135  public abstract class Component implemen Line 163  public abstract class Component implemen
163    
164    /* Anything else is non-serializable, and should be declared "transient". */    /* Anything else is non-serializable, and should be declared "transient". */
165    transient Container parent;    transient Container parent;
166    transient java.awt.peer.ComponentPeer peer;    transient ComponentPeer peer;
167    
168    transient ComponentListener componentListener;    transient ComponentListener componentListener;
169    transient FocusListener focusListener;    transient FocusListener focusListener;
# Line 210  public abstract class Component implemen Line 238  public abstract class Component implemen
238     * @deprecated     * @deprecated
239     */     */
240    // Classpath's Gtk peers rely on this.    // Classpath's Gtk peers rely on this.
241    public java.awt.peer.ComponentPeer getPeer()    public ComponentPeer getPeer()
242    {    {
243      return peer;      return peer;
244    }    }
# Line 241  public abstract class Component implemen Line 269  public abstract class Component implemen
269    {    {
270      if (peer != null)      if (peer != null)
271        {        {
272          GraphicsConfiguration config = peer.getGraphicsConfiguration();          GraphicsConfiguration config = peer.getGraphicsConfiguration();
273          if (config != null)          if (config != null)
274            return config;            return config;
275        }        }
276    
277      if (parent != null)      if (parent != null)
# Line 278  public abstract class Component implemen Line 306  public abstract class Component implemen
306    {    {
307      if (peer != null)      if (peer != null)
308        {        {
309          Toolkit tk = peer.getToolkit();          Toolkit tk = peer.getToolkit();
310          if (tk != null)          if (tk != null)
311            return tk;            return tk;
312        }        }
313      if (parent != null)      if (parent != null)
314        return parent.getToolkit ();        return parent.getToolkit ();
# Line 781  public abstract class Component implemen Line 809  public abstract class Component implemen
809    public void setBounds(int x, int y, int w, int h)    public void setBounds(int x, int y, int w, int h)
810    {    {
811      if (this.x == x      if (this.x == x
812          && this.y == y          && this.y == y
813          && this.width == w          && this.width == w
814          && this.height == h)          && this.height == h)
815        return;        return;
816    
817      invalidate();      invalidate();
# Line 1024  public abstract class Component implemen Line 1052  public abstract class Component implemen
1052    {    {
1053      if (peer != null)      if (peer != null)
1054        {        {
1055          Graphics gfx = peer.getGraphics();          Graphics gfx = peer.getGraphics();
1056          if (gfx != null)          if (gfx != null)
1057            return gfx;            return gfx;
1058                
1059          // create graphics for lightweight:          // create graphics for lightweight:
1060          Container parent = getParent();          Container parent = getParent();
1061          if (parent != null)          if (parent != null)
1062            {            {
1063              gfx = parent.getGraphics();              gfx = parent.getGraphics();
1064              Rectangle bounds = getBounds();              Rectangle bounds = getBounds();
1065              gfx.setClip(bounds);              gfx.setClip(bounds);
1066              gfx.translate(bounds.x, bounds.y);              gfx.translate(bounds.x, bounds.y);
1067              return gfx;              return gfx;
1068            }            }
1069        }        }
1070      return null;      return null;
1071    }    }
# Line 1111  public abstract class Component implemen Line 1139  public abstract class Component implemen
1139    {        {    
1140      if (!visible)      if (!visible)
1141        return;        return;
1142                    
1143      if (peer != null)      if (peer != null)
1144        peer.paint(g);        peer.paint(g);
1145      paint(g);      paint(g);
# Line 1175  public abstract class Component implemen Line 1203  public abstract class Component implemen
1203      // Handle lightweight repainting by forwarding to native parent      // Handle lightweight repainting by forwarding to native parent
1204      if (isLightweight() && (parent != null))      if (isLightweight() && (parent != null))
1205        {        {
1206          if (parent != null)          if (parent != null)
1207            parent.repaint(tm, x+getX(), y+getY(), width, height);            parent.repaint(tm, x+getX(), y+getY(), width, height);
1208          return;          return;
1209        }        }
1210    
1211      if (peer != null)      if (peer != null)
# Line 1225  public abstract class Component implemen Line 1253  public abstract class Component implemen
1253     * <code>false</code> otherwise.     * <code>false</code> otherwise.
1254     */     */
1255    public boolean imageUpdate (Image img, int infoflags, int x, int y,    public boolean imageUpdate (Image img, int infoflags, int x, int y,
1256                                int w, int h)                                int w, int h)
1257    {    {
1258      // FIXME      // FIXME
1259      return false;      return false;
# Line 1270  public abstract class Component implemen Line 1298  public abstract class Component implemen
1298    public boolean prepareImage(Image image, ImageObserver observer)    public boolean prepareImage(Image image, ImageObserver observer)
1299    {    {
1300      return prepareImage(image, image.getWidth(observer),      return prepareImage(image, image.getWidth(observer),
1301                          image.getHeight(observer), observer);                          image.getHeight(observer), observer);
1302    }    }
1303    
1304    /**    /**
# Line 1287  public abstract class Component implemen Line 1315  public abstract class Component implemen
1315     * for rendering, <code>false</code> otherwise.     * for rendering, <code>false</code> otherwise.
1316     */     */
1317    public boolean prepareImage(Image image, int width, int height,    public boolean prepareImage(Image image, int width, int height,
1318                                ImageObserver observer)                                ImageObserver observer)
1319    {    {
1320      return peer.prepareImage(image, width, height, observer);      return peer.prepareImage(image, width, height, observer);
1321    }    }
# Line 1305  public abstract class Component implemen Line 1333  public abstract class Component implemen
1333    public int checkImage(Image image, ImageObserver observer)    public int checkImage(Image image, ImageObserver observer)
1334    {    {
1335      return checkImage(image, image.getWidth(observer),      return checkImage(image, image.getWidth(observer),
1336                        image.getHeight(observer), observer);                        image.getHeight(observer), observer);
1337    }    }
1338    
1339    /**    /**
# Line 1321  public abstract class Component implemen Line 1349  public abstract class Component implemen
1349     * @return The image observer flags indicating the status of the load.     * @return The image observer flags indicating the status of the load.
1350     */     */
1351    public int checkImage (Image image, int width, int height,    public int checkImage (Image image, int width, int height,
1352                           ImageObserver observer)                           ImageObserver observer)
1353    {    {
1354      if (peer != null)      if (peer != null)
1355        return peer.checkImage (image, width, height, observer);        return peer.checkImage (image, width, height, observer);
# Line 1438  public abstract class Component implemen Line 1466  public abstract class Component implemen
1466    /** Forward AWT events to processEvent() if:    /** Forward AWT events to processEvent() if:
1467      *     - Events have been enabled for this type of event via enableEvents(),      *     - Events have been enabled for this type of event via enableEvents(),
1468      *   OR:      *   OR:
1469      *    - There is at least one registered listener for this type of event      *         - There is at least one registered listener for this type of event
1470      *      *
1471      * @param event The event to dispatch      * @param event The event to dispatch
1472      *      *
1473      * @specnote This method is final, but we need to be able to      * @specnote This method is final, but we need to be able to
1474      *           override it in order to handle other event types in our      *           override it in order to handle other event types in our
1475      *           subclasses. The solution is to define a second, non-final      *                subclasses. The solution is to define a second, non-final
1476      *           method - dispatchEventImpl() - to actually do the work.      *           method - dispatchEventImpl() - to actually do the work.
1477      *           Investigations with Thread.dumpStack() on the dispatch thread      *           Investigations with Thread.dumpStack() on the dispatch thread
1478      *           in JDK 1.3 show Sun's implementation is doing the same      *           in JDK 1.3 show Sun's implementation is doing the same
# Line 1465  public abstract class Component implemen Line 1493  public abstract class Component implemen
1493      if (e.id <= ComponentEvent.COMPONENT_LAST      if (e.id <= ComponentEvent.COMPONENT_LAST
1494          && e.id >= ComponentEvent.COMPONENT_FIRST          && e.id >= ComponentEvent.COMPONENT_FIRST
1495          && (componentListener != null          && (componentListener != null
1496              || (eventMask & AWTEvent.COMPONENT_EVENT_MASK) != 0))              || (eventMask & AWTEvent.COMPONENT_EVENT_MASK) != 0))
1497        processEvent(e);        processEvent(e);
1498      else if (e.id <= KeyEvent.KEY_LAST      else if (e.id <= KeyEvent.KEY_LAST
1499               && e.id >= KeyEvent.KEY_FIRST               && e.id >= KeyEvent.KEY_FIRST
1500               && (keyListener != null               && (keyListener != null
1501                   || (eventMask & AWTEvent.KEY_EVENT_MASK) != 0))                   || (eventMask & AWTEvent.KEY_EVENT_MASK) != 0))
1502        processEvent(e);        processEvent(e);
1503      else if (e.id <= MouseEvent.MOUSE_LAST      else if (e.id <= MouseEvent.MOUSE_LAST
1504               && e.id >= MouseEvent.MOUSE_FIRST               && e.id >= MouseEvent.MOUSE_FIRST
1505               && (mouseListener != null               && (mouseListener != null
1506                   || mouseMotionListener != null                   || mouseMotionListener != null
1507                   || (eventMask & AWTEvent.MOUSE_EVENT_MASK) != 0))                   || (eventMask & AWTEvent.MOUSE_EVENT_MASK) != 0))
1508        processEvent(e);        processEvent(e);
1509      else if (e.id <= FocusEvent.FOCUS_LAST      else if (e.id <= FocusEvent.FOCUS_LAST
1510               && e.id >= FocusEvent.FOCUS_FIRST               && e.id >= FocusEvent.FOCUS_FIRST
1511               && (focusListener != null               && (focusListener != null
1512                   || (eventMask & AWTEvent.FOCUS_EVENT_MASK) != 0))                   || (eventMask & AWTEvent.FOCUS_EVENT_MASK) != 0))
1513        processEvent(e);        processEvent(e);
1514      else if (e.id <= InputMethodEvent.INPUT_METHOD_LAST      else if (e.id <= InputMethodEvent.INPUT_METHOD_LAST
1515               && e.id >= InputMethodEvent.INPUT_METHOD_FIRST               && e.id >= InputMethodEvent.INPUT_METHOD_FIRST
1516               && (inputMethodListener != null               && (inputMethodListener != null
1517                   || (eventMask & AWTEvent.INPUT_METHOD_EVENT_MASK) != 0))                   || (eventMask & AWTEvent.INPUT_METHOD_EVENT_MASK) != 0))
1518        processEvent(e);        processEvent(e);
1519      else if (e.id <= HierarchyEvent.HIERARCHY_LAST      else if (e.id <= HierarchyEvent.HIERARCHY_LAST
1520               && e.id >= HierarchyEvent.HIERARCHY_FIRST               && e.id >= HierarchyEvent.HIERARCHY_FIRST
1521               && (hierarchyListener != null               && (hierarchyListener != null
1522                   || hierarchyBoundsListener != null                   || hierarchyBoundsListener != null
1523                   || (eventMask & AWTEvent.HIERARCHY_EVENT_MASK) != 0))                   || (eventMask & AWTEvent.HIERARCHY_EVENT_MASK) != 0))
1524        processEvent(e);        processEvent(e);
1525      else if (e.id <= PaintEvent.PAINT_LAST      else if (e.id <= PaintEvent.PAINT_LAST
1526               && e.id >= PaintEvent.PAINT_FIRST               && e.id >= PaintEvent.PAINT_FIRST
1527               && (eventMask & AWTEvent.PAINT_EVENT_MASK) != 0)                     && (eventMask & AWTEvent.PAINT_EVENT_MASK) != 0)      
1528        processEvent(e);        processEvent(e);
1529    }    }
1530        
# Line 1701  public abstract class Component implemen Line 1729  public abstract class Component implemen
1729      if (el != null)      if (el != null)
1730        getListenerList (el, v);            getListenerList (el, v);    
1731      EventListener[] el_a = (EventListener[]) Array.newInstance(listenerType,      EventListener[] el_a = (EventListener[]) Array.newInstance(listenerType,
1732                                                                 v.size());                                                                 v.size());
1733      v.copyInto(el_a);      v.copyInto(el_a);
1734      return el_a;      return el_a;
1735    }    }
# Line 1712  public abstract class Component implemen Line 1740  public abstract class Component implemen
1740        {        {
1741          AWTEventMulticaster mc = (AWTEventMulticaster) el;          AWTEventMulticaster mc = (AWTEventMulticaster) el;
1742          getListenerList(mc.a, v);          getListenerList(mc.a, v);
1743          getListenerList(mc.b, v);          getListenerList(mc.b, v);
1744        }        }
1745      else      else
1746        v.addElement(el);              v.addElement(el);      
# Line 1777  public abstract class Component implemen Line 1805  public abstract class Component implemen
1805        {        {
1806        case MouseEvent.MOUSE_MOVED:        case MouseEvent.MOUSE_MOVED:
1807        case MouseEvent.MOUSE_DRAGGED:        case MouseEvent.MOUSE_DRAGGED:
1808          // Just drop the old (intermediate) event and return the new one.          // Just drop the old (intermediate) event and return the new one.
1809          return newEvent;          return newEvent;
1810        case PaintEvent.PAINT:        case PaintEvent.PAINT:
1811        case PaintEvent.UPDATE:        case PaintEvent.UPDATE:
1812          return coalescePaintEvents((PaintEvent) existingEvent,          return coalescePaintEvents((PaintEvent) existingEvent,
1813                                     (PaintEvent) newEvent);                                     (PaintEvent) newEvent);
1814        }        }
1815      return null;      return null;
1816    }    }
# Line 1813  public abstract class Component implemen Line 1841  public abstract class Component implemen
1841     * </pre>     * </pre>
1842     */     */
1843    private PaintEvent coalescePaintEvents(PaintEvent queuedEvent,    private PaintEvent coalescePaintEvents(PaintEvent queuedEvent,
1844                                           PaintEvent newEvent)                                           PaintEvent newEvent)
1845    {    {
1846      Rectangle r1 = queuedEvent.getUpdateRect();      Rectangle r1 = queuedEvent.getUpdateRect();
1847      Rectangle r2 = newEvent.getUpdateRect();      Rectangle r2 = newEvent.getUpdateRect();
# Line 1853  public abstract class Component implemen Line 1881  public abstract class Component implemen
1881      else if (e instanceof MouseEvent)      else if (e instanceof MouseEvent)
1882        {        {
1883          if (e.id == MouseEvent.MOUSE_MOVED          if (e.id == MouseEvent.MOUSE_MOVED
1884              || e.id == MouseEvent.MOUSE_DRAGGED)              || e.id == MouseEvent.MOUSE_DRAGGED)
1885            processMouseMotionEvent((MouseEvent) e);            processMouseMotionEvent((MouseEvent) e);
1886          else          else
1887            processMouseEvent((MouseEvent) e);            processMouseEvent((MouseEvent) e);
1888        }        }
1889      else if (e instanceof ComponentEvent)      else if (e instanceof ComponentEvent)
1890        processComponentEvent((ComponentEvent) e);        processComponentEvent((ComponentEvent) e);
# Line 1867  public abstract class Component implemen Line 1895  public abstract class Component implemen
1895      else if (e instanceof HierarchyEvent)      else if (e instanceof HierarchyEvent)
1896        {        {
1897          if (e.id == HierarchyEvent.HIERARCHY_CHANGED)          if (e.id == HierarchyEvent.HIERARCHY_CHANGED)
1898            processHierarchyEvent((HierarchyEvent) e);            processHierarchyEvent((HierarchyEvent) e);
1899          else          else
1900            processHierarchyBoundsEvent((HierarchyEvent) e);            processHierarchyBoundsEvent((HierarchyEvent) e);
1901        }        }
1902    }    }
1903    
# Line 1887  public abstract class Component implemen Line 1915  public abstract class Component implemen
1915      switch (e.id)      switch (e.id)
1916        {        {
1917          case ComponentEvent.COMPONENT_HIDDEN:          case ComponentEvent.COMPONENT_HIDDEN:
1918            componentListener.componentHidden(e);            componentListener.componentHidden(e);
1919          break;          break;
1920                                    
1921          case ComponentEvent.COMPONENT_MOVED:          case ComponentEvent.COMPONENT_MOVED:
1922            componentListener.componentMoved(e);            componentListener.componentMoved(e);
1923          break;          break;
1924                    
1925          case ComponentEvent.COMPONENT_RESIZED:          case ComponentEvent.COMPONENT_RESIZED:
1926            componentListener.componentResized(e);            componentListener.componentResized(e);
1927          break;          break;
1928                    
1929          case ComponentEvent.COMPONENT_SHOWN:          case ComponentEvent.COMPONENT_SHOWN:
1930            componentListener.componentShown(e);            componentListener.componentShown(e);
1931          break;          break;
1932        }        }
1933    }    }
1934    
# Line 1918  public abstract class Component implemen Line 1946  public abstract class Component implemen
1946      switch (e.id)      switch (e.id)
1947        {        {
1948          case FocusEvent.FOCUS_GAINED:          case FocusEvent.FOCUS_GAINED:
1949            focusListener.focusGained(e);            focusListener.focusGained(e);
1950          break;          break;
1951          case FocusEvent.FOCUS_LOST:          case FocusEvent.FOCUS_LOST:
1952            focusListener.focusLost(e);            focusListener.focusLost(e);
1953          break;          break;
1954        }            }    
1955    }    }
1956    
# Line 1939  public abstract class Component implemen Line 1967  public abstract class Component implemen
1967        return;        return;
1968      switch (e.id)      switch (e.id)
1969        {        {
1970          case KeyEvent.KEY_PRESSED:          case KeyEvent.KEY_PRESSED:
1971            keyListener.keyPressed(e);            keyListener.keyPressed(e);
1972          break;          break;
1973          case KeyEvent.KEY_RELEASED:          case KeyEvent.KEY_RELEASED:
1974            keyListener.keyReleased(e);            keyListener.keyReleased(e);
1975          break;          break;
1976          case KeyEvent.KEY_TYPED:          case KeyEvent.KEY_TYPED:
1977            keyListener.keyTyped(e);            keyListener.keyTyped(e);
1978          break;          break;
1979        }        }
1980    }    }
1981    
# Line 1964  public abstract class Component implemen Line 1992  public abstract class Component implemen
1992        return;        return;
1993      switch (e.id)      switch (e.id)
1994        {        {
1995          case MouseEvent.MOUSE_CLICKED:          case MouseEvent.MOUSE_CLICKED:
1996            mouseListener.mouseClicked(e);            mouseListener.mouseClicked(e);
1997          break;          break;
1998          case MouseEvent.MOUSE_ENTERED:          case MouseEvent.MOUSE_ENTERED:
1999            mouseListener.mouseEntered(e);            mouseListener.mouseEntered(e);
2000          break;          break;
2001          case MouseEvent.MOUSE_EXITED:          case MouseEvent.MOUSE_EXITED:
2002            mouseListener.mouseExited(e);            mouseListener.mouseExited(e);
2003          break;          break;
2004          case MouseEvent.MOUSE_PRESSED:          case MouseEvent.MOUSE_PRESSED:
2005            mouseListener.mousePressed(e);            mouseListener.mousePressed(e);
2006          break;          break;
2007          case MouseEvent.MOUSE_RELEASED:          case MouseEvent.MOUSE_RELEASED:
2008            mouseListener.mouseReleased(e);            mouseListener.mouseReleased(e);
2009          break;          break;
2010        }        }
2011    }    }
2012    
# Line 1995  public abstract class Component implemen Line 2023  public abstract class Component implemen
2023        return;        return;
2024      switch (e.id)      switch (e.id)
2025        {        {
2026          case MouseEvent.MOUSE_DRAGGED:          case MouseEvent.MOUSE_DRAGGED:
2027            mouseMotionListener.mouseDragged(e);            mouseMotionListener.mouseDragged(e);
2028          break;          break;
2029          case MouseEvent.MOUSE_MOVED:          case MouseEvent.MOUSE_MOVED:
2030            mouseMotionListener.mouseMoved(e);            mouseMotionListener.mouseMoved(e);
2031          break;          break;
2032        }        }        
2033    }    }
2034    
2035    /** @since 1.2 */    /** @since 1.2 */
# Line 2011  public abstract class Component implemen Line 2039  public abstract class Component implemen
2039        return;        return;
2040      switch (e.id)      switch (e.id)
2041        {        {
2042          case InputMethodEvent.CARET_POSITION_CHANGED:          case InputMethodEvent.CARET_POSITION_CHANGED:
2043            inputMethodListener.caretPositionChanged(e);            inputMethodListener.caretPositionChanged(e);
2044          break;          break;
2045          case InputMethodEvent.INPUT_METHOD_TEXT_CHANGED:          case InputMethodEvent.INPUT_METHOD_TEXT_CHANGED:
2046            inputMethodListener.inputMethodTextChanged(e);            inputMethodListener.inputMethodTextChanged(e);
2047          break;          break;
2048        }        }        
2049    }    }
2050        
2051    /** @since 1.3 */    /** @since 1.3 */
# Line 2037  public abstract class Component implemen Line 2065  public abstract class Component implemen
2065      switch (e.id)      switch (e.id)
2066        {        {
2067          case HierarchyEvent.ANCESTOR_MOVED:          case HierarchyEvent.ANCESTOR_MOVED:
2068            hierarchyBoundsListener.ancestorMoved(e);            hierarchyBoundsListener.ancestorMoved(e);
2069          break;          break;
2070          case HierarchyEvent.ANCESTOR_RESIZED:          case HierarchyEvent.ANCESTOR_RESIZED:
2071            hierarchyBoundsListener.ancestorResized(e);            hierarchyBoundsListener.ancestorResized(e);
2072          break;          break;
2073        }        }
2074    }    }
2075    
# Line 2058  public abstract class Component implemen Line 2086  public abstract class Component implemen
2086      switch (event.id)      switch (event.id)
2087        {        {
2088        case PaintEvent.PAINT:        case PaintEvent.PAINT:
2089          paint(gfx);          paint(gfx);
2090          break;          break;
2091        case PaintEvent.UPDATE:        case PaintEvent.UPDATE:
2092          update(gfx);          update(gfx);
2093          break;          break;
2094        default:        default:
2095          throw new IllegalArgumentException("unknown paint event");          throw new IllegalArgumentException("unknown paint event");
2096        }        }
2097    }    }
2098    
# Line 2315  public abstract class Component implemen Line 2343  public abstract class Component implemen
2343      String name = getName();      String name = getName();
2344      if (name != null)      if (name != null)
2345        {        {
2346          param.append(name);          param.append(name);
2347          param.append(",");          param.append(",");
2348        }        }
2349      param.append(width);      param.append(width);
2350      param.append("x");      param.append("x");
# Line 2420  public abstract class Component implemen Line 2448  public abstract class Component implemen
2448    }    }
2449    
2450    public void addPropertyChangeListener(String propertyName,    public void addPropertyChangeListener(String propertyName,
2451                                          PropertyChangeListener listener)                                          PropertyChangeListener listener)
2452    {    {
2453      if (changeSupport == null)      if (changeSupport == null)
2454        changeSupport = new PropertyChangeSupport(this);        changeSupport = new PropertyChangeSupport(this);
# Line 2482  lostFocus(Event event, Object what) Line 2510  lostFocus(Event event, Object what)
2510  }  }
2511  */  */
2512    
2513  }    /**
2514       * This class provides accessibility support for subclasses of container.
2515       *
2516       * @author Eric Blake <ebb9@email.byu.edu>
2517       * @since 1.3
2518       * @XXX Shell class, to allow compilation. This needs documentation and
2519       * correct implementation.
2520       */
2521      protected abstract class AccessibleAWTComponent extends AccessibleContext
2522        implements Serializable, AccessibleComponent
2523      {
2524        /**
2525         * Compatible with JDK 1.3+.
2526         */
2527        private static final long serialVersionUID = 642321655757800191L;
2528    
2529        /**
2530         * Converts show/hide events to PropertyChange events.
2531         *
2532         * @serial the component handler
2533         */
2534        protected ComponentListener accessibleAWTComponentHandler;
2535    
2536        /**
2537         * Converts focus events to PropertyChange events.
2538         *
2539         * @serial the focus handler
2540         */
2541        protected FocusListener accessibltAWTFocusHandler;
2542    
2543        /**
2544         * The default constructor.
2545         */
2546        protected AccessibleAWTComponent()
2547        {
2548        }
2549    
2550        public void addPropertyChangeListener(PropertyChangeListener l) {}
2551        public void removePropertyChangeListener(PropertyChangeListener l){}
2552        public String getAccessibleName() { return null; }
2553        public String getAccessibleDescription() { return null; }
2554        public AccessibleRole getAccessibleRole()
2555        {
2556          return AccessibleRole.AWT_COMPONENT;
2557        }
2558        public AccessibleStateSet getAccessibleStateSet() { return null; }
2559        public Accessible getAccessibleParent() { return null; }
2560        public int getAccessibleIndexInParent() { return -1; }
2561        public int getAccessibleChildrenCount() { return 0; }
2562        public Accessible getAccessibleChild(int i) { return null; }
2563        public Locale getLocale() { return null; }
2564        public AccessibleComponent getAccessibleComponent() { return null; }
2565        public Color getBackground() { return null; }
2566        public void setBackground(Color c) {}
2567        public Color getForeground() { return null; }
2568        public void setForeground(Color c) {}
2569        public Cursor getCursor() { return null; }
2570        public void setCursor(Cursor cursor) {}
2571        public Font getFont() { return null; }
2572        public void setFont(Font f) {}
2573        public FontMetrics getFontMetrics(Font f) { return null; }
2574        public boolean isEnabled() { return false; }
2575        public void setEnabled(boolean b) {}
2576        public boolean isVisible() { return false; }
2577        public void setVisible(boolean b) {}
2578        public boolean isShowing() { return false; }
2579        public boolean contains(Point p) { return false; }
2580        public Point getLocationOnScreen() { return null; }
2581        public Point getLocation() { return null; }
2582        public void setLocation(Point p) {}
2583        public Rectangle getBounds() { return null; }
2584        public void setBounds(Rectangle r) {}
2585        public Dimension getSize() { return null; }
2586        public void setSize(Dimension d) {}
2587        public Accessible getAccessibleAt(Point p) { return null; }
2588        public boolean isFocusTraversable() { return false; }
2589        public void requestFocus() {}
2590        public void addFocusListener(FocusListener l) {}
2591        public void removeFocusListener(FocusListener l) {}
2592      } // class AccessibleAWTComponent
2593    } // class Component

Legend:
Removed from v.1.12  
changed lines
  Added in v.1.13

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26