@Override
    public boolean canInsert(int row, int column, int value) {
	Cell cell = getSudoku().getCell(row, column);
	Integer sumIndex = (Integer) cell.getValue(SumCellProvider.SUM);
	if (sumIndex == null) {
//	    System.out.println("sumIndex == null -> true");
	    return true;
	}
	@SuppressWarnings("unchecked")
	Map<Integer, Integer> sumMap = (Map<Integer, Integer>) getSudoku().getValue(SumCellProvider.SUM, new HashMap<Integer, Integer>());
	Integer sum = sumMap.get(sumIndex);
	if (sum == null) {
//	    System.out.println("sum == null -> true");
	    return true;
	}
	List<List<Cell>> area = getArea(row, column);

	int sumSum = 0;
	for (List<Cell> list : area) {
	    for (Cell cell1 : list) {
		if (cell1 != null) {
		    sumSum += cell1.getValue();
		}
	    }
	}
	return ((sumSum + value) <= (sum.intValue()));
    }