Android Open Source - opensudoku Clear All Notes Command






From Project

Back to project page opensudoku.

License

The source code is released under:

GNU General Public License

If you think the Android project opensudoku listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/* 
 * Copyright (C) 2009 Roman Masek//from  w ww.  j  av a 2s.c om
 * 
 * This file is part of OpenSudoku.
 * 
 * OpenSudoku is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * OpenSudoku is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with OpenSudoku.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */

package org.moire.opensudoku.game.command;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;

import org.moire.opensudoku.game.Cell;
import org.moire.opensudoku.game.CellCollection;
import org.moire.opensudoku.game.CellNote;

public class ClearAllNotesCommand extends AbstractCellCommand {

  private List<NoteEntry> mOldNotes = new ArrayList<NoteEntry>();


  public ClearAllNotesCommand() {
  }


  @Override
  void saveState(Bundle outState) {
    super.saveState(outState);

    int[] rows = new int[mOldNotes.size()];
    int[] cols = new int[mOldNotes.size()];
    String[] notes = new String[mOldNotes.size()];

    int i = 0;
    for (NoteEntry ne : mOldNotes) {
      rows[i] = ne.rowIndex;
      cols[i] = ne.colIndex;
      notes[i] = ne.note.serialize();
      i++;
    }

    outState.putIntArray("rows", rows);
    outState.putIntArray("cols", cols);
    outState.putStringArray("notes", notes);
  }

  @Override
  void restoreState(Bundle inState) {
    super.restoreState(inState);

    int[] rows = inState.getIntArray("rows");
    int[] cols = inState.getIntArray("cols");
    String[] notes = inState.getStringArray("notes");

    for (int i = 0; i < rows.length; i++) {
      mOldNotes.add(new NoteEntry(rows[i], cols[i], CellNote
          .deserialize(notes[i])));
    }
  }

  @Override
  void execute() {
    CellCollection cells = getCells();

    mOldNotes.clear();
    for (int r = 0; r < CellCollection.SUDOKU_SIZE; r++) {
      for (int c = 0; c < CellCollection.SUDOKU_SIZE; c++) {
        Cell cell = cells.getCell(r, c);
        CellNote note = cell.getNote();
        if (!note.isEmpty()) {
          mOldNotes.add(new NoteEntry(r, c, note));
          cell.setNote(new CellNote());
        }
      }
    }
  }

  @Override
  void undo() {
    CellCollection cells = getCells();

    for (NoteEntry ne : mOldNotes) {
      cells.getCell(ne.rowIndex, ne.colIndex).setNote(ne.note);
    }

  }

  private static class NoteEntry {
    public int rowIndex;
    public int colIndex;
    public CellNote note;

    public NoteEntry(int rowIndex, int colIndex, CellNote note) {
      this.rowIndex = rowIndex;
      this.colIndex = colIndex;
      this.note = note;
    }

  }


}




Java Source Code List

org.moire.opensudoku.db.DatabaseHelper.java
org.moire.opensudoku.db.FolderColumns.java
org.moire.opensudoku.db.SudokuColumns.java
org.moire.opensudoku.db.SudokuDatabase.java
org.moire.opensudoku.db.SudokuImportParams.java
org.moire.opensudoku.db.SudokuInvalidFormatException.java
org.moire.opensudoku.game.CellCollection.java
org.moire.opensudoku.game.CellGroup.java
org.moire.opensudoku.game.CellNote.java
org.moire.opensudoku.game.Cell.java
org.moire.opensudoku.game.FolderInfo.java
org.moire.opensudoku.game.SudokuGame.java
org.moire.opensudoku.game.command.AbstractCellCommand.java
org.moire.opensudoku.game.command.AbstractCommand.java
org.moire.opensudoku.game.command.ClearAllNotesCommand.java
org.moire.opensudoku.game.command.CommandStack.java
org.moire.opensudoku.game.command.EditCellNoteCommand.java
org.moire.opensudoku.game.command.FillInNotesCommand.java
org.moire.opensudoku.game.command.SetCellValueCommand.java
org.moire.opensudoku.gui.Changelog.java
org.moire.opensudoku.gui.FileImportActivity.java
org.moire.opensudoku.gui.FileListActivity.java
org.moire.opensudoku.gui.FolderDetailLoader.java
org.moire.opensudoku.gui.FolderListActivity.java
org.moire.opensudoku.gui.GameSettingsActivity.java
org.moire.opensudoku.gui.GameTimeFormat.java
org.moire.opensudoku.gui.HintsQueue.java
org.moire.opensudoku.gui.ImportSudokuActivity.java
org.moire.opensudoku.gui.SeekBarPreference.java
org.moire.opensudoku.gui.SudokuBoardView.java
org.moire.opensudoku.gui.SudokuEditActivity.java
org.moire.opensudoku.gui.SudokuExportActivity.java
org.moire.opensudoku.gui.SudokuImportActivity.java
org.moire.opensudoku.gui.SudokuListActivity.java
org.moire.opensudoku.gui.SudokuListFilter.java
org.moire.opensudoku.gui.SudokuPlayActivity.java
org.moire.opensudoku.gui.Timer.java
org.moire.opensudoku.gui.exporting.FileExportTaskParams.java
org.moire.opensudoku.gui.exporting.FileExportTaskResult.java
org.moire.opensudoku.gui.exporting.FileExportTask.java
org.moire.opensudoku.gui.importing.AbstractImportTask.java
org.moire.opensudoku.gui.importing.ExtrasImportTask.java
org.moire.opensudoku.gui.importing.OpenSudokuImportTask.java
org.moire.opensudoku.gui.importing.SdmImportTask.java
org.moire.opensudoku.gui.inputmethod.IMControlPanelStatePersister.java
org.moire.opensudoku.gui.inputmethod.IMControlPanel.java
org.moire.opensudoku.gui.inputmethod.IMNumpad.java
org.moire.opensudoku.gui.inputmethod.IMPopupDialog.java
org.moire.opensudoku.gui.inputmethod.IMPopup.java
org.moire.opensudoku.gui.inputmethod.IMSingleNumber.java
org.moire.opensudoku.gui.inputmethod.InputMethod.java
org.moire.opensudoku.utils.AndroidUtils.java
org.moire.opensudoku.utils.Const.java
org.moire.opensudoku.utils.StringUtils.java