universe@2: package de.uapcore.sudoku; universe@2: universe@2: import java.awt.event.ActionEvent; universe@2: import java.awt.event.ActionListener; universe@2: import javax.swing.JOptionPane; universe@2: universe@2: /** universe@2: * universe@2: * @author mike universe@2: */ universe@2: public final class ActionHandler implements ActionListener { universe@2: universe@2: public static final String SAVE = "save"; universe@2: public static final String CHECK = "check"; universe@2: public static final String SOLVE = "solve"; universe@2: universe@2: private Field field; universe@2: private Solver solver; universe@2: universe@2: public ActionHandler(Field f) { universe@2: field = f; universe@2: solver = new Solver(); universe@2: } universe@2: universe@2: private void save() { universe@2: if (solver.check(field)) { universe@2: field.setAllCellsModified(false); universe@2: // TODO: save to file universe@2: } else { universe@2: JOptionPane.showMessageDialog(field, universe@2: "Das Feld kann mit Fehlern nicht gespeichert werden!", universe@2: "Sudoku", JOptionPane.ERROR_MESSAGE); universe@2: } universe@2: } universe@2: universe@2: private void check() { universe@2: if (solver.check(field)) { universe@2: JOptionPane.showMessageDialog(field, "Überprüfung erfolgreich!", universe@2: "Sudoku", JOptionPane.INFORMATION_MESSAGE); universe@2: } else { universe@2: JOptionPane.showMessageDialog(field, "Das Feld enthält Fehler!", universe@2: "Sudoku", JOptionPane.WARNING_MESSAGE); universe@2: } universe@2: } universe@2: universe@2: private void solve() { universe@2: // TODO: solve universe@2: } universe@2: universe@2: @Override universe@2: public void actionPerformed(ActionEvent e) { universe@2: switch (e.getActionCommand()) { universe@2: case "save": universe@2: save(); universe@2: break; universe@2: case "check": universe@2: check(); universe@2: break; universe@2: case "solve": universe@2: solve(); universe@2: break; universe@2: default: universe@2: throw new UnsupportedOperationException( universe@2: "unknown action: "+e.getActionCommand()); universe@2: } universe@2: } universe@2: universe@2: }