added NEW function

Sat, 26 Jan 2013 18:43:49 +0100

author
Mike Becker <universe@uap-core.de>
date
Sat, 26 Jan 2013 18:43:49 +0100
changeset 4
b8588e318001
parent 3
ed931970b4ac
child 5
8ddf4af937d7

added NEW function

src/de/uapcore/sudoku/ActionHandler.java file | annotate | diff | comparison | revisions
src/de/uapcore/sudoku/Field.java file | annotate | diff | comparison | revisions
src/de/uapcore/sudoku/SudokuTextField.java file | annotate | diff | comparison | revisions
     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;
     2.1 --- a/src/de/uapcore/sudoku/Field.java	Sat Jan 26 18:38:12 2013 +0100
     2.2 +++ b/src/de/uapcore/sudoku/Field.java	Sat Jan 26 18:43:49 2013 +0100
     2.3 @@ -118,4 +118,12 @@
     2.4          }
     2.5          return false;
     2.6      }
     2.7 +    
     2.8 +    public void clear() {
     2.9 +        for (int x = 0 ; x < 9 ; x++) {
    2.10 +            for (int y = 0 ; y < 9 ; y++) {
    2.11 +                cells[x][y].setValue(0);
    2.12 +            }
    2.13 +        }
    2.14 +    }
    2.15  }
     3.1 --- a/src/de/uapcore/sudoku/SudokuTextField.java	Sat Jan 26 18:38:12 2013 +0100
     3.2 +++ b/src/de/uapcore/sudoku/SudokuTextField.java	Sat Jan 26 18:43:49 2013 +0100
     3.3 @@ -99,6 +99,10 @@
     3.4              public void focusGained(FocusEvent e) {
     3.5                  selectAll();
     3.6              }
     3.7 +            @Override
     3.8 +            public void focusLost(FocusEvent e) {
     3.9 +                select(0, 0);
    3.10 +            }
    3.11          });
    3.12      }
    3.13      

mercurial