2 * Sudokuki - essential sudoku game
\r
3 * Copyright (C) 2007-2013 Sylvain Vedrenne
\r
5 * This program is free software: you can redistribute it and/or modify
\r
6 * it under the terms of the GNU General Public License as published by
\r
7 * the Free Software Foundation, either version 3 of the License, or
\r
8 * (at your option) any later version.
\r
10 * This program is distributed in the hope that it will be useful,
\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
13 * GNU General Public License for more details.
\r
15 * You should have received a copy of the GNU General Public License
\r
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
\r
18 package net.jankenpoi.sudokuki.ui.swing;
\r
20 import static net.jankenpoi.i18n.I18n._;
\r
22 import java.awt.event.ActionEvent;
\r
23 import java.util.Locale;
\r
25 import javax.swing.AbstractAction;
\r
26 import javax.swing.Action;
\r
27 import javax.swing.ButtonGroup;
\r
28 import javax.swing.JMenu;
\r
29 import javax.swing.JRadioButtonMenuItem;
\r
31 import net.jankenpoi.i18n.I18n;
\r
32 import net.jankenpoi.sudokuki.preferences.UserPreferences;
\r
33 import net.jankenpoi.sudokuki.ui.L10nComponent;
\r
35 @SuppressWarnings("serial")
\r
36 public class NumbersMenu extends JMenu implements L10nComponent {
\r
38 private final SwingView view;
\r
39 private final JRadioButtonMenuItem itemStandardNumbers = new JRadioButtonMenuItem();
\r
40 private final JRadioButtonMenuItem itemChineseNumbers = new JRadioButtonMenuItem();
\r
41 private final JRadioButtonMenuItem itemArabicNumbers = new JRadioButtonMenuItem();
\r
42 private final Action actionStandardNumbers;
\r
43 private final Action actionChineseNumbers;
\r
44 private final Action actionArabicNumbers;
\r
45 private LocaleListenerImpl localeListener;
\r
47 public NumbersMenu(SwingView view) {
\r
50 actionStandardNumbers = new AbstractAction(_("Standard"), null) {
\r
53 public void actionPerformed(ActionEvent arg0) {
\r
58 actionChineseNumbers = new AbstractAction(_("Chinese"), null) {
\r
61 public void actionPerformed(ActionEvent arg0) {
\r
66 actionArabicNumbers = new AbstractAction(_("Arabic"), null) {
\r
69 public void actionPerformed(ActionEvent arg0) {
\r
75 setIcon(StockIcons.ICON_FONT);
\r
77 setL10nMessages(null, _("DETECTED_LANGUAGE"));
\r
78 localeListener = new LocaleListenerImpl(this);
\r
79 I18n.addLocaleListener(localeListener);
\r
85 public void setL10nMessages(Locale locale, String languageCode) {
\r
86 setText(_("Numbers"));
\r
87 itemStandardNumbers.setText(_("Standard"));
\r
88 itemChineseNumbers.setText(_("Chinese"));
\r
89 itemArabicNumbers.setText(_("Arabic"));
\r
92 private void addItems() {
\r
94 ButtonGroup numbersGroup = new ButtonGroup();
\r
96 int numbersMode = UserPreferences.getInstance().getInteger("NumbersMode", Integer.valueOf(0)).intValue();
\r
98 itemStandardNumbers.setAction(actionStandardNumbers);
\r
99 numbersGroup.add(itemStandardNumbers);
\r
100 itemStandardNumbers.setSelected(numbersMode == 0);
\r
101 add(itemStandardNumbers);
\r
103 itemChineseNumbers.setAction(actionChineseNumbers);
\r
104 numbersGroup.add(itemChineseNumbers);
\r
105 itemChineseNumbers.setSelected(numbersMode == 1);
\r
106 add(itemChineseNumbers);
\r
108 itemArabicNumbers.setAction(actionArabicNumbers);
\r
109 numbersGroup.add(itemArabicNumbers);
\r
110 itemArabicNumbers.setSelected(numbersMode == 2);
\r
111 add(itemArabicNumbers);
\r
114 private void setNumbersMode(int mode) {
\r
115 UserPreferences.getInstance().set("numbersMode", Integer.valueOf(mode));
\r
116 view.getController().notifyGridChanged();
\r