/[schmitzm]/branches/2.4.x/src/skrueger/i8n/LanguagesComboBox.java
ViewVC logotype

Contents of /branches/2.4.x/src/skrueger/i8n/LanguagesComboBox.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1383 - (show annotations)
Wed Jan 26 13:46:20 2011 UTC (14 years, 1 month ago) by alfonx
File MIME type: text/plain
File size: 2221 byte(s)
trunk becomes 2.4.x ... starting to create multiple modules

1 package skrueger.i8n;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.Collections;
6 import java.util.Vector;
7
8 import javax.swing.DefaultComboBoxModel;
9 import javax.swing.JComboBox;
10
11 /**
12 * A JComboBox that shows the user a list of languages
13 */
14 public class LanguagesComboBox extends JComboBox {
15
16 private final Vector<String> availLangs = new Vector<String>();
17
18 public LanguagesComboBox() {
19 super();
20 }
21
22 /**
23 * Create a ComboBox with the given langauges as options
24 */
25 public LanguagesComboBox(Collection<String> langCodes) {
26 this();
27 updateModel(langCodes, null);
28 }
29
30 /**
31 * Create a ComboBox with the given languages as options, excluding the
32 * second parameter.
33 *
34 * @param langCodes
35 * If <code>null</code>, {@link I8NUtil#getLanguageCodes()} will
36 * be used
37 */
38 public LanguagesComboBox(Collection<String> langCodes,
39 Collection<String> langCodesNotOffer) {
40 this();
41 updateModel(langCodes, langCodesNotOffer);
42 }
43
44 public void updateModel(Collection<String> langCodes,
45 Collection<String> langCodesNotOffer) {
46
47 if (langCodes == null) {
48 langCodes = I8NUtil.getLanguageCodes();
49 }
50
51 if (langCodesNotOffer != null) {
52 langCodes = new ArrayList<String>(langCodes);
53 langCodes.removeAll(langCodesNotOffer);
54 }
55
56 availLangs.clear();
57
58 for (String lc : langCodes) {
59 //
60 // if (I8NUtil.isValidISOLangCode(lc)) {
61 // Locale locale = I8NUtil.getFirstLocaleForLang(lc);
62 // availLangs.add(locale.getDisplayLanguage() + " / "
63 // + locale.getDisplayLanguage(locale) + " " + lc);
64 // } else if (I8NUtil.isPropertiesLanguage(lc)) {
65 //
66 // PropertiesLocale pl = I8NUtil.propLocales.get(lc);
67 // availLangs.add(pl.getDisplayLanguage() + " / "
68 // + pl.getDisplayLanguage(lc) + " " + lc);
69 // }
70
71 availLangs.add(I8NUtil.getMultilanguageString(lc));
72 }
73
74 Collections.sort(availLangs);
75
76 setModel(new DefaultComboBoxModel(availLangs));
77 setSelectedIndex(-1);
78 repaint();
79 }
80
81 public String getSelectedLanguage() {
82 if (getSelectedIndex() < 0)
83 return null;
84 String langDescription = availLangs.get(getSelectedIndex());
85
86 return langDescription.substring(langDescription.lastIndexOf(" "))
87 .trim();
88 }
89
90 }

Properties

Name Value
svn:eol-style native
svn:keywords Id URL
svn:mime-type text/plain

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26