1 /* AccessibleRole.java -- the primary role of an accessible object
2    Copyright (C) 2002, 2005 Free Software Foundation
3 
4 This file is part of GNU Classpath.
5 
6 GNU Classpath is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10 
11 GNU Classpath is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with GNU Classpath; see the file COPYING.  If not, write to the
18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 02110-1301 USA.
20 
21 Linking this library statically or dynamically with other modules is
22 making a combined work based on this library.  Thus, the terms and
23 conditions of the GNU General Public License cover the whole
24 combination.
25 
26 As a special exception, the copyright holders of this library give you
27 permission to link this library with independent modules to produce an
28 executable, regardless of the license terms of these independent
29 modules, and to copy and distribute the resulting executable under
30 terms of your choice, provided that you also meet, for each linked
31 independent module, the terms and conditions of the license of that
32 module.  An independent module is a module which is not derived from
33 or based on this library.  If you modify this library, you may extend
34 this exception to your version of the library, but you are not
35 obligated to do so.  If you do not wish to do so, delete this
36 exception statement from your version. */
37 
38 package javax.accessibility;
39 
40 import java.util.Locale;
41 
42 /**
43  * The role of an accessible object. For example, this could be "button" or
44  * "table". This strongly typed "enumeration" supports localized strings. If
45  * the constants of this class are not adequate, new ones may be added in a
46  * similar matter, while avoiding a public constructor.
47  *
48  * @author Eric Blake (ebb9@email.byu.edu)
49  * @since 1.2
50  * @status updated to 1.4
51  */
52 public class AccessibleRole extends AccessibleBundle
53 {
54   /** The object alerts the user about something. */
55   public static final AccessibleRole ALERT
56     = new AccessibleRole("alert");
57 
58   /** The header for a column of data. */
59   public static final AccessibleRole COLUMN_HEADER
60     = new AccessibleRole("column header");
61 
62   /**
63    * The object can be drawn into, and traps events.
64    *
65    * @see #FRAME
66    * @see #GLASS_PANE
67    * @see #LAYERED_PANE
68    */
69   public static final AccessibleRole CANVAS
70     = new AccessibleRole("canvas");
71 
72   /**
73    * A list of choices, which may optionally allow the user to create a new
74    * choice.
75    */
76   public static final AccessibleRole COMBO_BOX
77     = new AccessibleRole("combo box");
78 
79   /**
80    * An iconified frame in a desktop.
81    *
82    * @see #DESKTOP_PANE
83    * @see #INTERNAL_FRAME
84    */
85   public static final AccessibleRole DESKTOP_ICON
86     = new AccessibleRole("desktop icon");
87 
88   /**
89    * A frame-like object clipped by a desktop pane.
90    *
91    * @see #DESKTOP_ICON
92    * @see #DESKTOP_PANE
93    * @see #FRAME
94    */
95   public static final AccessibleRole INTERNAL_FRAME
96     = new AccessibleRole("internal frame");
97 
98   /**
99    * 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    */
AccessibleRole(String key)539   protected AccessibleRole(String key)
540   {
541     this.key = key;
542   }
543 } // class AccessibleRole
544