API Overview API Index Package Overview Direct link to this page
JDK 1.6
  javax.accessibility. AccessibleBundle View Javadoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138

/*
 * @(#)AccessibleBundle.java	1.22 05/11/17
 *
 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package javax.accessibility;

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

/**
 * <p>Base class used to maintain a strongly typed enumeration.  This is
 * the superclass of {@link AccessibleState} and {@link AccessibleRole}. 
 * <p>The toDisplayString method allows you to obtain the localized string 
 * for a locale independent key from a predefined ResourceBundle for the 
 * keys defined in this class.  This localized string is intended to be
 * readable by humans.
 *
 * @see AccessibleRole
 * @see AccessibleState
 *
 * @version     1.12 10/05/99
 * @author      Willie Walker
 * @author	Peter Korn
 * @author	Lynn Monsanto
 */
public abstract class AccessibleBundle {

    private static Hashtable table = new Hashtable();
    private final String defaultResourceBundleName 
	= "com.sun.accessibility.internal.resources.accessibility";

    public AccessibleBundle() {
    }
    
    /**
     * The locale independent name of the state.  This is a programmatic 
     * name that is not intended to be read by humans.
     * @see #toDisplayString
     */
    protected String key = null;

    /**
     * Obtains the key as a localized string. 
     * If a localized string cannot be found for the key, the 
     * locale independent key stored in the role will be returned. 
     * This method is intended to be used only by subclasses so that they 
     * can specify their own resource bundles which contain localized
     * strings for their keys.
     * @param resourceBundleName the name of the resource bundle to use for 
     * lookup
     * @param locale the locale for which to obtain a localized string
     * @return a localized String for the key.
     */
    protected String toDisplayString(String resourceBundleName, 
			             Locale locale) {

	// loads the resource bundle if necessary
	loadResourceBundle(resourceBundleName, locale);

	// returns the localized string
	Object o = table.get(locale);
	if (o != null && o instanceof Hashtable) {
                Hashtable resourceTable = (Hashtable) o;
                o = resourceTable.get(key);
                
                if (o != null && o instanceof String) {
                    return (String)o;
                }
	}
	return key;
    }

    /**
     * Obtains the key as a localized string. 
     * If a localized string cannot be found for the key, the 
     * locale independent key stored in the role will be returned. 
     *
     * @param locale the locale for which to obtain a localized string
     * @return a localized String for the key.
     */
    public String toDisplayString(Locale locale) {
        return toDisplayString(defaultResourceBundleName, locale);
    }

    /** 
     * Gets localized string describing the key using the default locale.
     * @return a localized String describing the key for the default locale
     */
    public String toDisplayString() {
        return toDisplayString(Locale.getDefault());
    }

    /** 
     * Gets localized string describing the key using the default locale.
     * @return a localized String describing the key using the default locale
     * @see #toDisplayString
     */
    public String toString() {
        return toDisplayString();
    }

    /*
     * Loads the Accessibility resource bundle if necessary.
     */
    private void loadResourceBundle(String resourceBundleName,
				    Locale locale) {
	if (! table.contains(locale)) {
                
	    try {
                Hashtable resourceTable = new Hashtable();
		
                ResourceBundle bundle = ResourceBundle.getBundle(resourceBundleName, locale);
		
                Enumeration iter = bundle.getKeys();
		while(iter.hasMoreElements()) {
		    String key = (String)iter.nextElement();
		    resourceTable.put(key, bundle.getObject(key));
		}

                table.put(locale, resourceTable);
	    } 
            catch (MissingResourceException e) {
                System.err.println("loadResourceBundle: " + e);
		// Just return so toDisplayString() returns the
		// non-localized key.
		return;
	    }
	}
    }

}

Generated By: JavaOnTracks Doclet 0.1.4     ©Thibaut Colar