public override CompositePosition GetTopLeft(CompositeRange range) { if (!range.IsEmpty) { return(new CompositePosition(range.Type, range.Row, range.Column)); } return(CompositePosition.Empty); }
public override List <int> GetColumnIndexes(CompositeRange range) { List <int> list = new List <int>(); for (int i = 0; i < range.ColumnCount; i++) { list.Add(range.Column + i); } return(list); }
int GetCurrentPageIndex(CompositePosition position) { IList <CompositeRange> selections = Selections; for (int i = selections.Count - 1; i >= 0; i--) { CompositeRange fixedRange = GetFixedRange(selections[i]); if (((position.Column >= fixedRange.Column) && (position.Column <= fixedRange.EndColumn)) && ((position.Row >= fixedRange.Row) && (position.Row <= fixedRange.EndRow))) { return(i); } } return(-1); }
CompositePosition GetNextCellInRange(CompositeRange range, int rowDataIndex, List <int> columnIndexes, int startColumnDataIndex, out CompositePosition newStartPosition) { CompositePosition position = GetNextCellInRow(rowDataIndex, columnIndexes, startColumnDataIndex, out newStartPosition); if (position.IsEmpty) { for (int i = rowDataIndex + 1; i <= range.EndRow; i++) { position = GetNextCellInRow(i, columnIndexes, -1, out newStartPosition); if (!position.IsEmpty) { return(position); } } } return(position); }
public virtual bool ShouldNavigateInSelection() { if (Selections.Count == 0) { return(false); } if (Selections.Count <= 1) { CompositeRange fixedRange = GetFixedRange(Selections[0]); CompositePosition topLeft = GetTopLeft(fixedRange); if (fixedRange.RowCount <= GetRowSpan(topLeft)) { return(fixedRange.ColumnCount > GetColumnSpan(topLeft)); } } return(true); }
CompositePosition GetPreviousCellInRange(CompositeRange range, int rowDataIndex, List <int> columnIndexes, int startColumnDataIndex, out CompositePosition newStartPosition) { CompositePosition position = GetPreviousCellInRow(rowDataIndex, columnIndexes, startColumnDataIndex, out newStartPosition); if (position.IsEmpty) { for (int i = rowDataIndex - 1; i >= range.Row; i--) { position = GetPreviousCellInRow(i, columnIndexes, CompositeColumnCount, out newStartPosition); if (!position.IsEmpty) { return(position); } } } return(position); }
public override CompositeRange GetFixedRange(CompositeRange range) { int compositeRowCount = CompositeRowCount; int compositeColumnCount = CompositeColumnCount; if ((range.Row == -1) && (range.Column == -1)) { return(new CompositeRange(DataSheetElementType.Cell, 0, 0, compositeRowCount, compositeColumnCount)); } if (range.Row == -1) { return(new CompositeRange(DataSheetElementType.Cell, 0, range.Column, compositeRowCount, range.ColumnCount)); } if (range.Column == -1) { return(new CompositeRange(DataSheetElementType.Cell, range.Row, 0, range.RowCount, compositeColumnCount)); } return(new CompositeRange(DataSheetElementType.Cell, range.Row, range.Column, range.RowCount, range.ColumnCount)); }
public static CompositeRange GetFixedRange(this CompositeRange comRange, int rowCount, int columnCount) { CompositeRange empty = CompositeRange.Empty; if ((comRange.Row != -1) && (comRange.Column != -1)) { return(new CompositeRange(DataSheetElementType.Cell, comRange.Row, comRange.Column, comRange.RowCount, comRange.ColumnCount)); } if ((comRange.Row == -1) && (comRange.Column != -1)) { return(new CompositeRange(DataSheetElementType.Cell, 0, comRange.Column, rowCount, comRange.ColumnCount)); } if ((comRange.Row != -1) && (comRange.Column == -1)) { return(new CompositeRange(DataSheetElementType.Cell, comRange.Row, 0, comRange.RowCount, columnCount)); } if ((comRange.Row == -1) && (comRange.Column == -1)) { empty = new CompositeRange(DataSheetElementType.Cell, 0, 0, rowCount, columnCount); } return(empty); }
public abstract CompositeRange GetFixedRange(CompositeRange range);
public abstract List <int> GetColumnIndexes(CompositeRange range);
public abstract CompositePosition GetTopLeft(CompositeRange range);