public boolean isPartOfTheMergedRegion(int col, int row) { return delegate.isPartOfTheMergedRegion(col, row); }
private static List<IUndoableGridTableAction> clearCells(int startColumn, int nCols, int startRow, int nRows, IGrid grid, MetaInfoWriter metaInfoWriter) { List<IUndoableGridTableAction> clearActions = new ArrayList<>(); for (int i = startColumn; i < startColumn + nCols; i++) { for (int j = startRow; j < startRow + nRows; j++) { if (!grid.isPartOfTheMergedRegion(i, j) || (grid.isTopLeftCellInMergedRegion(i, j))){ clearActions.add(new UndoableClearAction(i, j, metaInfoWriter)); } } } return clearActions; }
private static List<IUndoableGridTableAction> emptyCells(int colFrom, int rowFrom, int nCols, int nRows, IGrid grid, MetaInfoWriter metaInfoWriter) { List<IUndoableGridTableAction> actions = new ArrayList<>(); for (int i = nCols - 1; i >= 0; i--) { for (int j = nRows - 1; j >= 0; j--) { int cFrom = colFrom + i; int rFrom = rowFrom + j; if (grid.isTopLeftCellInMergedRegion(cFrom, rFrom)) { ICell cell = grid.getCell(cFrom, rFrom); if (cell.getHeight() > nRows || cell.getWidth() > nCols) { // Don't clear merged cells which are bigger than the cleaned region. continue; } } else if (grid.isPartOfTheMergedRegion(cFrom, rFrom)) { // Don't clear middle of the merged cells. continue; } actions.add(new UndoableSetValueAction(cFrom, rFrom, null, metaInfoWriter)); } } return actions; }
boolean containsCell(int column, int row) { if (!grid.isEmpty(column, row)) { return true;// not empty cell } if (grid.isPartOfTheMergedRegion(column, row)) { IGridRegion region = grid.getRegionContaining(column, row); if (!grid.isEmpty(region.getLeft(), region.getTop())) { return true;// part of not empty merged cell } } return false; }
private static AUndoableCellAction shiftCell(int colFrom, int rowFrom, int colTo, int rowTo, IGrid grid, MetaInfoWriter metaInfoWriter) { if (!grid.isPartOfTheMergedRegion(colFrom, rowFrom) || grid.isTopLeftCellInMergedRegion(colFrom, rowFrom)) { // non top left cell of merged region have to be skipped return new UndoableShiftValueAction(colFrom, rowFrom, colTo, rowTo, metaInfoWriter); } return new SetBorderStyleAction(colTo, rowTo, grid.getCell(colFrom, rowFrom).getStyle(), false, metaInfoWriter); }
for (int column = startColumn - nCols; column < startColumn; column++) { for (int row = region.getTop(); row <= region.getBottom(); row++) { if (!grid.isPartOfTheMergedRegion(column, row) || (grid.isTopLeftCellInMergedRegion(column, row) && IGridRegion.Tool .width(grid.getRegionStartingAt(column, row)) <= nCols)) {
for (int row = startRow - nRows; row < startRow; row++) { for (int column = region.getLeft(); column <= region.getRight(); column++) { if (!grid.isPartOfTheMergedRegion(column, row) || (grid.isTopLeftCellInMergedRegion(column, row) && IGridRegion.Tool .height(grid.getRegionStartingAt(column, row)) <= nRows)) {