Index: ChangeLog =================================================================== RCS file: /cvsroot/classpath/classpath/ChangeLog,v retrieving revision 1.2433 diff -u -3 -p -u -r1.2433 ChangeLog --- ChangeLog 22 Aug 2004 21:19:54 -0000 1.2433 +++ ChangeLog 24 Aug 2004 01:11:30 -0000 @@ -1,3 +1,9 @@ +2004-08-24 Andrew John Hughes + + * java/awt/Label.java, java/awt/Canvas.java + Added accessibility classes to AWT Label and Canvas, + as well as additional documentation for Canvas. + 2004-08-22 Patrik Reali * doc/www.gnu.org/newsitems.txt: news on JSpinner and java crypto Index: java/awt/Canvas.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/awt/Canvas.java,v retrieving revision 1.6 diff -u -3 -p -u -r1.6 Canvas.java --- java/awt/Canvas.java 22 Jan 2002 22:26:58 -0000 1.6 +++ java/awt/Canvas.java 24 Aug 2004 01:11:30 -0000 @@ -37,17 +37,60 @@ exception statement from your version. * package java.awt; +import java.awt.image.BufferStrategy; import java.awt.peer.ComponentPeer; - -public class Canvas extends Component implements java.io.Serializable +import java.io.Serializable; +import javax.accessibility.Accessible; +import javax.accessibility.AccessibleContext; +import javax.accessibility.AccessibleRole; + +/** + * The Canvas component provides a blank rectangular + * area, which the client application can use for drawing and for + * capturing events. By overriding the paint() method, + * the canvas can be used for anything from simple line drawings to + * full-scale custom components. + * + * @author Original author unknown + * @author Tom Tromey + * @author Andrew John Hughes + * @since 1.0 + */ + +public class Canvas + extends Component + implements Serializable, Accessible { + + /** + * Compatible with Sun's JDK. + */ + private static final long serialVersionUID = -2284879212465893870L; + + /** + * The graphics configuration associated with the canvas. + */ transient GraphicsConfiguration graphicsConfiguration; /** + * The buffer strategy associated with this canvas. + */ + transient BufferStrategy bufferStrategy; + + /** * Initializes a new instance of Canvas. */ - public Canvas() { } + public Canvas() + { + } + /** + * Initializes a new instance of Canvas + * with the supplied graphics configuration. + * + * @param graphicsConfiguration the graphics configuration to use + * for this particular canvas. + */ public Canvas(GraphicsConfiguration graphicsConfiguration) { this.graphicsConfiguration = graphicsConfiguration; @@ -71,7 +114,7 @@ public class Canvas extends Component im } /** - * Repaints the canvas window. This method should be overriden by + * Repaints the canvas window. This method should be overridden by * a subclass to do something useful, as this method simply paints * the window with the background color. */ @@ -86,6 +129,83 @@ public class Canvas extends Component im gfx.fillRect(0, 0, size.width, size.height); } - // Serialization constant - private static final long serialVersionUID = -2284879212465893870L; + + /** + * This class provides accessibility support for the canvas. + */ + protected class AccessibleAWTCanvas + extends AccessibleAWTComponent + { + + /** + * Constructor for the accessible canvas. + */ + protected AccessibleAWTCanvas() + { + } + + /** + * Returns the accessible role for the canvas. + * + * @return an instance of AccessibleRole, describing + * the role of the canvas. + */ + public AccessibleRole getAccessibleRole() + { + return AccessibleRole.CANVAS; + } + + } + + /** + * Gets the AccessibleContext associated with this Canvas. + * The context is created, if necessary. + * + * @return the associated context + */ + public AccessibleContext getAccessibleContext() + { + /* Create the context if this is the first request */ + if (accessibleContext == null) + { + /* Create the context */ + accessibleContext = new AccessibleAWTCanvas(); + } + return accessibleContext; + } + + /** + * Returns the buffer strategy used by the canvas. + * + * @return the buffer strategy. + * @since 1.4 + */ + public BufferStrategy getBufferStrategy() + { + return bufferStrategy; + } + + /** + * Updates the canvas in response to a request to + * repaint() it. The canvas is cleared + * with the current background colour, before paint() + * is called to add the new contents. Subclasses + * which override this method should either call this + * method via super.update(graphics) or re-implement + * this behaviour, so as to ensure that the canvas is + * clear before painting takes place. + * + * @param graphics the graphics context. + */ + public void update(Graphics graphics) + { + Dimension size; + + /* Clear the canvas */ + size = getSize(); + graphics.clearRect(0, 0, size.width, size.height); + /* Call the paint method */ + paint(graphics); + } + } Index: java/awt/Label.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/awt/Label.java,v retrieving revision 1.12 diff -u -3 -p -u -r1.12 Label.java --- java/awt/Label.java 3 Jun 2003 16:40:37 -0000 1.12 +++ java/awt/Label.java 24 Aug 2004 01:11:30 -0000 @@ -40,13 +40,16 @@ package java.awt; import java.awt.peer.LabelPeer; import javax.accessibility.Accessible; +import javax.accessibility.AccessibleContext; +import javax.accessibility.AccessibleRole; /** * This component is used for displaying simple text strings that cannot - * be edited. + * be edited by the user. * * @author Aaron M. Renn (address@hidden) * @author Tom Tromey + * @author Andrew John Hughes */ public class Label extends Component implements Accessible { @@ -249,5 +252,60 @@ paramString() getAlignment() + "," + super.paramString()); } +/** + * This class provides accessibility support for the label. + */ +protected class AccessibleAWTLabel + extends AccessibleAWTComponent +{ + /** + * Constructor for the accessible label. + */ + public AccessibleAWTLabel() + { + } + + /** + * Returns the accessible name for the label. This is + * the text used in the label. + * + * @return a String containing the accessible + * name for this label. + */ + public String getAccessibleName() + { + return getText(); + } + + /** + * Returns the accessible role for the label. + * + * @return an instance of AccessibleRole, describing + * the role of the label. + */ + public AccessibleRole getAccessibleRole() + { + return AccessibleRole.LABEL; + } + +} + +/** + * Gets the AccessibleContext associated with this Label. + * The context is created, if necessary. + * + * @return the associated context + */ +public AccessibleContext getAccessibleContext() +{ + /* Create the context if this is the first request */ + if (accessibleContext == null) + { + /* Create the context */ + accessibleContext = new AccessibleAWTLabel(); + } + return accessibleContext; +} + } // class Label