/*\r
* Sudokuki - essential sudoku game\r
- * Copyright (C) 2007-2012 Sylvain Vedrenne\r
+ * Copyright (C) 2007-2013 Sylvain Vedrenne\r
*\r
* This program is free software: you can redistribute it and/or modify\r
* it under the terms of the GNU General Public License as published by\r
@SuppressWarnings("serial")\r
public class LanguageMenu extends JMenu implements L10nComponent {\r
\r
- private HashMap<String, JRadioButtonMenuItem> itemsMap = new HashMap<String, JRadioButtonMenuItem>();\r
-\r
- private String langCode;\r
- \r
- public LanguageMenu() {\r
- icons.put("de", StockIcons.ICON_FLAG_DE);\r
- icons.put("el", StockIcons.ICON_FLAG_EL);\r
- icons.put("eo", StockIcons.ICON_FLAG_EO);\r
- icons.put("en", StockIcons.ICON_FLAG_EN);\r
- icons.put("es", StockIcons.ICON_FLAG_ES);\r
- icons.put("fr", StockIcons.ICON_FLAG_FR);\r
- icons.put("ja", StockIcons.ICON_FLAG_JA);\r
- icons.put("pt", StockIcons.ICON_FLAG_PT);\r
- icons.put("ru", StockIcons.ICON_FLAG_RU);\r
- icons.put("zh", StockIcons.ICON_FLAG_ZH);\r
- addItems();\r
- setIcon(StockIcons.ICON_GO_HOME);\r
- setL10nMessages(null, null);\r
- localeListener = new LocaleListenerImpl(this);\r
- I18n.addLocaleListener(localeListener);\r
- \r
- addMenuListener(new MenuListener() {\r
- \r
- @Override\r
- public void menuSelected(MenuEvent arg0) {\r
-// System.out\r
-// .println("LanguageMenu.LanguageMenu().new MenuAdapter() {...}.menuSelected()");\r
- final String detectedLanguage = _("DETECTED_LANGUAGE");\r
- langCode = detectedLanguage;\r
- }\r
- \r
- @Override\r
- public void menuDeselected(MenuEvent arg0) {\r
-// System.out\r
-// .println("LanguageMenu.LanguageMenu().new MenuAdapter() {...}.menuDeselected()");\r
- I18n.reset(langCode);\r
- }\r
+ private HashMap<String, JRadioButtonMenuItem> itemsMap = new HashMap<String, JRadioButtonMenuItem>();\r
+\r
+ private String langCode;\r
+ \r
+ public LanguageMenu() {\r
+ addItems();\r
+ setIcon(languageIcon(_("DETECTED_LANGUAGE")));\r
+ \r
+ addMenuListener(new MenuListener() {\r
+ \r
+ @Override\r
+ public void menuSelected(MenuEvent arg0) {\r
+ final String detectedLanguage = _("DETECTED_LANGUAGE");\r
+ langCode = detectedLanguage;\r
+ }\r
+ \r
+ @Override\r
+ public void menuDeselected(MenuEvent arg0) {\r
+ I18n.reset(langCode);\r
+ }\r
+ \r
+ @Override\r
+ public void menuCanceled(MenuEvent arg0) {\r
+ I18n.reset(langCode);\r
+ }\r
+ });\r
+ \r
+ final String detectedLanguage = _("DETECTED_LANGUAGE");\r
+ JRadioButtonMenuItem selectedItem = itemsMap.get(detectedLanguage);\r
+ setText(_("Language"));\r
+ if (selectedItem != null) {\r
+ selectedItem.setSelected(true);\r
+ }\r
+ localeListener = new LocaleListenerImpl(this);\r
+ I18n.addLocaleListener(localeListener);\r
+ }\r
+ \r
+ private void addItems() {\r
+ ButtonGroup myGroup = new ButtonGroup();\r
+ addItem("ar", "\u0627\u0644\u0639\u0631\u0628\u064a\u0629", myGroup);\r
+ addItem("de", "Deutsch", myGroup);\r
+ addItem("el", "E\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac", myGroup);\r
+ addItem("en", "English", myGroup);\r
+ addItem("eo", "Esperanto", myGroup);\r
+ addItem("es", "Espa\u00f1ol", myGroup);\r
+ addItem("fr", "Fran\u00e7ais", myGroup);\r
+ addItem("hu", "Magyar", myGroup);\r
+ addItem("ja", "\u65e5\u672c\u8a9e", myGroup);\r
+ addItem("lv", "Latvie\u0161u", myGroup);\r
+ addItem("nl", "Nederlands", myGroup);
+ addItem("pt", "Portugu\u00eas", myGroup);\r
+ addItem("pt_BR", "Portugu\u00eas (Brasil)", myGroup);\r
+ addItem("ru", "\u0420\u0443\u0441\u0441\u043a\u0438\u0439", myGroup);\r
+ addItem("ta", "\u0ba4\u0bae\u0bbf\u0bb4\u0bcd \u0bae\u0bca\u0bb4\u0bbf", myGroup);\r
+ addItem("zh", "\u4e2d\u6587", myGroup);\r
+ }\r
+\r
+ private void addItem(final String code, String language, ButtonGroup group) {\r
+ JRadioButtonMenuItem radioItem;\r
+\r
+ radioItem = new JRadioButtonMenuItem(language);\r
+ itemsMap.put(code, radioItem);\r
+ radioItem.setAction(new AbstractAction(language, languageIcon(code)) {\r
+\r
+ @Override\r
+ public void actionPerformed(ActionEvent arg0) {\r
+ I18n.reset(code);\r
+ }\r
+ });\r
+\r
+ radioItem.addMouseListener(new MouseAdapter() {\r
+\r
+ @Override\r
+ public void mouseEntered(MouseEvent e) {\r
+ I18n.reset(code);\r
+ }\r
+ \r
+ @Override\r
+ public void mouseExited(MouseEvent e) {\r
+ I18n.reset(langCode);\r
+ }\r
+\r
+ });\r
+ group.add(radioItem);\r
+ add(radioItem);\r
+ }\r
+\r
+ private final LocaleListener localeListener;\r
+ @Override\r
+ public void setL10nMessages(Locale locale, String languageCode) {\r
+ setText(_("Language"));\r
+ setIcon(languageIcon(languageCode));\r
+\r
+ JRadioButtonMenuItem selectedItem = itemsMap.get(languageCode);\r
+ if (selectedItem != null) {\r
+ selectedItem.setSelected(true);\r
+ } \r
\r
- @Override\r
- public void menuCanceled(MenuEvent arg0) {\r
-// System.out\r
-// .println("LanguageMenu.LanguageMenu().new MenuAdapter() {...}.menuCanceled()");\r
- I18n.reset(langCode);\r
+ if (this.isSelected()) {\r
+ return;\r
}\r
- });\r
- }\r
-\r
- private final LocaleListener localeListener;\r
-\r
- private final HashMap<String, Icon> icons = new HashMap<String, Icon>();\r
-\r
- @Override\r
- public void setL10nMessages(Locale locale, String languageCode) {\r
- setText(_("Language"));\r
-\r
- final String detectedLanguage = _("DETECTED_LANGUAGE");\r
-// System.out\r
-// .println("LanguageMenu.setL10nMessages() detected language : "\r
-// + detectedLanguage);\r
- JRadioButtonMenuItem item = itemsMap.get(detectedLanguage);\r
- if (item != null) {\r
- item.setSelected(true);\r
- }\r
- }\r
-\r
- private void addItems() {\r
- ButtonGroup myGroup = new ButtonGroup();\r
- addItem("de", _("German"), myGroup);\r
- addItem("el", _("Greek"), myGroup);\r
- addItem("en", _("English"), myGroup);\r
- addItem("eo", _("Esperanto"), myGroup);\r
- addItem("es", _("Spanish"), myGroup);\r
- addItem("fr", _("French"), myGroup);\r
- addItem("ja", _("Japanese"), myGroup);\r
- addItem("pt", _("Portuguese"), myGroup);\r
- addItem("ru", _("Russian"), myGroup);\r
- addItem("zh", _("Chinese"), myGroup);\r
- }\r
-\r
- private void addItem(final String code, String language, ButtonGroup group) {\r
- JRadioButtonMenuItem radioItem;\r
-\r
- radioItem = new JRadioButtonMenuItem(language);\r
- itemsMap.put(code, radioItem);\r
- if (code.equals(code)) {\r
- radioItem.setSelected(true);\r
}\r
-// System.out.println("LanguageMenu.addItem() icons.get(code):"+code+" "+icons.get(code));\r
- radioItem.setAction(new AbstractAction(language, icons.get(code)) {\r
\r
- @Override\r
- public void actionPerformed(ActionEvent arg0) {\r
- I18n.reset(code);\r
+ public static Icon languageIcon(final String langCode) {\r
+ if ("ar".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_AR;\r
+ } else if ("de".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_DE;\r
+ } else if ("el".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_EL;\r
+ } else if ("eo".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_EO;\r
+ } else if ("en".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_EN;\r
+ } else if ("es".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_ES;\r
+ } else if ("fr".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_FR;\r
+ } else if ("hu".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_HU;\r
+ } else if ("ja".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_JA;\r
+ } else if ("lv".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_LV;\r
+ } else if ("nl".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_NL;\r
+ } else if ("pt".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_PT;\r
+ } else if ("pt_BR".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_BR;\r
+ } else if ("ru".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_RU;\r
+ } else if ("ta".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_TA;\r
+ } else if ("zh".equals(langCode)) {\r
+ return StockIcons.ICON_FLAG_ZH;\r
}\r
- });\r
-\r
- radioItem.addMouseListener(new MouseAdapter() {\r
-\r
- @Override\r
- public void mouseEntered(MouseEvent e) {\r
- I18n.reset(code);\r
- }\r
- \r
- @Override\r
- public void mouseExited(MouseEvent e) {\r
- I18n.reset(langCode);\r
- }\r
-\r
- });\r
- group.add(radioItem);\r
- add(radioItem);\r
- }\r
-\r
+ return StockIcons.ICON_GO_HOME;\r
+ }\r
+ \r
}\r