@Test public void deleteColumn() { BaseGridData data = spy(baseGridData); final BaseGridColumn<String> column = new BaseGridColumn<>(header, columnRenderer, 100.0); data.appendColumn(column); reset(data); data.deleteColumn(column); verify(data, times(2)) .internalRefreshWidth(booleanArgumentCaptor.capture(), optionalDoubleArgumentCaptor.capture()); assertTrue(booleanArgumentCaptor.getAllValues().stream().allMatch(elem -> elem)); assertFalse(optionalDoubleArgumentCaptor.getAllValues().stream().allMatch(OptionalDouble::isPresent)); }
@Test public void testRemoveColumnWhenThereIsNoEqualColumn() { final BaseGridColumn<String> column1 = new BaseGridColumn<>(header, columnRenderer, 25.0); final BaseGridColumn<String> column2 = new BaseGridColumn<>(header, columnRenderer, 50.0); baseGridData.insertColumn(0, column1); baseGridData.insertColumn(1, column2); baseGridData.removeColumn(new BaseGridColumn<String>(header, columnRenderer, 75.0)); final List<GridColumn<?>> columns = baseGridData.getColumns(); assertEquals(2, columns.size()); }
/** * This method <i>set</i> a cell value to the grid <b>without</b> modify underlying model * @param rowIndex * @param columnIndex * @param cellSupplier */ public Range setCellGridOnly(int rowIndex, int columnIndex, Supplier<GridCell<?>> cellSupplier) { checkSimulation(); return super.setCell(rowIndex, columnIndex, cellSupplier); }
@Override @SuppressWarnings("unchecked") public Range setCellValue(final int rowIndex, final int columnIndex, final GridCellValue<?> value) { return doSetCell(rowIndex, columnIndex, (pair) -> { final Optional<BaseGridCell> cell = Optional.ofNullable((BaseGridCell) getCell(pair.getKey(), pair.getValue())); final BaseGridCell c = cell.orElse(new BaseGridCell<>(value)); c.setValue(value); return c; }); }
@Override public void appendColumn(final GridColumn<?> column) { double originalWidth = getWidth(); column.setIndex(columns.size()); columns.add(column); OptionalDouble optionalOriginalWidth = OptionalDouble.of(originalWidth); if (GridColumn.ColumnWidthMode.isAuto(column)) { column.setWidth(calculateInitWidth(column, optionalOriginalWidth)); internalRefreshWidth(true, optionalOriginalWidth); } selectionsManager.onInsertColumn(columns.size() - 1); }
@Test public void testSetCellValueWhenNoExistingGridCell() { final BaseGridColumn<String> column = new BaseGridColumn<>(header, columnRenderer, 25.0); baseGridData.insertColumn(0, column); baseGridData.appendRow(new BaseGridRow()); baseGridData.setCellValue(0, 0, new BaseGridCellValue<>("hello")); assertThat(baseGridData.getCell(0, 0).getValue().getValue()).isEqualTo("hello"); assertThat(baseGridData.getCell(0, 0)).isInstanceOf(BaseGridCell.class); }
columnRenderer, 100.0); this.uiModel = new BaseGridData(); uiModel.appendColumn(uiColumn1); uiModel.appendColumn(uiColumn2); uiModel.appendRow(new BaseGridRow()); uiModel.appendRow(new BaseGridRow()); uiModel.appendRow(new BaseGridRow()); uiModel.getColumns(), new BaseGridRendererHelper.RenderingBlockInformation(uiModel.getColumns(), 0.0, 0.0,
protected boolean internalRefreshWidth(boolean changedNumberOfColumn, OptionalDouble optionalCurrentWidth) { double visibleWidth = getVisibleWidth(); double currentWidth = getWidth() - gridWidthMetadata.fixedWidth; double targetWidth = targetGrossWidth - gridWidthMetadata.fixedWidth; for (GridColumn<?> column : getColumns()) { if (!column.isVisible() || !GridColumn.ColumnWidthMode.isAuto(column)) { continue; newWidth = calculateInitWidth(column, OptionalDouble.empty());
@Test public void calculateInitWidth() { BaseGridData data = spy(baseGridData); double originalWidth = 100; BaseGridColumn<String> column = new BaseGridColumn<>(header, columnRenderer, originalWidth); column.setColumnWidthMode(GridColumn.ColumnWidthMode.FIXED); data.appendColumn(column); assertEquals(originalWidth, data.calculateInitWidth(column, OptionalDouble.empty()), 0.1); data.setVisibleSizeAndRefresh(500, 0); BaseGridColumn<String> column1 = new BaseGridColumn<>(header, columnRenderer, originalWidth); column1.setColumnWidthMode(GridColumn.ColumnWidthMode.AUTO); data.appendColumn(column1); assertEquals(data.getVisibleWidth() - originalWidth, data.calculateInitWidth(column1, OptionalDouble.empty()), 0.1); BaseGridColumn<String> column2 = new BaseGridColumn<>(header, columnRenderer, originalWidth); column2.setColumnWidthMode(GridColumn.ColumnWidthMode.AUTO); data.appendColumn(column2); BaseGridColumn<String> column3 = new BaseGridColumn<>(header, columnRenderer, originalWidth); column3.setColumnWidthMode(GridColumn.ColumnWidthMode.AUTO); data.appendColumn(column3); assertEquals(((data.getVisibleWidth() - originalWidth) / 2), data.calculateInitWidth(column2, OptionalDouble.empty()), 0.1); }
@Test public void testSelectHeaderCellOutOfHeaderRowRange() { final BaseGridColumn<String> column = new BaseGridColumn<>(header, columnRenderer, 100.0); baseGridData.appendColumn(column); assertThat(baseGridData.selectHeaderCell(1, 0).getMaxRowIndex()).isEqualTo(1); assertThat(baseGridData.getSelectedHeaderCells()).isEmpty(); }
@Test public void removeColumn() { BaseGridData data = spy(baseGridData); final BaseGridColumn<String> column = new BaseGridColumn<>(header, columnRenderer, 100.0); data.appendColumn(column); reset(data); data.removeColumn(column); verify(data, times(1)) .internalRefreshWidth(booleanArgumentCaptor.capture(), optionalDoubleArgumentCaptor.capture()); assertTrue(booleanArgumentCaptor.getValue()); assertFalse(optionalDoubleArgumentCaptor.getValue().isPresent()); }
@Test public void appendColumn() { BaseGridData data = spy(baseGridData); final BaseGridColumn<String> column = new BaseGridColumn<>(header, columnRenderer, 100.0); column.setColumnWidthMode(GridColumn.ColumnWidthMode.AUTO); double originalWidth = data.getWidth(); data.appendColumn(column); verify(data, times(1)) .internalRefreshWidth(booleanArgumentCaptor.capture(), optionalDoubleArgumentCaptor.capture()); assertTrue(booleanArgumentCaptor.getValue()); assertTrue(optionalDoubleArgumentCaptor.getValue().isPresent()); assertEquals(originalWidth, optionalDoubleArgumentCaptor.getValue().getAsDouble(), 0.1); reset(data); final BaseGridColumn<String> columnFixed = new BaseGridColumn<>(header, columnRenderer, 100.0); data.appendColumn(columnFixed); verify(data, never()).internalRefreshWidth(anyBoolean(), any()); }
@Test public void testGetHeaderRowCountWithColumnsWithHeaderMetaData() { final BaseGridColumn<String> column1 = new BaseGridColumn<>(header, columnRenderer, 100.0); final BaseGridColumn<String> column2 = new BaseGridColumn<>(Collections.emptyList(), columnRenderer, 100.0); baseGridData.appendColumn(column1); baseGridData.appendColumn(column2); assertEquals(1, baseGridData.getHeaderRowCount()); }
private GridWidget makeGridWidget() { final GridData uiModel = new BaseGridData(); return new BaseGridWidget(uiModel, gridLayer, gridLayer, renderer) { @Override public void select() { //Don't render Selector for tests } }; }
@Test public void testDeleteColumn() { final BaseGridColumn<String> column1 = new BaseGridColumn<>(header, columnRenderer, 100.0); final BaseGridColumn<String> column2 = new BaseGridColumn<>(header, columnRenderer, 100.0); baseGridData.insertColumn(0, column1); baseGridData.insertColumn(0, column2); baseGridData.deleteColumn(column1); final List<GridColumn<?>> columns = baseGridData.getColumns(); assertSame(column2, columns.get(0)); assertEquals(1, columns.size()); }
protected double getWidth() { return getColumns().stream().filter(GridColumn::isVisible).mapToDouble(GridColumn::getWidth).sum(); }
@Test public void testGetUiHeaderRowIndex() { final BaseGridData model = new BaseGridData(); columns.forEach(col -> model.appendColumn(col)); assertEquals(0, ColumnIndexUtilities.getMaxUiHeaderRowIndexOfColumn(model, 0)); columns.get(1).getHeaderMetaData().add(new BaseHeaderMetaData("col1", "second-row")); assertEquals(1, ColumnIndexUtilities.getMaxUiHeaderRowIndexOfColumn(model, 1)); } }
@Test public void getWidth() { BaseGridData data = spy(baseGridData); double previous = data.getWidth(); BaseGridColumn<String> column = new BaseGridColumn<>(header, columnRenderer, 100.0); column.setVisible(false); data.appendColumn(column); double updated = data.getWidth(); assertEquals(previous, updated, 0.1); }
setHeaderRowCount( 2 ); }}; uiModel.appendColumn( uiColumn1 ); uiModel.appendColumn( uiColumn2 ); uiModel.getColumns(), new BaseGridRendererHelper.RenderingBlockInformation( new ArrayList<GridColumn<?>>() {{
/** * This method <i>set</i> a cell value to the grid <b>and</b> to the underlying model * @param rowIndex * @param columnIndex * @param cellSupplier */ @Override public Range setCell(int rowIndex, int columnIndex, Supplier<GridCell<?>> cellSupplier) { checkSimulation(); Range toReturn = super.setCell(rowIndex, columnIndex, cellSupplier); try { Optional<?> optionalValue = getCellValue(getCell(rowIndex, columnIndex)); Object rawValue = optionalValue.orElse(null); String cellValue = (rawValue instanceof String) ? (String) rawValue : null; Scenario scenarioByIndex = simulation.getScenarioByIndex(rowIndex); FactMapping factMappingByIndex = simulation.getSimulationDescriptor().getFactMappingByIndex(columnIndex); FactIdentifier factIdentifier = factMappingByIndex.getFactIdentifier(); ExpressionIdentifier expressionIdentifier = factMappingByIndex.getExpressionIdentifier(); scenarioByIndex.addOrUpdateMappingValue(factIdentifier, expressionIdentifier, cellValue); } catch (Throwable t) { toReturn = super.deleteCell(rowIndex, columnIndex); eventBus.fireEvent(new ScenarioGridReloadEvent()); } return toReturn; }