001/* AccessibleRole.java -- the primary role of an accessible object
002   Copyright (C) 2002, 2005 Free Software Foundation
003
004This file is part of GNU Classpath.
005
006GNU Classpath is free software; you can redistribute it and/or modify
007it under the terms of the GNU General Public License as published by
008the Free Software Foundation; either version 2, or (at your option)
009any later version.
010
011GNU Classpath is distributed in the hope that it will be useful, but
012WITHOUT ANY WARRANTY; without even the implied warranty of
013MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
014General Public License for more details.
015
016You should have received a copy of the GNU General Public License
017along with GNU Classpath; see the file COPYING.  If not, write to the
018Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
01902110-1301 USA.
020
021Linking this library statically or dynamically with other modules is
022making a combined work based on this library.  Thus, the terms and
023conditions of the GNU General Public License cover the whole
024combination.
025
026As a special exception, the copyright holders of this library give you
027permission to link this library with independent modules to produce an
028executable, regardless of the license terms of these independent
029modules, and to copy and distribute the resulting executable under
030terms of your choice, provided that you also meet, for each linked
031independent module, the terms and conditions of the license of that
032module.  An independent module is a module which is not derived from
033or based on this library.  If you modify this library, you may extend
034this exception to your version of the library, but you are not
035obligated to do so.  If you do not wish to do so, delete this
036exception statement from your version. */
037
038package javax.accessibility;
039
040import java.util.Locale;
041
042/**
043 * The role of an accessible object. For example, this could be "button" or
044 * "table". This strongly typed "enumeration" supports localized strings. If
045 * the constants of this class are not adequate, new ones may be added in a
046 * similar matter, while avoiding a public constructor.
047 * 
048 * @author Eric Blake (ebb9@email.byu.edu)
049 * @since 1.2
050 * @status updated to 1.4
051 */
052public class AccessibleRole extends AccessibleBundle
053{
054  /** The object alerts the user about something. */
055  public static final AccessibleRole ALERT
056    = new AccessibleRole("alert");
057
058  /** The header for a column of data. */
059  public static final AccessibleRole COLUMN_HEADER
060    = new AccessibleRole("column header");
061
062  /**
063   * The object can be drawn into, and traps events.
064   *
065   * @see #FRAME
066   * @see #GLASS_PANE
067   * @see #LAYERED_PANE
068   */
069  public static final AccessibleRole CANVAS
070    = new AccessibleRole("canvas");
071
072  /**
073   * A list of choices, which may optionally allow the user to create a new
074   * choice.
075   */
076  public static final AccessibleRole COMBO_BOX
077    = new AccessibleRole("combo box");
078
079  /**
080   * An iconified frame in a desktop.
081   *
082   * @see #DESKTOP_PANE
083   * @see #INTERNAL_FRAME
084   */
085  public static final AccessibleRole DESKTOP_ICON
086    = new AccessibleRole("desktop icon");
087
088  /**
089   * A frame-like object clipped by a desktop pane.
090   *
091   * @see #DESKTOP_ICON
092   * @see #DESKTOP_PANE
093   * @see #FRAME
094   */
095  public static final AccessibleRole INTERNAL_FRAME
096    = new AccessibleRole("internal frame");
097
098  /**
099   * A pane which supports internal frames and their icons.
100   *
101   * @see #DESKTOP_ICON
102   * @see #INTERNAL_FRAME
103   */
104  public static final AccessibleRole DESKTOP_PANE
105    = new AccessibleRole("desktop pane");
106
107  /**
108   * A specialized pane for use in a dialog.
109   *
110   * @see #DIALOG
111   */
112  public static final AccessibleRole OPTION_PANE
113    = new AccessibleRole("option pane");
114
115  /**
116   * A top level window with no title or border.
117   *
118   * @see #FRAME
119   * @see #DIALOG
120   */
121  public static final AccessibleRole WINDOW
122    = new AccessibleRole("window");
123
124  /**
125   * A top level window with title, menu bar, border, and so forth. It is
126   * often the primary window of an application.
127   *
128   * @see #DIALOG
129   * @see #CANVAS
130   * @see #WINDOW
131   */
132  public static final AccessibleRole FRAME
133    = new AccessibleRole("frame");
134
135  /**
136   * A top level window title bar and border. It is limited compared to a
137   * frame, and is often a secondary window.
138   *
139   * @see #FRAME
140   * @see #WINDOW
141   */
142  public static final AccessibleRole DIALOG
143    = new AccessibleRole("dialog");
144
145  /** A specialized dialog for choosing a color. */
146  public static final AccessibleRole COLOR_CHOOSER
147    = new AccessibleRole("color chooser");
148
149  /**
150   * A pane for navigating through directories.
151   *
152   * @see #FILE_CHOOSER
153   */
154  public static final AccessibleRole DIRECTORY_PANE
155    = new AccessibleRole("directory pane");
156
157  /**
158   * A specialized dialog that allows a user to select a file.
159   *
160   * @see #DIRECTORY_PANE
161   */
162  public static final AccessibleRole FILE_CHOOSER
163    = new AccessibleRole("file chooser");
164
165  /** An object to fill space between other components. */
166  public static final AccessibleRole FILLER
167    = new AccessibleRole("filler");
168
169  /** A hypertext anchor. */
170  public static final AccessibleRole HYPERLINK
171    = new AccessibleRole("hyperlink");
172
173  /** A small picture to decorate components. */
174  public static final AccessibleRole ICON
175    = new AccessibleRole("icon");
176
177  /** An object to label something in a graphic interface. */
178  public static final AccessibleRole LABEL
179    = new AccessibleRole("label");
180
181  /**
182   * A specialized pane with a glass pane and layered pane as children.
183   *
184   * @see #GLASS_PANE
185   * @see #LAYERED_PANE
186   */
187  public static final AccessibleRole ROOT_PANE
188    = new AccessibleRole("root pane");
189
190  /**
191   * A pane guaranteed to be painted on top of panes beneath it.
192   *
193   * @see #ROOT_PANE
194   * @see #LAYERED_PANE
195   */
196  public static final AccessibleRole GLASS_PANE
197    = new AccessibleRole("glass pane");
198
199  /**
200   * A specialized pane that allows drawing children in layers. This is often
201   * used in menus and other visual components.
202   *
203   * @see #ROOT_PANE
204   * @see #GLASS_PANE
205   */
206  public static final AccessibleRole LAYERED_PANE
207    = new AccessibleRole("layered pane");
208
209  /**
210   * An object which presents a list of items for selection. Often contained
211   * in a scroll pane.
212   *
213   * @see #SCROLL_PANE
214   * @see #LIST_ITEM
215   */
216  public static final AccessibleRole LIST
217    = new AccessibleRole("list");
218
219  /**
220   * An object which represents an item in a list. Often contained in a scroll
221   * pane.
222   *
223   * @see #SCROLL_PANE
224   * @see #LIST
225   */
226  public static final AccessibleRole LIST_ITEM
227    = new AccessibleRole("list item");
228
229  /**
230   * An object usually at the top of a frame to list available menus.
231   *
232   * @see #MENU
233   * @see #POPUP_MENU
234   * @see #LAYERED_PANE
235   */
236  public static final AccessibleRole MENU_BAR
237    = new AccessibleRole("menu bar");
238
239  /**
240   * A temporary window with a menu of options, which hides on selection.
241   *
242   * @see #MENU
243   * @see #MENU_ITEM
244   */
245  public static final AccessibleRole POPUP_MENU
246    = new AccessibleRole("popup menu");
247
248  /**
249   * An object usually in a menu bar which contains a list of actions to
250   * perform. Such actions are usually associated with menu items or submenus.
251   *
252   * @see #MENU_BAR
253   * @see #MENU_ITEM
254   * @see #SEPARATOR
255   * @see #RADIO_BUTTON
256   * @see #CHECK_BOX
257   * @see #POPUP_MENU
258   */
259  public static final AccessibleRole MENU
260    = new AccessibleRole("menu");
261
262  /**
263   * An object usually in a menu with an action available for the user.
264   *
265   * @see #MENU_BAR
266   * @see #SEPARATOR
267   * @see #POPUP_MENU
268   */
269  public static final AccessibleRole MENU_ITEM
270    = new AccessibleRole("menu item");
271
272  /**
273   * An object usually in a menu which separates logical sections of items.
274   *
275   * @see #MENU
276   * @see #MENU_ITEM
277   */
278  public static final AccessibleRole SEPARATOR
279    = new AccessibleRole("separator");
280
281  /**
282   * An object which presents a series of panels, usually via tabs along the
283   * top. Children are all page tabs.
284   *
285   * @see #PAGE_TAB
286   */
287  public static final AccessibleRole PAGE_TAB_LIST
288    = new AccessibleRole("page tab list");
289
290  /**
291   * An object in a page tab list, which contains the panel to display when
292   * selected from the list.
293   *
294   * @see #PAGE_TAB_LIST
295   */
296  public static final AccessibleRole PAGE_TAB
297    = new AccessibleRole("page tab");
298
299  /** A generic container to group objects. */
300  public static final AccessibleRole PANEL
301    = new AccessibleRole("panel");
302
303  /** An object used to track amount of a task that has completed. */
304  public static final AccessibleRole PROGRESS_BAR
305    = new AccessibleRole("progress bar");
306
307  /** An object for passwords which should not be shown to the user. */
308  public static final AccessibleRole PASSWORD_TEXT
309    = new AccessibleRole("password text");
310
311  /**
312   * An object that can be manipulated to do something.
313   *
314   * @see #CHECK_BOX
315   * @see #TOGGLE_BUTTON
316   * @see #RADIO_BUTTON
317   */
318  public static final AccessibleRole PUSH_BUTTON
319    = new AccessibleRole("push button");
320
321  /**
322   * A specialized button which can be on or off, with no separate indicator.
323   *
324   * @see #PUSH_BUTTON
325   * @see #CHECK_BOX
326   * @see #RADIO_BUTTON
327   */
328  public static final AccessibleRole TOGGLE_BUTTON
329    = new AccessibleRole("toggle button");
330
331  /**
332   * A choice which can be on or off, and has a separate indicator.
333   *
334   * @see #PUSH_BUTTON
335   * @see #TOGGLE_BUTTON
336   * @see #RADIO_BUTTON
337   */
338  public static final AccessibleRole CHECK_BOX
339    = new AccessibleRole("check box");
340
341  /**
342   * A specialized choice which toggles radio buttons in the group when it
343   * is selected.
344   *
345   * @see #PUSH_BUTTON
346   * @see #TOGGLE_BUTTON
347   * @see #CHECK_BOX
348   */
349  public static final AccessibleRole RADIO_BUTTON
350    = new AccessibleRole("radio button");
351
352  /** The header for a row of data. */
353  public static final AccessibleRole ROW_HEADER
354    = new AccessibleRole("row header");
355
356  /**
357   * An object which allows an incremental view of a larger pane.
358   *
359   * @see #SCROLL_BAR
360   * @see #VIEWPORT
361   */
362  public static final AccessibleRole SCROLL_PANE
363    = new AccessibleRole("scroll pane");
364
365  /**
366   * An object which allows selection of the view in a scroll pane.
367   *
368   * @see #SCROLL_PANE
369   */
370  public static final AccessibleRole SCROLL_BAR
371    = new AccessibleRole("scroll bar");
372
373  /**
374   * An object which represents the visual section in a scroll pane.
375   *
376   * @see #SCROLL_PANE
377   */
378  public static final AccessibleRole VIEWPORT
379    = new AccessibleRole("viewport");
380
381  /** An object which allows selection in a bounded range. */
382  public static final AccessibleRole SLIDER
383    = new AccessibleRole("slider");
384
385  /**
386   * A specialized pane which presents two other panels, and can often adjust
387   * the divider between them.
388   */
389  public static final AccessibleRole SPLIT_PANE
390    = new AccessibleRole("split pane");
391
392  /** An object for presenting data in rows and columns. */
393  public static final AccessibleRole TABLE
394    = new AccessibleRole("table");
395
396  /**
397   * An object which represents text, usually editable by the user.
398   *
399   * @see #LABEL
400   */
401  public static final AccessibleRole TEXT
402    = new AccessibleRole("text");
403
404  /**
405   * An object which represents a hierachical view of data. Subnodes can
406   * often be expanded or collapsed.
407   */
408  public static final AccessibleRole TREE
409    = new AccessibleRole("tree");
410
411  /** A bar or pallete with buttons for common actions in an application. */
412  public static final AccessibleRole TOOL_BAR
413    = new AccessibleRole("tool bar");
414
415  /**
416   * An object which provides information about another object. This is often
417   * displayed as a "help bubble" when a mouse hovers over the other object.
418   */
419  public static final AccessibleRole TOOL_TIP
420    = new AccessibleRole("tool tip");
421
422  /**
423   * An AWT component with nothing else known about it.
424   *
425   * @see #SWING_COMPONENT
426   * @see #UNKNOWN
427   */
428  public static final AccessibleRole AWT_COMPONENT
429    = new AccessibleRole("AWT component");
430
431  /**
432   * A swing component with nothing else known about it.
433   *
434   * @see #AWT_COMPONENT
435   * @see #UNKNOWN
436   */
437  public static final AccessibleRole SWING_COMPONENT
438    = new AccessibleRole("SWING component");
439
440  /**
441   * An accessible object whose role is unknown.
442   *
443   * @see #AWT_COMPONENT
444   * @see #SWING_COMPONENT
445   */
446  public static final AccessibleRole UNKNOWN
447    = new AccessibleRole("unknown");
448
449  /** A component with multiple labels of status information. */
450  public static final AccessibleRole STATUS_BAR
451    = new AccessibleRole("statusbar");
452
453  /** A component which allows editing of Date and Time objects. */
454  public static final AccessibleRole DATE_EDITOR
455    = new AccessibleRole("dateeditor");
456
457  /** A component with spinner arrows for simple numbers. */
458  public static final AccessibleRole SPIN_BOX
459    = new AccessibleRole("spinbox");
460
461  /** A component for choosing fonts and their attributes. */
462  public static final AccessibleRole FONT_CHOOSER
463    = new AccessibleRole("fontchooser");
464
465  /** A component with a border to group other components. */
466  public static final AccessibleRole GROUP_BOX
467    = new AccessibleRole("groupbox");
468
469  /**
470   * A formula for creating a value.
471   *
472   * @since 1.5
473   */
474  public static final AccessibleRole EDITBAR
475    = new AccessibleRole("editbar");
476
477  /**
478   * A text-based footer.
479   *
480   * @since 1.5
481   */
482  public static final AccessibleRole FOOTER
483    = new AccessibleRole("footer");
484
485  /**
486   * A text-based header.
487   *
488   * @since 1.5
489   */
490  public static final AccessibleRole HEADER
491    = new AccessibleRole("header");
492
493
494  /**
495   * A text-based paragraph.
496   *
497   * @since 1.5
498   */
499  public static final AccessibleRole PARAGRAPH
500    = new AccessibleRole("paragraph");
501
502  /**
503   * Represents the current level of progress on a particular task.
504   *
505   * @since 1.5
506   */
507  public static final AccessibleRole PROGRESS_MONITOR
508    = new AccessibleRole("progress monitor");
509
510  /**
511   * A ruler is a method of measuring the distance between two
512   * points.
513   *
514   * @since 1.5
515   */
516  public static final AccessibleRole RULER
517    = new AccessibleRole("ruler");
518
519  /**
520   * A HTML container is an accessible object which contains other
521   * accessible objects that together form some HTML content.  For example,
522   * the content may be a sequence of text containing a link, which
523   * would be represent as two children, one an {@link AccessibleText}
524   * object holding the normal text and the other an
525   * {@link AccessibleHypertext} object representing the link.
526   *
527   * @since 1.6
528   */
529  public static final AccessibleRole HTML_CONTAINER
530    = new AccessibleRole("HTML container");
531
532  /**
533   * Create a new constant with a locale independent key. Follow the example,
534   * keep the constructor private and make public constants instead.
535   *
536   * @param key the name of the role
537   * @see #toDisplayString(String, Locale)
538   */
539  protected AccessibleRole(String key)
540  {
541    this.key = key;
542  }
543} // class AccessibleRole