OSDN Git Service

Support Polish language thanks to Monika Viste
[sudokuki/sudokuki.git] / src / classes / net / jankenpoi / sudokuki / ui / swing / ResolveAction.java
1 /*
2  * Sudokuki - essential sudoku game
3  * Copyright (C) 2007-2016 Sylvain Vedrenne
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 package net.jankenpoi.sudokuki.ui.swing;
19
20 import java.awt.event.ActionEvent;
21
22 import javax.swing.AbstractAction;
23 import javax.swing.Icon;
24 import javax.swing.JFrame;
25 import javax.swing.JOptionPane;
26
27 import net.jankenpoi.sudokuki.view.GridView;
28 import static net.jankenpoi.i18n.I18n.gtxt;
29
30 @SuppressWarnings("serial")
31 public class ResolveAction extends AbstractAction {
32
33         private JFrame frame;
34
35         private GridView view;
36
37         public ResolveAction(JFrame frame, String text, Icon icon, String desc,
38                         Integer mnemonic, GridView view) {
39                 super(text, icon);
40                 this.frame = frame;
41                 putValue(SHORT_DESCRIPTION, desc);
42                 putValue(MNEMONIC_KEY, mnemonic);
43                 this.view = view;
44         }
45
46         @Override
47         public void actionPerformed(ActionEvent e) {
48                 ResolveGridDialog dlg = new ResolveGridDialog(frame, view);
49                 dlg.setVisible(true);
50                 int result = dlg.getResult();
51                 if (result == 0) {
52                         setEnabled(false);
53                         view.getController().notifyGridResolutionSuccess();
54                 } else if (result == 2) {
55                         JOptionPane.showMessageDialog(frame, "<html>"
56                                         + "<table border=\"0\">" + "<tr>"
57                                         + gtxt("This grid has no solution.")+"<br/><br/>"
58                                         + "</tr>" + "</html>", "Sudokuki",
59                                         JOptionPane.WARNING_MESSAGE);
60                 } else if (result == 1) {
61                         /**
62                          * Operation cancelled by the user
63                          */
64                 } else {
65                         System.out.println("ResolveAction.actionPerformed() an unexpected error has occurred");
66                         Thread.dumpStack();
67                 }
68         }
69 }