001: /*
002: * $Header$
003: * $Revision: 5432 $
004: * $Date: 2004-09-15 12:19:51 +0000 (Wed, 15 Sep 2004) $
005: *
006: * ====================================================================
007: *
008: * The Apache Software License, Version 1.1
009: *
010: * Copyright (c) 2001 The Apache Software Foundation. All rights
011: * reserved.
012: *
013: * Redistribution and use in source and binary forms, with or without
014: * modification, are permitted provided that the following conditions
015: * are met:
016: *
017: * 1. Redistributions of source code must retain the above copyright
018: * notice, this list of conditions and the following disclaimer.
019: *
020: * 2. Redistributions in binary form must reproduce the above copyright
021: * notice, this list of conditions and the following disclaimer in
022: * the documentation and/or other materials provided with the
023: * distribution.
024: *
025: * 3. The end-user documentation included with the redistribution, if
026: * any, must include the following acknowlegement:
027: * "This product includes software developed by the
028: * Apache Software Foundation (http://www.apache.org/)."
029: * Alternately, this acknowlegement may appear in the software itself,
030: * if and wherever such third-party acknowlegements normally appear.
031: *
032: * 4. The names "The Jakarta Project", "Struts", and "Apache Software
033: * Foundation" must not be used to endorse or promote products derived
034: * from this software without prior written permission. For written
035: * permission, please contact apache@apache.org.
036: *
037: * 5. Products derived from this software may not be called "Apache"
038: * nor may "Apache" appear in their names without prior written
039: * permission of the Apache Group.
040: *
041: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
042: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
043: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
044: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
045: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
046: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
047: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
048: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
049: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
050: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
051: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
052: * SUCH DAMAGE.
053: * ====================================================================
054: *
055: * This software consists of voluntary contributions made by many
056: * individuals on behalf of the Apache Software Foundation. For more
057: * information on the Apache Software Foundation, please see
058: * <http://www.apache.org/>.
059: *
060: */
061:
062: package org.objectweb.jonas.webapp.jonasadmin;
063:
064: import java.util.ArrayList;
065: import java.util.List;
066: import java.util.Locale;
067: import java.util.ResourceBundle;
068:
069: import org.apache.struts.Globals;
070: import org.apache.struts.action.ActionServlet;
071: import org.apache.struts.util.MessageResources;
072:
073: /**
074: * Class to hold the Locales supported by this package.
075: *
076: * @author Patrick Luby
077: * @author Craig R. McClanahan
078: * @version $Revision: 5432 $ $Date: 2004-09-15 12:19:51 +0000 (Wed, 15 Sep 2004) $
079: */
080:
081: public final class ApplicationLocales {
082:
083: // ----------------------------------------------------------- Constructors
084:
085: /**
086: * Initialize the set of Locales supported by this application.
087: *
088: * @param servlet ActionServlet we are associated with
089: */
090: public ApplicationLocales(ActionServlet servlet) {
091:
092: super ();
093: Locale list[] = Locale.getAvailableLocales();
094: MessageResources resources = (MessageResources) servlet
095: .getServletContext().getAttribute(Globals.MESSAGES_KEY);
096: if (resources == null) {
097: return;
098: }
099: String config = resources.getConfig();
100: if (config == null) {
101: return;
102: }
103: for (int i = 0; i < list.length; i++) {
104: ResourceBundle bundle = ResourceBundle.getBundle(config,
105: list[i]);
106: if (bundle == null) {
107: continue;
108: }
109: if (list[i].equals(bundle.getLocale())) {
110: localeLabels.add(list[i].getDisplayName());
111: localeValues.add(list[i].toString());
112: supportedLocales.add(list[i]);
113: }
114: }
115:
116: }
117:
118: // ----------------------------------------------------- Instance Variables
119:
120: /**
121: * The set of Locale labels supported by this application.
122: */
123: protected ArrayList localeLabels = new ArrayList();
124:
125: /**
126: * The set of Locale values supported by this application.
127: */
128: protected ArrayList localeValues = new ArrayList();
129:
130: /**
131: * The set of supported Locales for this application.
132: */
133: protected ArrayList supportedLocales = new ArrayList();
134:
135: // --------------------------------------------------------- Public Methods
136:
137: /**
138: * Return the set of Locale labels supported by this application.
139: */
140: public List getLocaleLabels() {
141:
142: return (localeLabels);
143:
144: }
145:
146: /**
147: * Return the set of Locale values supported by this application.
148: */
149: public List getLocaleValues() {
150:
151: return (localeValues);
152:
153: }
154:
155: /**
156: * Return the set of Locales supported by this application.
157: */
158: public List getSupportedLocales() {
159:
160: return (supportedLocales);
161:
162: }
163:
164: }
|