src/de/uapcore/sudoku/ActionHandler.java

changeset 4
b8588e318001
parent 3
ed931970b4ac
child 5
8ddf4af937d7
     1.1 --- a/src/de/uapcore/sudoku/ActionHandler.java	Sat Jan 26 18:38:12 2013 +0100
     1.2 +++ b/src/de/uapcore/sudoku/ActionHandler.java	Sat Jan 26 18:43:49 2013 +0100
     1.3 @@ -80,10 +80,35 @@
     1.4      private void solve() {
     1.5          // TODO: solve
     1.6      }
     1.7 +    
     1.8 +    private boolean saveUnsaved() {
     1.9 +        boolean proceed = false;
    1.10 +        if (field.isAnyCellModified()) {
    1.11 +            int result = JOptionPane.showConfirmDialog(field,
    1.12 +                    "Das Feld ist ungespeichert - jetzt speichern?",
    1.13 +                    "Sudoku", JOptionPane.YES_NO_CANCEL_OPTION);
    1.14 +            if (result == JOptionPane.YES_OPTION) {
    1.15 +                if (save()) {
    1.16 +                    proceed = true;
    1.17 +                }
    1.18 +            } else if (result == JOptionPane.NO_OPTION) {
    1.19 +                proceed = true;
    1.20 +            }
    1.21 +        } else {
    1.22 +            proceed = true;
    1.23 +        }
    1.24 +        
    1.25 +        return proceed;
    1.26 +    }
    1.27  
    1.28      @Override
    1.29      public void actionPerformed(ActionEvent e) {
    1.30          switch (e.getActionCommand()) {
    1.31 +        case NEW:
    1.32 +            if (saveUnsaved()) {
    1.33 +                field.clear();
    1.34 +            }
    1.35 +            break;
    1.36          case SAVE:
    1.37              save();
    1.38              break;
    1.39 @@ -94,18 +119,7 @@
    1.40              solve();
    1.41              break;
    1.42          case QUIT:
    1.43 -            if (field.isAnyCellModified()) {
    1.44 -                int result = JOptionPane.showConfirmDialog(field,
    1.45 -                        "Das Feld ist ungespeichert - jetzt speichern?",
    1.46 -                        "Sudoku", JOptionPane.YES_NO_CANCEL_OPTION);
    1.47 -                if (result == JOptionPane.YES_OPTION) {
    1.48 -                    if (save()) {
    1.49 -                        System.exit(0);
    1.50 -                    }
    1.51 -                } else if (result == JOptionPane.NO_OPTION) {
    1.52 -                    System.exit(0);
    1.53 -                }
    1.54 -            } else {
    1.55 +            if (saveUnsaved()) {
    1.56                  System.exit(0);
    1.57              }
    1.58              break;

mercurial