Changeset 2754 in josm for trunk/src/org/openstreetmap/josm/gui/preferences
- Timestamp:
- 2010-01-07T12:06:22+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/preferences/LanguagePreference.java
r2745 r2754 5 5 6 6 import java.awt.Component; 7 import java.io.IOException;8 import java.lang.reflect.InvocationTargetException;9 7 import java.util.ArrayList; 10 8 import java.util.Arrays; 11 9 import java.util.List; 12 10 import java.util.Locale; 13 import java.util.logging.Logger;14 11 15 12 import javax.swing.Box; … … 21 18 import javax.swing.JPanel; 22 19 import javax.swing.ListCellRenderer; 23 import javax.swing.SwingUtilities;24 import javax.swing.event.ChangeEvent;25 import javax.swing.event.ChangeListener;26 20 27 21 import org.openstreetmap.josm.Main; 28 import org.openstreetmap.josm.gui.PleaseWaitRunnable;29 import org.openstreetmap.josm.io.OsmTransferException;30 22 import org.openstreetmap.josm.tools.GBC; 31 23 import org.openstreetmap.josm.tools.I18n; 32 import org.xml.sax.SAXException;33 24 34 25 public class LanguagePreference implements PreferenceSetting { 35 static private final Logger logger = Logger.getLogger(LanguagePreference.class.getName());36 37 26 public static class Factory implements PreferenceSettingFactory { 38 27 public PreferenceSetting createPreferenceSetting() { … … 52 41 langCombo = new JComboBox(model); 53 42 langCombo.setRenderer(new LanguageCellRenderer(langCombo.getRenderer())); 43 model.selectLanguage(Main.pref.get("language")); 54 44 55 45 LafPreference lafPreference = gui.getSetting(LafPreference.class); … … 59 49 panel.add(langCombo, GBC.eol().fill(GBC.HORIZONTAL)); 60 50 panel.add(Box.createVerticalGlue(), GBC.eol().fill(GBC.BOTH)); 61 62 // this defers loading of available translations to the first time the tab63 // with the available translations is selected by the user64 //65 gui.displaycontent.addChangeListener(66 new ChangeListener() {67 public void stateChanged(ChangeEvent e) {68 int i = gui.displaycontent.getSelectedIndex();69 String title = gui.displaycontent.getTitleAt(i);70 if (title.equals(tr("Look and Feel"))) {71 initiallyLoadAvailableTranslations();72 }73 }74 }75 );76 51 } 77 52 … … 87 62 } 88 63 89 /**90 * Load available translations if not loaded yet.91 */92 public void initiallyLoadAvailableTranslations() {93 if (!translationsLoaded) {94 reloadAvailableTranslations();95 }96 translationsLoaded = true;97 }98 99 /**100 * Asynchronously loads available translations101 *102 */103 protected void reloadAvailableTranslations() {104 Main.worker.submit(new AvailableTranslationsLoader());105 }106 107 /**108 * Asynchronous task to lookup the available translations.109 *110 */111 private class AvailableTranslationsLoader extends PleaseWaitRunnable {112 public AvailableTranslationsLoader() {113 super(tr("Looking up available translations..."));114 }115 116 @Override117 protected void cancel() {118 // can't cancel119 }120 121 @Override122 protected void realRun() throws SAXException, IOException, OsmTransferException {123 final List<Locale> locales = new ArrayList<Locale>(124 Arrays.asList(I18n.getAvailableTranslations(getProgressMonitor()))125 );126 locales.add(0,Locale.ENGLISH);127 Runnable r = new Runnable() {128 public void run() {129 model.setAvailableLocales(locales);130 model.selectLanguage(Main.pref.get("language"));131 }132 };133 try {134 SwingUtilities.invokeAndWait(r);135 } catch(InvocationTargetException e) {136 throw new RuntimeException(e.getCause());137 } catch(InterruptedException e) {138 throw new RuntimeException(e);139 }140 }141 142 @Override143 protected void finish() {}144 }145 146 64 private static class LanguageComboBoxModel extends DefaultComboBoxModel { 147 65 private final List<Locale> data = new ArrayList<Locale>(); 148 66 149 public LanguageComboBoxModel() {} 150 151 public void setAvailableLocales(List<Locale> locales) { 152 data.clear(); 153 if (locales != null) { 154 data.add(null); // the default locale 155 data.addAll(locales); 156 } 157 fireContentsChanged(this, 0, getSize()); 67 public LanguageComboBoxModel(){ 68 data.add(0,null); 69 data.addAll(Arrays.asList(I18n.getAvailableTranslations())); 158 70 } 159 71
Note:
See TracChangeset
for help on using the changeset viewer.