public override AreaEval Offset(int relFirstRowIx, int relLastRowIx, int relFirstColIx, int relLastColIx) { AreaI area = new OffsetArea(FirstRow, FirstColumn, relFirstRowIx, relLastRowIx, relFirstColIx, relLastColIx); return(new LazyAreaEval(area, _evaluator)); }
public override AreaEval Offset(int relFirstRowIx, int relLastRowIx, int relFirstColIx, int relLastColIx) { AreaI area = new OffsetArea(Row, Column, relFirstRowIx, relLastRowIx, relFirstColIx, relLastColIx); return(new MockAreaEval(area)); }
public override AreaEval Offset(int relFirstRowIx, int relLastRowIx, int relFirstColIx, int relLastColIx) { AreaI area = new OffsetArea(FirstRow, FirstColumn, relFirstRowIx, relLastRowIx, relFirstColIx, relLastColIx); int height = area.LastRow - area.FirstRow + 1; int width = area.LastColumn - area.FirstColumn + 1; ValueEval[] newVals = new ValueEval[height * width]; int startRow = area.FirstRow - FirstRow; int startCol = area.FirstColumn - FirstColumn; for (int j = 0; j < height; j++) { for (int i = 0; i < width; i++) { ValueEval temp; /* CacheAreaEval is only temporary value representation, does not equal sheet selection * so any attempts going beyond the selection results in BlankEval */ if (startRow + j > LastRow || startCol + i > LastColumn) { temp = BlankEval.instance; } else { temp = _values[(startRow + j) * Width + (startCol + i)]; } newVals[j * width + i] = temp; } } return(new CacheAreaEval(area, newVals)); }