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 |
|
|
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 |
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; |
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 |
} |
} |
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) |
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 (); |
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(); |
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 |
} |
} |
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); |
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) |
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; |
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 |
/** |
/** |
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 |
} |
} |
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 |
/** |
/** |
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); |
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 |
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 |
|
|
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 |
} |
} |
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); |
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 |
} |
} |
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(); |
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); |
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 |
|
|
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 */ |
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 */ |
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 |
|
|
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 |
|
|
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"); |
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); |
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 |