@Override public void moveRowsTo(final int index, final List<GridRow> rows) { if (rows == null || rows.isEmpty()) { return; } //Get extent of block being moved final int oldBlockStart = this.rows.indexOf(rows.get(0)); final int oldBlockEnd = this.rows.indexOf(rows.get(rows.size() - 1)); //If we're attempting to move it to its current index just exit if (index == oldBlockStart) { return; } this.rows.removeAll(rows); if (index < oldBlockStart) { this.rows.addAll(index, rows); } else if (index > oldBlockStart) { this.rows.addAll(index - rows.size() + 1, rows); } final Range oldBlockExtent = new Range(oldBlockStart, oldBlockEnd); indexManager.onMoveRows(rows, oldBlockExtent); selectionsManager.onMoveRows(rows, oldBlockExtent); }
@Override public void moveRowsTo(final int index, final List<GridRow> rows) { if (rows == null || rows.isEmpty()) { return; } //Get extent of block being moved final int oldBlockStart = this.rows.indexOf(rows.get(0)); final int oldBlockEnd = this.rows.indexOf(rows.get(rows.size() - 1)); //If we're attempting to move it to its current index just exit if (index == oldBlockStart) { return; } this.rows.removeAll(rows); if (index < oldBlockStart) { this.rows.addAll(index, rows); } else if (index > oldBlockStart) { this.rows.addAll(index - rows.size() + 1, rows); } final Range oldBlockExtent = new Range(oldBlockStart, oldBlockEnd); indexManager.onMoveRows(rows, oldBlockExtent); selectionsManager.onMoveRows(rows, oldBlockExtent); }
@Override public Range selectCell(final int rowIndex, final int columnIndex) { if (rowIndex < 0 || rowIndex > rows.size() - 1) { return new Range(rowIndex); } if (columnIndex < 0 || columnIndex > columns.size() - 1) { return new Range(rowIndex); } return selectionsManager.onSelectCell(rowIndex, columnIndex); }
@Override public Range deleteRow(final int rowIndex) { //Find row that is the "lead" in a merged collapsed block GridRow row; int minRowIndex = rowIndex; int maxRowIndex = rowIndex; while ((row = rows.get(minRowIndex)).isMerged() && row.isCollapsed() && minRowIndex > 0) { minRowIndex--; } //Find last row in a merged collapsed block do { maxRowIndex++; } while (maxRowIndex < rows.size() && rows.get(maxRowIndex).isCollapsed()); maxRowIndex--; final Range range = new Range(minRowIndex, maxRowIndex); for (int _rowIndex = minRowIndex; _rowIndex <= maxRowIndex; _rowIndex++) { rows.remove(minRowIndex); } indexManager.onDeleteRow(range); selectionsManager.onDeleteRow(range); return range; }
/** * This methods returns the <code>Range</code> of a <b>single</b> block of columns of the same instance/data object. * A <code>single</code> block is made of all the columns immediately to the left and right of the selected one with the same "label". * If there is another column with the same "label" but separated by a different column, it is not part of the group. * @param columnIndex * @return */ public Range getInstanceLimits(int columnIndex) { final ScenarioGridColumn selectedColumn = (ScenarioGridColumn) columns.get(columnIndex); final String originalColumnGroup = selectedColumn.getInformationHeaderMetaData().getColumnGroup(); final ScenarioHeaderMetaData selectedInformationHeaderMetaData = selectedColumn.getInformationHeaderMetaData(); String originalColumnTitle = selectedInformationHeaderMetaData.getTitle(); int leftPosition = columnIndex; while (leftPosition > 1 && ((ScenarioGridColumn) columns.get(leftPosition - 1)).getInformationHeaderMetaData().getColumnGroup().equals(originalColumnGroup) && ((ScenarioGridColumn) columns.get(leftPosition - 1)).getInformationHeaderMetaData().getTitle().equals(originalColumnTitle)) { leftPosition--; } int rightPosition = columnIndex; while (rightPosition < columns.size() - 1 && ((ScenarioGridColumn) columns.get(rightPosition + 1)).getInformationHeaderMetaData().getColumnGroup().equals(originalColumnGroup) && ((ScenarioGridColumn) columns.get(rightPosition + 1)).getInformationHeaderMetaData().getTitle().equals(originalColumnTitle)) { rightPosition++; } return new Range(leftPosition, rightPosition); }
@Override public Range deleteRow(final int rowIndex) { //Find row that is the "lead" in a merged collapsed block GridRow row; int minRowIndex = rowIndex; int maxRowIndex = rowIndex; while ((row = rows.get(minRowIndex)).isMerged() && row.isCollapsed() && minRowIndex > 0) { minRowIndex--; } //Find last row in a merged collapsed block do { maxRowIndex++; } while (maxRowIndex < rows.size() && rows.get(maxRowIndex).isCollapsed()); maxRowIndex--; final Range range = new Range(minRowIndex, maxRowIndex); for (int _rowIndex = minRowIndex; _rowIndex <= maxRowIndex; _rowIndex++) { rows.remove(minRowIndex); } indexManager.onDeleteRow(range); selectionsManager.onDeleteRow(range); return range; }
private GridData.Range selectCellNotMerged(final int rowIndex, final int columnIndex) { final List<GridRow> rows = gridData.getRows(); final List<GridColumn<?>> columns = gridData.getColumns(); final List<GridData.SelectedCell> selectedCells = gridData.getSelectedCells(); final GridData.Range range = new GridData.Range(rowIndex); if (rowIndex < 0 || rowIndex > rows.size() - 1) { return range; } if (columnIndex < 0 || columnIndex > columns.size() - 1) { return range; } final int _columnIndex = columns.get(columnIndex).getIndex(); final GridData.SelectedCell selectedCell = new GridData.SelectedCell(rowIndex, _columnIndex); if (!selectedCells.contains(selectedCell)) { selectedCells.add(selectedCell); } return range; }
private GridData.Range selectHeaderCell(final int headerRowIndex, final int headerColumnIndex) { final List<GridColumn<?>> columns = gridData.getColumns(); final List<GridData.SelectedCell> selectedHeaderCells = gridData.getSelectedHeaderCells(); final GridData.Range range = new GridData.Range(headerRowIndex); if (headerColumnIndex < 0 || headerColumnIndex > columns.size() - 1) { return range; } final GridColumn<?> gridColumn = columns.get(headerColumnIndex); final List<GridColumn.HeaderMetaData> gridColumnHeaderMetaData = gridColumn.getHeaderMetaData(); if (headerRowIndex < 0 || headerRowIndex > gridColumnHeaderMetaData.size() - 1) { return range; } final int _headerColumnIndex = columns.get(headerColumnIndex).getIndex(); final GridData.SelectedCell selectedCell = new GridData.SelectedCell(headerRowIndex, _headerColumnIndex); if (!selectedHeaderCells.contains(selectedCell)) { selectedHeaderCells.add(selectedCell); } return range; }
private GridData.Range selectHeaderCell(final int headerRowIndex, final int headerColumnIndex) { final List<GridColumn<?>> columns = gridData.getColumns(); final List<GridData.SelectedCell> selectedHeaderCells = gridData.getSelectedHeaderCells(); final GridData.Range range = new GridData.Range(headerRowIndex); if (headerColumnIndex < 0 || headerColumnIndex > columns.size() - 1) { return range; } final GridColumn<?> gridColumn = columns.get(headerColumnIndex); final List<GridColumn.HeaderMetaData> gridColumnHeaderMetaData = gridColumn.getHeaderMetaData(); if (headerRowIndex < 0 || headerRowIndex > gridColumnHeaderMetaData.size() - 1) { return range; } final int _headerColumnIndex = columns.get(headerColumnIndex).getIndex(); final GridData.SelectedCell selectedCell = new GridData.SelectedCell(headerRowIndex, _headerColumnIndex); if (!selectedHeaderCells.contains(selectedCell)) { selectedHeaderCells.add(selectedCell); } return range; }
private GridData.Range selectCellNotMerged(final int rowIndex, final int columnIndex) { final List<GridRow> rows = gridData.getRows(); final List<GridColumn<?>> columns = gridData.getColumns(); final List<GridData.SelectedCell> selectedCells = gridData.getSelectedCells(); final GridData.Range range = new GridData.Range(rowIndex); if (rowIndex < 0 || rowIndex > rows.size() - 1) { return range; } if (columnIndex < 0 || columnIndex > columns.size() - 1) { return range; } final int _columnIndex = columns.get(columnIndex).getIndex(); final GridData.SelectedCell selectedCell = new GridData.SelectedCell(rowIndex, _columnIndex); if (!selectedCells.contains(selectedCell)) { selectedCells.add(selectedCell); } return range; }
@Override public Range selectCells(final int rowIndex, final int columnIndex, final int width, final int height) { if (rowIndex < 0 || rowIndex > rows.size() - 1) { return new Range(rowIndex); } if (columnIndex < 0 || columnIndex > columns.size() - 1) { return new Range(rowIndex); } return selectionsManager.onSelectCells(rowIndex, columnIndex, width, height); }
private GridData.Range selectCellMerged(final int rowIndex, final int columnIndex) { //Find affected rows for merged data final List<GridColumn<?>> columns = gridData.getColumns(); final int _columnIndex = columns.get(columnIndex).getIndex(); final int minRowIndex = findMinRowIndex(rowIndex, _columnIndex); final int maxRowIndex = findMaxRowIndex(rowIndex, _columnIndex); //Select all applicable rows' cells selectCellsNotMerged(minRowIndex, columnIndex, 1, maxRowIndex - minRowIndex + 1); return new GridData.Range(minRowIndex, maxRowIndex); }
private GridData.Range selectCellMerged(final int rowIndex, final int columnIndex) { //Find affected rows for merged data final List<GridColumn<?>> columns = gridData.getColumns(); final int _columnIndex = columns.get(columnIndex).getIndex(); final int minRowIndex = findMinRowIndex(rowIndex, _columnIndex); final int maxRowIndex = findMaxRowIndex(rowIndex, _columnIndex); //Select all applicable rows' cells selectCellsNotMerged(minRowIndex, columnIndex, 1, maxRowIndex - minRowIndex + 1); return new GridData.Range(minRowIndex, maxRowIndex); }
@Override public Range selectHeaderCell(final int headerRowIndex, final int headerColumnIndex) { if (headerColumnIndex < 0 || headerColumnIndex > columns.size() - 1) { return new Range(headerRowIndex); } final GridColumn<?> gridColumn = getColumns().get(headerColumnIndex); final List<GridColumn.HeaderMetaData> gridColumnHeaderMetaData = gridColumn.getHeaderMetaData(); if (headerRowIndex < 0 || headerRowIndex > gridColumnHeaderMetaData.size() - 1) { return new Range(headerRowIndex); } return selectionsManager.onSelectHeaderCell(headerRowIndex, headerColumnIndex); }
@Override public Range selectCells(final int rowIndex, final int columnIndex, final int width, final int height) { if (rowIndex < 0 || rowIndex > rows.size() - 1) { return new Range(rowIndex); } if (columnIndex < 0 || columnIndex > columns.size() - 1) { return new Range(rowIndex); } return selectionsManager.onSelectCells(rowIndex, columnIndex, width, height); }
@Override public Range selectHeaderCell(final int headerRowIndex, final int headerColumnIndex) { if (headerColumnIndex < 0 || headerColumnIndex > columns.size() - 1) { return new Range(headerRowIndex); } final GridColumn<?> gridColumn = getColumns().get(headerColumnIndex); final List<GridColumn.HeaderMetaData> gridColumnHeaderMetaData = gridColumn.getHeaderMetaData(); if (headerRowIndex < 0 || headerRowIndex > gridColumnHeaderMetaData.size() - 1) { return new Range(headerRowIndex); } return selectionsManager.onSelectHeaderCell(headerRowIndex, headerColumnIndex); }
@Override public Range selectCell(final int rowIndex, final int columnIndex) { if (rowIndex < 0 || rowIndex > rows.size() - 1) { return new Range(rowIndex); } if (columnIndex < 0 || columnIndex > columns.size() - 1) { return new Range(rowIndex); } return selectionsManager.onSelectCell(rowIndex, columnIndex); }
public GridData.Range onSelectCell(final int rowIndex, final int columnIndex) { if (gridData.isMerged()) { return selectCellMerged(rowIndex, columnIndex); } else { selectCellNotMerged(rowIndex, columnIndex); return new GridData.Range(rowIndex); } }
public GridData.Range onSelectCell(final int rowIndex, final int columnIndex) { if (gridData.isMerged()) { return selectCellMerged(rowIndex, columnIndex); } else { selectCellNotMerged(rowIndex, columnIndex); return new GridData.Range(rowIndex); } }