currentUiColumnIndex); currentUiColumnIndex = uiColumnIndex; currentRange = new SelectedRange(scRowIndex, uiColumnIndex, 1, 1); } else if (scRowIndex == currentRange.getUiRowIndex() + currentRange.getHeight()) { currentRange.setHeight(currentRange.getHeight() + 1); } else { storeSelectedRange(orderedSelectedRanges, currentRange, uiColumnIndex); currentRange = new SelectedRange(scRowIndex, uiColumnIndex, 1, while (srIterator.hasNext()) { final SelectedRange mergeRange = srIterator.next(); if (selectedRange.getUiRowIndex() == mergeRange.getUiRowIndex()) { if (selectedRange.getUiColumnIndex() + selectedRange.getWidth() == mergeRange.getUiColumnIndex()) { if (selectedRange.getHeight() == mergeRange.getHeight()) { selectedRange.setWidth(selectedRange.getWidth() + 1); srIterator.remove();
Function<SelectedRange, Double> getBodySelectionHeightStrategy() { return selectedRange -> IntStream.range(0, selectedRange.getHeight()) .mapToObj(rowIndex -> model.getRow(selectedRange.getUiRowIndex() + rowIndex)) .mapToDouble(GridRow::getHeight) .sum(); }
double getSelectedRangeWidth(final List<GridColumn<?>> blockColumns, final int minVisibleUiColumnIndex, final SelectedRange selectedRange) { double width = 0; for (int columnIndex = 0; columnIndex < selectedRange.getWidth(); columnIndex++) { final int relativeColumnIndex = columnIndex + selectedRange.getUiColumnIndex() - minVisibleUiColumnIndex; final GridColumn<?> uiColumn = blockColumns.get(relativeColumnIndex); if (uiColumn.isVisible()) { width = width + uiColumn.getWidth(); } } return width; }
final int rangeOriginUiColumnIndex = selectedRange.getUiColumnIndex(); final int rangeOriginUiRowIndex = selectedRange.getUiRowIndex(); final int rangeUiWidth = selectedRange.getWidth(); final int rangeUiHeight = selectedRange.getHeight(); if (rangeOriginUiRowIndex < minVisibleUiRowIndex) { final int dy = minVisibleUiRowIndex - rangeOriginUiRowIndex; _selectedRange = new SelectedRange(selectedRange.getUiRowIndex() + dy, selectedRange.getUiColumnIndex(), selectedRange.getWidth(), selectedRange.getHeight() - dy); if (cs != null) { final double csx = rendererHelper.getColumnOffset(blockColumns, _selectedRange.getUiColumnIndex() - minVisibleUiColumnIndex); final double csy = selectedCellsYOffsetStrategy.apply(_selectedRange, minVisibleUiRowIndex); cs.setX(csx + gridLineStrokeWidth + (selectorStrokeWidth / 2))
@Test public void testBodySelectionYOffsetStrategyRow0() { assertBodySelectionYOffsetStrategy(new SelectedRange(0, 0), 0); }
Function<SelectedRange, Double> getHeaderSelectionHeightStrategy() { return selectedRange -> { final double headerHeight = getRenderer().getHeaderHeight(); final double headerRowsYOffset = renderingInformation.getHeaderRowsYOffset(); final GridColumn<?> uiColumn = model.getColumns().get(selectedRange.getUiColumnIndex()); final List<GridColumn.HeaderMetaData> headerMetaData = uiColumn.getHeaderMetaData(); final double headerRowHeight = (headerHeight - headerRowsYOffset) / headerMetaData.size(); return selectedRange.getHeight() * headerRowHeight; }; }
BiFunction<SelectedRange, Integer, Double> getHeaderSelectionYOffsetStrategy() { return (selectedRange, minVisibleUiRowIndex) -> { final double headerRowsYOffset = renderingInformation.getHeaderRowsYOffset(); final double uiRowOffset = renderer.getHeaderRowHeight() * selectedRange.getUiRowIndex(); return headerRowsYOffset + uiRowOffset; }; }
final int rangeOriginUiColumnIndex = selectedRange.getUiColumnIndex(); final int rangeOriginUiRowIndex = selectedRange.getUiRowIndex(); final int rangeUiWidth = selectedRange.getWidth(); final int rangeUiHeight = selectedRange.getHeight(); if (rangeOriginUiRowIndex < minVisibleUiRowIndex) { final int dy = minVisibleUiRowIndex - rangeOriginUiRowIndex; _selectedRange = new SelectedRange(selectedRange.getUiRowIndex() + dy, selectedRange.getUiColumnIndex(), selectedRange.getWidth(), selectedRange.getHeight() - dy); if (cs != null) { final double csx = rendererHelper.getColumnOffset(blockColumns, _selectedRange.getUiColumnIndex() - minVisibleUiColumnIndex); final double csy = selectedCellsYOffsetStrategy.apply(_selectedRange, minVisibleUiRowIndex); cs.setX(csx + gridLineStrokeWidth + (selectorStrokeWidth / 2))
@Test public void testBodySelectionYOffsetStrategyRow1() { assertBodySelectionYOffsetStrategy(new SelectedRange(1, 0), ROW_HEIGHT); }
Function<SelectedRange, Double> getHeaderSelectionHeightStrategy() { return selectedRange -> { final double headerHeight = getRenderer().getHeaderHeight(); final double headerRowsYOffset = renderingInformation.getHeaderRowsYOffset(); final GridColumn<?> uiColumn = model.getColumns().get(selectedRange.getUiColumnIndex()); final List<GridColumn.HeaderMetaData> headerMetaData = uiColumn.getHeaderMetaData(); final double headerRowHeight = (headerHeight - headerRowsYOffset) / headerMetaData.size(); return selectedRange.getHeight() * headerRowHeight; }; }
Function<SelectedRange, Double> getBodySelectionHeightStrategy() { return selectedRange -> IntStream.range(0, selectedRange.getHeight()) .mapToObj(rowIndex -> model.getRow(selectedRange.getUiRowIndex() + rowIndex)) .mapToDouble(GridRow::getHeight) .sum(); }
double getSelectedRangeWidth(final List<GridColumn<?>> blockColumns, final int minVisibleUiColumnIndex, final SelectedRange selectedRange) { double width = 0; for (int columnIndex = 0; columnIndex < selectedRange.getWidth(); columnIndex++) { final int relativeColumnIndex = columnIndex + selectedRange.getUiColumnIndex() - minVisibleUiColumnIndex; final GridColumn<?> uiColumn = blockColumns.get(relativeColumnIndex); if (uiColumn.isVisible()) { width = width + uiColumn.getWidth(); } } return width; }
BiFunction<SelectedRange, Integer, Double> getBodySelectionYOffsetStrategy() { return (selectedRange, minVisibleUiRowIndex) -> { final double uiRowOffset = rendererHelper.getRowOffset(selectedRange.getUiRowIndex()); final double uiMinVisibleRowOffset = rendererHelper.getRowOffset(minVisibleUiRowIndex); return uiRowOffset - uiMinVisibleRowOffset; }; }
assertNotNull(selectedRange); assertEquals(selectionColumnIndex, selectedRange.getUiColumnIndex()); assertEquals(minVisibleRowIndex, selectedRange.getUiRowIndex()); assertEquals(selectionColumnCount, selectedRange.getWidth()); assertEquals(maxVisibleRowIndex - minVisibleRowIndex + 1, selectedRange.getHeight());
currentUiColumnIndex); currentUiColumnIndex = uiColumnIndex; currentRange = new SelectedRange(scRowIndex, uiColumnIndex, 1, 1); } else if (scRowIndex == currentRange.getUiRowIndex() + currentRange.getHeight()) { currentRange.setHeight(currentRange.getHeight() + 1); } else { storeSelectedRange(orderedSelectedRanges, currentRange, uiColumnIndex); currentRange = new SelectedRange(scRowIndex, uiColumnIndex, 1, while (srIterator.hasNext()) { final SelectedRange mergeRange = srIterator.next(); if (selectedRange.getUiRowIndex() == mergeRange.getUiRowIndex()) { if (selectedRange.getUiColumnIndex() + selectedRange.getWidth() == mergeRange.getUiColumnIndex()) { if (selectedRange.getHeight() == mergeRange.getHeight()) { selectedRange.setWidth(selectedRange.getWidth() + 1); srIterator.remove();
@Test public void testBodySelectionYOffsetStrategyRow0() { assertBodySelectionYOffsetStrategy(new SelectedRange(0, 0), 0); }
BiFunction<SelectedRange, Integer, Double> getHeaderSelectionYOffsetStrategy() { return (selectedRange, minVisibleUiRowIndex) -> { final double headerRowsYOffset = renderingInformation.getHeaderRowsYOffset(); final double uiRowOffset = renderer.getHeaderRowHeight() * selectedRange.getUiRowIndex(); return headerRowsYOffset + uiRowOffset; }; }
assertNotNull(selectedRange); assertEquals(selectionColumnIndex, selectedRange.getUiColumnIndex()); assertEquals(minVisibleRowIndex, selectedRange.getUiRowIndex()); assertEquals(selectionColumnCount, selectedRange.getWidth()); assertEquals(maxVisibleRowIndex - minVisibleRowIndex + 1, selectedRange.getHeight());
@SuppressWarnings("unchecked") private void assertHeaderSelectionYOffsetStrategy(final double expectedHeaderYOffset) { mockGridRendering(expectedHeaderYOffset, BaseGridWidgetRenderingTestUtils.HEADER_HEIGHT, 0); final BiFunction<SelectedRange, Integer, Double> strategy = gridWidget.getHeaderSelectionYOffsetStrategy(); final SelectedRange selectedRange = new SelectedRange(1, 0); assertEquals(expectedHeaderYOffset, strategy.apply(selectedRange, 1), 0.0); }
BiFunction<SelectedRange, Integer, Double> getBodySelectionYOffsetStrategy() { return (selectedRange, minVisibleUiRowIndex) -> { final double uiRowOffset = rendererHelper.getRowOffset(selectedRange.getUiRowIndex()); final double uiMinVisibleRowOffset = rendererHelper.getRowOffset(minVisibleUiRowIndex); return uiRowOffset - uiMinVisibleRowOffset; }; }