示例#1
0
        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));
        }
示例#2
0
            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));
            }
示例#3
0
        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));
        }