Java tutorial
/* * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code 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 * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package javax.accessibility; /** * Class {@code AccessibleState} describes a component's particular state. The * actual state of the component is defined as an {@code AccessibleStateSet}, * which is a composed set of {@code AccessibleStates}. * <p> * The {@link #toDisplayString()} method allows you to obtain the localized * string for a locale independent key from a predefined {@code ResourceBundle} * for the keys defined in this class. * <p> * The constants in this class present a strongly typed enumeration of common * object roles. A public constructor for this class has been purposely omitted * and applications should use one of the constants from this class. If the * constants in this class are not sufficient to describe the role of an object, * a subclass should be generated from this class and it should provide * constants in a similar manner. * * @author Willie Walker * @author Peter Korn */ public class AccessibleState extends AccessibleBundle { // If you add or remove anything from here, make sure you // update AccessibleResourceBundle.java. /** * Indicates a window is currently the active window. This includes windows, * dialogs, frames, etc. In addition, this state is used to indicate the * currently active child of a component such as a list, table, or tree. For * example, the active child of a list is the child that is drawn with a * rectangle around it. * * @see AccessibleRole#WINDOW * @see AccessibleRole#FRAME * @see AccessibleRole#DIALOG */ public static final AccessibleState ACTIVE = new AccessibleState("active"); /** * Indicates this object is currently pressed. This is usually associated * with buttons and indicates the user has pressed a mouse button while the * pointer was over the button and has not yet released the mouse button. * * @see AccessibleRole#PUSH_BUTTON */ public static final AccessibleState PRESSED = new AccessibleState("pressed"); /** * Indicates that the object is armed. This is usually used on buttons that * have been pressed but not yet released, and the mouse pointer is still * over the button. * * @see AccessibleRole#PUSH_BUTTON */ public static final AccessibleState ARMED = new AccessibleState("armed"); /** * Indicates the current object is busy. This is usually used on objects * such as progress bars, sliders, or scroll bars to indicate they are in a * state of transition. * * @see AccessibleRole#PROGRESS_BAR * @see AccessibleRole#SCROLL_BAR * @see AccessibleRole#SLIDER */ public static final AccessibleState BUSY = new AccessibleState("busy"); /** * Indicates this object is currently checked. This is usually used on * objects such as toggle buttons, radio buttons, and check boxes. * * @see AccessibleRole#TOGGLE_BUTTON * @see AccessibleRole#RADIO_BUTTON * @see AccessibleRole#CHECK_BOX */ public static final AccessibleState CHECKED = new AccessibleState("checked"); /** * Indicates the user can change the contents of this object. This is * usually used primarily for objects that allow the user to enter text. * Other objects, such as scroll bars and sliders, are automatically * editable if they are enabled. * * @see #ENABLED */ public static final AccessibleState EDITABLE = new AccessibleState("editable"); /** * Indicates this object allows progressive disclosure of its children. This * is usually used with hierarchical objects such as trees and is often * paired with the {@code EXPANDED} or {@code COLLAPSED} states. * * @see #EXPANDED * @see #COLLAPSED * @see AccessibleRole#TREE */ public static final AccessibleState EXPANDABLE = new AccessibleState("expandable"); /** * Indicates this object is collapsed. This is usually paired with the * {@code EXPANDABLE} state and is used on objects that provide progressive * disclosure such as trees. * * @see #EXPANDABLE * @see #EXPANDED * @see AccessibleRole#TREE */ public static final AccessibleState COLLAPSED = new AccessibleState("collapsed"); /** * Indicates this object is expanded. This is usually paired with the * {@code EXPANDABLE} state and is used on objects that provide progressive * disclosure such as trees. * * @see #EXPANDABLE * @see #COLLAPSED * @see AccessibleRole#TREE */ public static final AccessibleState EXPANDED = new AccessibleState("expanded"); /** * Indicates this object is enabled. The absence of this state from an * object's state set indicates this object is not enabled. An object that * is not enabled cannot be manipulated by the user. In a graphical display, * it is usually grayed out. */ public static final AccessibleState ENABLED = new AccessibleState("enabled"); /** * Indicates this object can accept keyboard focus, which means all events * resulting from typing on the keyboard will normally be passed to it when * it has focus. * * @see #FOCUSED */ public static final AccessibleState FOCUSABLE = new AccessibleState("focusable"); /** * Indicates this object currently has the keyboard focus. * * @see #FOCUSABLE */ public static final AccessibleState FOCUSED = new AccessibleState("focused"); /** * Indicates this object is minimized and is represented only by an icon. * This is usually only associated with frames and internal frames. * * @see AccessibleRole#FRAME * @see AccessibleRole#INTERNAL_FRAME */ public static final AccessibleState ICONIFIED = new AccessibleState("iconified"); /** * Indicates something must be done with this object before the user can * interact with an object in a different window. This is usually associated * only with dialogs. * * @see AccessibleRole#DIALOG */ public static final AccessibleState MODAL = new AccessibleState("modal"); /** * Indicates this object paints every pixel within its rectangular region. A * non-opaque component paints only some of its pixels, allowing the pixels * underneath it to "show through". A component that does not fully paint * its pixels therefore provides a degree of transparency. * * @see Accessible#getAccessibleContext * @see AccessibleContext#getAccessibleComponent * @see AccessibleComponent#getBounds */ public static final AccessibleState OPAQUE = new AccessibleState("opaque"); /** * Indicates the size of this object is not fixed. * * @see Accessible#getAccessibleContext * @see AccessibleContext#getAccessibleComponent * @see AccessibleComponent#getSize * @see AccessibleComponent#setSize */ public static final AccessibleState RESIZABLE = new AccessibleState("resizable"); /** * Indicates this object allows more than one of its children to be selected * at the same time. * * @see Accessible#getAccessibleContext * @see AccessibleContext#getAccessibleSelection * @see AccessibleSelection */ public static final AccessibleState MULTISELECTABLE = new AccessibleState("multiselectable"); /** * Indicates this object is the child of an object that allows its children * to be selected, and that this child is one of those children that can be * selected. * * @see #SELECTED * @see Accessible#getAccessibleContext * @see AccessibleContext#getAccessibleSelection * @see AccessibleSelection */ public static final AccessibleState SELECTABLE = new AccessibleState("selectable"); /** * Indicates this object is the child of an object that allows its children * to be selected, and that this child is one of those children that has * been selected. * * @see #SELECTABLE * @see Accessible#getAccessibleContext * @see AccessibleContext#getAccessibleSelection * @see AccessibleSelection */ public static final AccessibleState SELECTED = new AccessibleState("selected"); /** * Indicates this object, the object's parent, the object's parent's parent, * and so on, are all visible. Note that this does not necessarily mean the * object is painted on the screen. It might be occluded by some other * showing object. * * @see #VISIBLE */ public static final AccessibleState SHOWING = new AccessibleState("showing"); /** * Indicates this object is visible. Note: this means that the object * intends to be visible; however, it may not in fact be showing on the * screen because one of the objects that this object is contained by is not * visible. * * @see #SHOWING */ public static final AccessibleState VISIBLE = new AccessibleState("visible"); /** * Indicates the orientation of this object is vertical. This is usually * associated with objects such as scrollbars, sliders, and progress bars. * * @see #VERTICAL * @see AccessibleRole#SCROLL_BAR * @see AccessibleRole#SLIDER * @see AccessibleRole#PROGRESS_BAR */ public static final AccessibleState VERTICAL = new AccessibleState("vertical"); /** * Indicates the orientation of this object is horizontal. This is usually * associated with objects such as scrollbars, sliders, and progress bars. * * @see #HORIZONTAL * @see AccessibleRole#SCROLL_BAR * @see AccessibleRole#SLIDER * @see AccessibleRole#PROGRESS_BAR */ public static final AccessibleState HORIZONTAL = new AccessibleState("horizontal"); /** * Indicates this (text) object can contain only a single line of text. */ public static final AccessibleState SINGLE_LINE = new AccessibleState("singleline"); /** * Indicates this (text) object can contain multiple lines of text. */ public static final AccessibleState MULTI_LINE = new AccessibleState("multiline"); /** * Indicates this object is transient. An assistive technology should not * add a {@code PropertyChange} listener to an object with transient state, * as that object will never generate any events. Transient objects are * typically created to answer Java Accessibility method queries, but * otherwise do not remain linked to the underlying object (for example, * those objects underneath lists, tables, and trees in Swing, where only * one actual {@code UI Component} does shared rendering duty for all of the * data objects underneath the actual list/table/tree elements). * * @since 1.5 */ public static final AccessibleState TRANSIENT = new AccessibleState("transient"); /** * Indicates this object is responsible for managing its subcomponents. This * is typically used for trees and tables that have a large number of * subcomponents and where the objects are created only when needed and * otherwise remain virtual. The application should not manage the * subcomponents directly. * * @since 1.5 */ public static final AccessibleState MANAGES_DESCENDANTS = new AccessibleState("managesDescendants"); /** * Indicates that the object state is indeterminate. An example is selected * text that is partially bold and partially not bold. In this case the * attributes associated with the selected text are indeterminate. * * @since 1.5 */ public static final AccessibleState INDETERMINATE = new AccessibleState("indeterminate"); /** * A state indicating that text is truncated by a bounding rectangle and * that some of the text is not displayed on the screen. An example is text * in a spreadsheet cell that is truncated by the bounds of the cell. * * @since 1.5 */ public static final AccessibleState TRUNCATED = new AccessibleState("truncated"); /** * Creates a new {@code AccessibleState} using the given locale independent * key. This should not be a public method. Instead, it is used to create * the constants in this file to make it a strongly typed enumeration. * Subclasses of this class should enforce similar policy. * <p> * The key {@code String} should be a locale independent key for the state. * It is not intended to be used as the actual {@code String} to display to * the user. To get the localized string, use {@link #toDisplayString()}. * * @param key the locale independent name of the state * @see AccessibleBundle#toDisplayString */ protected AccessibleState(String key) { this.key = key; } }