JPanel languagePanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
languagePanel.setBorder(BorderFactory.createTitledBorder(Translator.get("prefs_dialog.language")));
this.languages = Translator.getAvailableLanguages();
String currentLang = MuConfigurations.getPreferences().getVariable(MuPreference.LANGUAGE);
String lang;
languageComboBox = new PrefComboBox() {
public boolean hasChanged() {
return !languages[getSelectedIndex()].equals(MuConfigurations.getPreferences().getVariable(MuPreference.LANGUAGE));
}
};
// Use a custom combo box renderer to display language icons
class LanguageComboBoxRenderer extends BasicComboBoxRenderer {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JLabel label = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
String language = (String)value;
label.setText(Translator.get("language."+language));
label.setIcon(IconManager.getIcon(IconManager.LANGUAGE_ICON_SET, language+".png"));
return label;
}
}
languageComboBox.setRenderer(new LanguageComboBoxRenderer());
// Add combo items and select current language (defaults to EN if current language can't be found)
int languageIndex = -1;
for(int i=0; i<languages.length; i++) {
lang = languages[i];
languageComboBox.addItem(lang);
if(lang.equalsIgnoreCase(currentLang))
languageIndex = i;
else if(languageIndex==-1 && lang.equalsIgnoreCase("en"))
languageIndex = i;
}
languageComboBox.setSelectedIndex(languageIndex);
languagePanel.add(languageComboBox);
mainPanel.add(languagePanel);
mainPanel.addSpace(10);
// Date & time format panel
YBoxPanel dateTimeFormatPanel = new YBoxPanel();
dateTimeFormatPanel.setBorder(BorderFactory.createTitledBorder(Translator.get("prefs_dialog.date_time")));
JPanel gridPanel = new JPanel(new GridLayout(1, 2));
YBoxPanel dateFormatPanel = new YBoxPanel();
dateFormatPanel.setBorder(BorderFactory.createTitledBorder(Translator.get("prefs_dialog.date")));
// Date format combo
dateFormatComboBox = new PrefComboBox() {
public boolean hasChanged() {
return !getDateFormatString().equals(MuConfigurations.getPreferences().getVariable(MuPreference.DATE_FORMAT));
}
};
String dateFormat = MuConfigurations.getPreferences().getVariable(MuPreference.DATE_FORMAT);