| /* AccessibleComponent.java -- aids in accessibly rendering Java components |
| Copyright (C) 2000, 2001, 2002, 2005 Free Software Foundation, Inc. |
| |
| This file is part of GNU Classpath. |
| |
| GNU Classpath is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 2, or (at your option) |
| any later version. |
| |
| GNU Classpath is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| General Public License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with GNU Classpath; see the file COPYING. If not, write to the |
| Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
| 02110-1301 USA. |
| |
| Linking this library statically or dynamically with other modules is |
| making a combined work based on this library. Thus, the terms and |
| conditions of the GNU General Public License cover the whole |
| combination. |
| |
| As a special exception, the copyright holders of this library give you |
| permission to link this library with independent modules to produce an |
| executable, regardless of the license terms of these independent |
| modules, and to copy and distribute the resulting executable under |
| terms of your choice, provided that you also meet, for each linked |
| independent module, the terms and conditions of the license of that |
| module. An independent module is a module which is not derived from |
| or based on this library. If you modify this library, you may extend |
| this exception to your version of the library, but you are not |
| obligated to do so. If you do not wish to do so, delete this |
| exception statement from your version. */ |
| |
| package javax.accessibility; |
| |
| import java.awt.Color; |
| import java.awt.Cursor; |
| import java.awt.Dimension; |
| import java.awt.Font; |
| import java.awt.FontMetrics; |
| import java.awt.Point; |
| import java.awt.Rectangle; |
| import java.awt.event.FocusListener; |
| |
| /** |
| * Objects which are to be rendered to a screen as part of a graphical |
| * user interface should implement this interface. Accessibility |
| * software can use the implementations of this interface to determine |
| * and set the screen representation for an object. |
| * |
| * <p>The <code>AccessibleContext.getAccessibleComponent()</code> method |
| * should return <code>null</code> if an object does not implement this |
| * interface. |
| * |
| * @author Eric Blake (ebb9@email.byu.edu) |
| * @see Accessible |
| * @see AccessibleContext |
| * @see AccessibleContext#getAccessibleComponent() |
| * @since 1.2 |
| * @status updated to 1.4 |
| */ |
| public interface AccessibleComponent |
| { |
| /** |
| * Get the background color of this component. |
| * |
| * @return the background color of this component, or null if not supported |
| * @see #setBackground(Color) |
| */ |
| Color getBackground(); |
| |
| /** |
| * Set the background color of this component to the specified color. |
| * |
| * @param color the color to set the background to |
| * @see #getBackground() |
| */ |
| void setBackground(Color color); |
| |
| /** |
| * Get the foreground color of this component. |
| * |
| * @return the foreground color of this component, or null if not supported |
| * @see #setForeground(Color) |
| */ |
| Color getForeground(); |
| |
| /** |
| * Set the foreground color of this component. |
| * |
| * @param color the color to set the foreground to |
| * @see #getForeground() |
| */ |
| void setForeground(Color color); |
| |
| /** |
| * Get the cursor of this component. |
| * |
| * @return the Cursor of this component, or null if not supported |
| * @see #setCursor(Cursor) |
| */ |
| Cursor getCursor(); |
| |
| /** |
| * Set the cursor of the component. |
| * |
| * @param cursor the graphical representation of the cursor to use |
| * @see #getCursor() |
| */ |
| void setCursor(Cursor cursor); |
| |
| /** |
| * Get the font of this component |
| * |
| * @return the font of the component, or null if not supported |
| * @see #setFont(Font) |
| */ |
| Font getFont(); |
| |
| /** |
| * Set the font of this component. |
| * |
| * @param font the font to use |
| * @see #getFont() |
| */ |
| void setFont(Font font); |
| |
| /** |
| * Get the <code>FontMetrics</code> of the specified font in this component. |
| * |
| * @param font the specified font |
| * @return the metrics for the specified font, or null if not supported |
| * @throws NullPointerException if font is null |
| * @see #getFont() |
| */ |
| FontMetrics getFontMetrics(Font font); |
| |
| /** |
| * Indicates whether or not this component is enabled. An object which is |
| * enabled also has AccessibleState.ENABLED in its StateSet. |
| * |
| * @return true if the component is enabled |
| * @see #setEnabled(boolean) |
| * @see AccessibleContext#getAccessibleStateSet() |
| * @see AccessibleState#ENABLED |
| */ |
| boolean isEnabled(); |
| |
| /** |
| * Set this component to an enabled or disabled state. |
| * |
| * @param b true to enable the component, else disable it |
| * @see #isEnabled() |
| */ |
| void setEnabled(boolean b); |
| |
| /** |
| * Indicates whether or not this component is visible or intends to be |
| * visible although one of its ancestors may not be. An object which is |
| * visible also has AccessibleState.VISIBLE in its StateSet. Check |
| * <code>isShowing()</code> to see if the object is on screen. |
| * |
| * @return true if the component is visible |
| * @see #setVisible(boolean) |
| * @see AccessibleContext#getAccessibleStateSet() |
| * @see AccessibleState#VISIBLE |
| */ |
| boolean isVisible(); |
| |
| /** |
| * Set the visible state of this component. |
| * |
| * @param b true to make the component visible, else hide it |
| * @see #isVisible() |
| */ |
| void setVisible(boolean b); |
| |
| /** |
| * Indicates whether or not this component is visible by checking |
| * the visibility of this component and its ancestors. The component may |
| * be hidden on screen by another component like pop-up help. An object |
| * which is showing on screen also has AccessibleState.SHOWING in its |
| * StateSet. |
| * |
| * @return true if component and ancestors are visible |
| * @see #isVisible() |
| * @see #setVisible(boolean) |
| * @see AccessibleContext#getAccessibleStateSet() |
| * @see AccessibleState#SHOWING |
| */ |
| boolean isShowing(); |
| |
| /** |
| * Tests whether or not the specified point is contained within |
| * this component. The coordinates are specified relative to this |
| * component's coordinate system. |
| * |
| * @param point the Point to locate |
| * @return true if the point is within this component |
| * @throws NullPointerException if point is null |
| * @see #getBounds() |
| */ |
| boolean contains(Point point); |
| |
| /** |
| * Get the location of this component in the screen's coordinate space. |
| * The point specified is the top-left corner of this component. |
| * |
| * @return the location on screen, or null if off-screen |
| * @see #getBounds() |
| * @see #getLocation() |
| */ |
| Point getLocationOnScreen(); |
| |
| /** |
| * Get the location of this component in the parent's coordinate system. |
| * The point specified is the top-left corner of this component. |
| * |
| * @return the location in the parent on screen, or null if off-screen |
| * @see #getBounds() |
| * @see #getLocationOnScreen() |
| * @see #setLocation(Point) |
| */ |
| Point getLocation(); |
| |
| /** |
| * Set the location of this component relative to its parent. The point |
| * specified represents the top-left corner of this component. |
| * |
| * @param point the top-left corner of this component relative to the parent |
| * @throws NullPointerException if point is null |
| * @see #getLocation() |
| */ |
| void setLocation(Point point); |
| |
| /** |
| * Get the bounds of this component relative to its parent - it's width, |
| * height, and relative location to its parent. |
| * |
| * @return the bounds of this component, or null if not on screen |
| * @see #contains(Point) |
| */ |
| Rectangle getBounds(); |
| |
| /** |
| * Set the bounds of this component to the specified height and width, and |
| * relative location to its parent. |
| * |
| * @param rectangle the new height, width, and relative location |
| * @throws NullPointerException if rectangle is null |
| */ |
| void setBounds(Rectangle rectangle); |
| |
| /** |
| * Get the size of this component - it's width and height. |
| * |
| * @return the dimensions of this component, or null if not on screen |
| * @see #setSize(Dimension) |
| */ |
| Dimension getSize(); |
| |
| /** |
| * Set the size of this component to the given dimensions. |
| * |
| * @param dimension the new size of the component |
| * @throws NullPointerException if dimension is null |
| * @see #getSize() |
| */ |
| void setSize(Dimension dimension); |
| |
| /** |
| * If an object exists at the specified point which is a child of this |
| * parent component, and it is accessible, then it is returned. |
| * |
| * @param point the location within this component's coordinate system |
| * @return the accessible child object at that point, or null |
| */ |
| Accessible getAccessibleAt(Point point); |
| |
| /** |
| * Indicates whether or not this component can accept focus. An object |
| * which can accept focus also has AccessibleState.FOCUSABLE in its |
| * StateSet. |
| * |
| * @return true if the component can accept focus |
| * @see AccessibleContext#getAccessibleStateSet() |
| * @see AccessibleState#FOCUSABLE |
| * @see AccessibleState#FOCUSED |
| */ |
| boolean isFocusTraversable(); |
| |
| /** |
| * If this method is called this component will attempt to gain focus, |
| * but if it cannot accept focus nothing happens. On success, the StateSet |
| * will contain AccessibleState.FOCUSED |
| * |
| * @see #isFocusTraversable() |
| * @see AccessibleState#FOCUSED |
| */ |
| void requestFocus(); |
| |
| /** |
| * Adds the specified listener to this component. |
| * |
| * @param listener the listener to add to this component |
| * @see #removeFocusListener(FocusListener) |
| */ |
| void addFocusListener(FocusListener listener); |
| |
| /** |
| * Removes the specified listener from this component. |
| * |
| * @param listener the listener to remove |
| * @see #addFocusListener(FocusListener) |
| */ |
| void removeFocusListener(FocusListener listener); |
| } // interface AccessibleComponent |