javax.accessibility.AccessibleState.java Source code

Java tutorial

Introduction

Here is the source code for javax.accessibility.AccessibleState.java

Source

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