src/de/uapcore/sudoku/ActionHandler.java

changeset 4
b8588e318001
parent 3
ed931970b4ac
child 5
8ddf4af937d7
equal deleted inserted replaced
3:ed931970b4ac 4:b8588e318001
78 } 78 }
79 79
80 private void solve() { 80 private void solve() {
81 // TODO: solve 81 // TODO: solve
82 } 82 }
83
84 private boolean saveUnsaved() {
85 boolean proceed = false;
86 if (field.isAnyCellModified()) {
87 int result = JOptionPane.showConfirmDialog(field,
88 "Das Feld ist ungespeichert - jetzt speichern?",
89 "Sudoku", JOptionPane.YES_NO_CANCEL_OPTION);
90 if (result == JOptionPane.YES_OPTION) {
91 if (save()) {
92 proceed = true;
93 }
94 } else if (result == JOptionPane.NO_OPTION) {
95 proceed = true;
96 }
97 } else {
98 proceed = true;
99 }
100
101 return proceed;
102 }
83 103
84 @Override 104 @Override
85 public void actionPerformed(ActionEvent e) { 105 public void actionPerformed(ActionEvent e) {
86 switch (e.getActionCommand()) { 106 switch (e.getActionCommand()) {
107 case NEW:
108 if (saveUnsaved()) {
109 field.clear();
110 }
111 break;
87 case SAVE: 112 case SAVE:
88 save(); 113 save();
89 break; 114 break;
90 case CHECK: 115 case CHECK:
91 check(); 116 check();
92 break; 117 break;
93 case SOLVE: 118 case SOLVE:
94 solve(); 119 solve();
95 break; 120 break;
96 case QUIT: 121 case QUIT:
97 if (field.isAnyCellModified()) { 122 if (saveUnsaved()) {
98 int result = JOptionPane.showConfirmDialog(field,
99 "Das Feld ist ungespeichert - jetzt speichern?",
100 "Sudoku", JOptionPane.YES_NO_CANCEL_OPTION);
101 if (result == JOptionPane.YES_OPTION) {
102 if (save()) {
103 System.exit(0);
104 }
105 } else if (result == JOptionPane.NO_OPTION) {
106 System.exit(0);
107 }
108 } else {
109 System.exit(0); 123 System.exit(0);
110 } 124 }
111 break; 125 break;
112 case ABOUT: 126 case ABOUT:
113 JOptionPane.showMessageDialog(field, 127 JOptionPane.showMessageDialog(field,

mercurial