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; }
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; }
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> 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; }; }
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);
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);
final int rangeOriginUiColumnIndex = selectedRange.getUiColumnIndex(); final int rangeOriginUiRowIndex = selectedRange.getUiRowIndex(); final int rangeUiWidth = selectedRange.getWidth(); 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))
final int rangeOriginUiColumnIndex = selectedRange.getUiColumnIndex(); final int rangeOriginUiRowIndex = selectedRange.getUiRowIndex(); final int rangeUiWidth = selectedRange.getWidth(); 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))
assertNotNull(selectedRange); assertEquals(selectionColumnIndex, selectedRange.getUiColumnIndex()); assertEquals(minVisibleRowIndex, selectedRange.getUiRowIndex());
assertNotNull(selectedRange); assertEquals(selectionColumnIndex, selectedRange.getUiColumnIndex()); assertEquals(minVisibleRowIndex, selectedRange.getUiRowIndex());