private void updateGroupSumView(int groupId) {
   // if remain mode is not selected, view of group sum is never changed
   if (remainMode.isSelected()) {
     Group group = board.getGroup(groupId);
     boardView.updateGroupSum(group, true);
   }
 }
  private void updateEntireView() {

    // upadte board view entirely
    boardView.update(board, remainMode.isSelected());

    // redraw combination view
    Group group = board.getGroup(board.getCurrentCell().getGroupId());
    combinationView.update(group);
  }
  private void moveFocusTo(int row, int col) {

    // update combination list if new group is selected
    Cell cell = board.getCell(row, col);
    int groupId = cell.getGroupId();
    if (groupId != board.getCurrentCell().getGroupId()) {
      combinationView.update(board.getGroup(groupId));
    }

    // don't update current cell before checking group ID changed
    board.setCurrentCell(row, col);
    boardView.focusOn(row, col);
  }