public void setValue(int row, int column, int value) {
   ICell cell = grid.getICell(row, column);
   if (cell.isUnSet()) {
     cell.setValue(value);
     undoManager.addEdit(new SetValueCommand(cell));
     statusLine = "The cell " + cell.mkString() + " was successfully set";
   } else {
     statusLine = "The cell " + cell.mkString() + " is already set";
   }
   notifyObservers();
 }
 public boolean isShowCandidates(int row, int column) {
   return grid.getICell(row, column).isShowCandidates();
 }
 public void showCandidates(int row, int column) {
   grid.getICell(row, column).toggleShowCandidates();
   BitSet set = grid.candidates(row, column);
   statusLine = "Candidates at (" + row + "," + column + ") are " + set.toString();
   notifyObservers();
 }
 public boolean isSet(int row, int column) {
   return grid.getICell(row, column).isSet();
 }
 public int getValue(int row, int column) {
   return grid.getICell(row, column).getValue();
 }