public void selectFirstCell() { final GridData uiModel = getModel(); if (uiModel.getRowCount() == 0 || uiModel.getColumnCount() == 0) { return; } uiModel.clearSelections(); uiModel.getColumns() .stream() .filter(c -> !(c instanceof IsRowDragHandle)) .map(c -> uiModel.getColumns().indexOf(c)) .findFirst() .ifPresent(index -> selectCell(0, index, false, false)); }
protected void clearCells(final GridWidget gridWidget) { final GridData gridModel = gridWidget.getModel(); final List<GridData.SelectedCell> selectedCells = gridModel.getSelectedCells(); for (GridData.SelectedCell cell : selectedCells) { gridModel.deleteCell(cell.getRowIndex(), cell.getColumnIndex()); } } }
private double getMergedCellHeight(final int uiRowIndex, final int uiColumnIndex) { double height = 0; final GridCell<?> cell = gridModel.getCell(uiRowIndex, uiColumnIndex); for (int i = uiRowIndex; i < uiRowIndex + cell.getMergedCellCount(); i++) { height = height + gridModel.getRow(i).getHeight(); } return height; }
private boolean isCoordinateWithinExtents(final int proposedUiRowIndex, final int proposedUiColumnIndex) { if (proposedUiRowIndex < 0 || proposedUiRowIndex > gridModel.getRowCount() - 1) { return false; } if (proposedUiColumnIndex < 0 || proposedUiColumnIndex > gridModel.getColumnCount() - 1) { return false; } return true; }
private void selectRow(final GridData model, final int uiRowIndex) { model.selectCells(uiRowIndex, 0, model.getColumnCount(), 1); }
@Override public boolean isExecutable(final GridWidget gridWidget) { final GridData model = gridWidget.getModel(); return model.getSelectedHeaderCells().size() > 0 || model.getSelectedCells().size() > 0; }
@Override public void flush(final String value) { final int rowIndex = context.getRowIndex(); final int columnIndex = context.getColumnIndex(); if (value == null || value.trim().isEmpty()) { gridWidget.getModel().deleteCell(rowIndex, columnIndex); } else { gridWidget.getModel().setCellValue(rowIndex, columnIndex, new BaseGridCellValue<String>(value)); } } }
@Before public void setup() { when( renderer.getHeaderHeight() ).thenReturn( 64.0 ); when( renderer.getHeaderRowHeight() ).thenReturn( 32.0 ); when( helper.getColumnInformation( any( Double.class ) ) ).thenReturn( columnInformation ); when( columnInformation.getColumn() ).thenReturn( uiColumn ); when( uiModel.getHeaderRowCount() ).thenReturn( 2 ); when( uiModel.getColumnCount() ).thenReturn( 1 ); when( uiModel.getColumns() ).thenReturn( new ArrayList<GridColumn<?>>() {{ add( uiColumn ); }} ); when( uiColumn.getWidth() ).thenReturn( 100.0 ); setupDecisionTable( dtPresenter1, dtView1 ); setupDecisionTable( dtPresenter2, dtView2 ); this.handler = new ColumnHeaderPopOverHandler( modellerPresenter, columnPopOverPresenter ); }
@Test public void testIsCollapsedCellMixedValue() throws Exception { final GridCell<String> cellOne = gridCellWithMockedMergedCellCount("one", 3); final GridCell<String> cellTwo = gridCellWithMockedMergedCellCount("one", 0); final GridCell<String> cellThree = gridCellWithMockedMergedCellCount("one", 0); doReturn(3).when(gridData).getRowCount(); doReturn(cellOne).when(gridData).getCell(0, 0); doReturn(cellTwo).when(gridData).getCell(1, 0); doReturn(cellThree).when(gridData).getCell(2, 0); doReturn(true).when(gridRow).isCollapsed(); Assertions.assertThat(ColumnRenderingStrategyMerged.isCollapsedCellMixedValue(gridData, 2, 0)).isFalse(); }
public void onMerge(final boolean isMerged) { if (isMerged) { final List<GridData.SelectedCell> selectedCells = gridData.getSelectedCells(); final List<GridData.SelectedCell> cloneSelectedCells = new ArrayList<GridData.SelectedCell>(selectedCells); gridData.clearSelections(); for (GridData.SelectedCell cell : cloneSelectedCells) { gridData.selectCells(cell.getRowIndex(), ColumnIndexUtilities.findUiColumnIndex(gridData.getColumns(), cell.getColumnIndex()), 1, 1); } } }
@Override public boolean handleSelection(final GridData model, final int uiHeaderRowIndex, final int uiHeaderColumnIndex, final boolean isShiftKeyDown, final boolean isControlKeyDown) { final List<GridData.SelectedCell> originalSelections = new ArrayList<>(model.getSelectedHeaderCells()); //Get extents of block for Header cell final List<GridColumn<?>> gridColumns = model.getColumns(); final List<GridColumn.HeaderMetaData> headerMetaData = gridColumns.get(uiHeaderColumnIndex).getHeaderMetaData(); final int blockStartColumnIndex = ColumnIndexUtilities.getHeaderBlockStartColumnIndex(gridColumns, headerMetaData.get(uiHeaderRowIndex), uiHeaderRowIndex, uiHeaderColumnIndex); final int blockEndColumnIndex = ColumnIndexUtilities.getHeaderBlockEndColumnIndex(gridColumns, headerMetaData.get(uiHeaderRowIndex), uiHeaderRowIndex, uiHeaderColumnIndex); model.clearSelections(); IntStream.range(blockStartColumnIndex, blockEndColumnIndex + 1) .forEach(blockColumnIndex -> model.selectHeaderCell(uiHeaderRowIndex, blockColumnIndex)); return hasSelectionChanged(model.getSelectedHeaderCells(), originalSelections); } }
private int getLogicalColumnIndex(GridData model) { final int columnIndex = model.getColumns().indexOf(this); return columnIndex != -1 ? model.getColumns().get(columnIndex).getIndex() : -1; } }
private int findMaxUiColumnIndex(final GridData.SelectedCell origin) { int maxUiColumnIndex = ColumnIndexUtilities.findUiColumnIndex(gridModel.getColumns(), origin.getColumnIndex()); final List<GridData.SelectedCell> selectedCells = gridModel.getSelectedCells(); for (GridData.SelectedCell selectedCell : selectedCells) { maxUiColumnIndex = Math.max(ColumnIndexUtilities.findUiColumnIndex(gridModel.getColumns(), selectedCell.getColumnIndex()), maxUiColumnIndex); } return maxUiColumnIndex; }
public DeleteContextEntryCommand(final Context context, final GridData uiModel, final int uiRowIndex, final org.uberfire.mvp.Command canvasOperation) { this.context = context; this.uiModel = uiModel; this.uiRowIndex = uiRowIndex; this.canvasOperation = canvasOperation; this.oldContextEntry = context.getContextEntry().get(uiRowIndex); this.oldUiModelRow = uiModel.getRow(uiRowIndex); }
private boolean canMoveFromDataToHeader(final SelectionExtension direction, final int proposedUiRowIndex) { return direction == SelectionExtension.UP && proposedUiRowIndex < 0 && gridModel.getHeaderRowCount() > 0; }
@Override public boolean isRowDragPermitted(final GridWidgetDnDHandlersState state) { final GridWidgetHandlersOperation operation = state.getOperation(); if (operation == GridWidgetHandlersOperation.ROW_MOVE_PENDING) { final int lastRowIndex = model.getRowCount() - 1; final List<GridRow> rows = state.getActiveGridRows(); return !rows.contains(model.getRow(lastRowIndex)); } return true; }
protected boolean hasAnyHeaderCellSelected() { return getModel().getSelectedHeaderCells().size() > 0; }
public static boolean isMultiRow(final GridData uiModel) { return uiModel.getSelectedCells() .stream() .map(GridData.SelectedCell::getRowIndex) .distinct() .collect(Collectors.toList()) .size() > 1; }
protected boolean selectRightMostCell(final GridWidget gridWidget) { final GridData gridModel = gridWidget.getModel(); final int columnCount = gridModel.getColumnCount(); final GridData.SelectedCell origin = gridModel.getSelectedCellsOrigin(); return gridWidget.selectCell(origin.getRowIndex(), columnCount - 1, false, false); } }
@Override public void onStart(final IAnimation iAnimation, final IAnimationHandle iAnimationHandle) { //Store the rows' target heights for (int i = 0; i < rowCount; i++) { final GridRow row = gridWidget.getModel().getRow(uiRowIndex + i); heights.add(row.peekHeight()); } //Mark cells as expanded gridWidget.getModel().expandCell(uiRowIndex, uiColumnIndex); }