1 /*
2  * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  */
25 
26 package com.sun.java.accessibility.util.internal;
27 
28 import java.lang.*;
29 import java.util.*;
30 import java.awt.*;
31 import java.awt.image.*;
32 import javax.accessibility.*;
33 import com.sun.java.accessibility.util.*;
34 
35 /**
36  * <p>The Translator class provides a translation to interface Accessible
37  * for objects that do not implement interface Accessible.  Assistive
38  * technologies can use the 'getAccessible' class method of Translator to
39  * obtain an object that implements interface Accessible.  If the object
40  * passed in already implements interface Accessible, getAccessible merely
41  * returns the object.
42  *
43  * <p>An example of how an assistive technology might use the Translator
44  * class is as follows:
45  *
46  * <PRE>
47  *    Accessible accessible = Translator.getAccessible(someObj);
48  *    // obtain information from the 'accessible' object.
49  * </PRE>
50  *
51  * <P>This class extends the Translator class to provide specific support
52  * for the Checkbox class.  Translator.getAccessible() will automatically
53  * load this class when an assistive technology asks for an accessible
54  * translator for Checkbox.
55  *
56  */
57 public class CheckboxTranslator extends Translator {
58 
59     /**
60      * Get the state of this object.
61      * @return an instance of AccessibleState containing the current state of the object
62      * @see AccessibleState
63      */
getAccessibleStateSet()64     public AccessibleStateSet getAccessibleStateSet() {
65         AccessibleStateSet states = super.getAccessibleStateSet();
66         if (((Checkbox) source).getState()) {
67             states.add(AccessibleState.CHECKED);
68         }
69         return states;
70     }
71 
72     /**
73      * Get the name of this object.
74      * @return the name of the object -- can be null if this object does
75      * not have a name
76      */
getAccessibleName()77     public String getAccessibleName() {
78         return ((Checkbox) source).getLabel();
79     }
80 
81     /**
82      * Set the name of this object.
83      */
setAccessibleName(String s)84     public void setAccessibleName(String s) {
85         ((Checkbox) source).setLabel(s);
86     }
87 
getAccessibleRole()88     public AccessibleRole getAccessibleRole() {
89         return AccessibleRole.CHECK_BOX;
90     }
91 }
92