/** * Set the <b>selectedColumn</b> status of the model and select the header cell actually clicked * @param columnIndex */ public void setSelectedColumnAndHeader(int headerRowIndex, int columnIndex) { ((ScenarioGridModel) model).selectColumn(columnIndex); model.selectHeaderCell(headerRowIndex, columnIndex); }
@Test public void testEditHeaderCell() { assertThat(handler.onNodeMouseEvent(gridWidget, relativeLocation, Optional.of(0), Optional.of(1), Optional.empty(), Optional.empty(), event)).isFalse(); verify(uiModel, never()).selectHeaderCell(anyInt(), anyInt()); }
@Test public void testEditHeaderCell() { assertThat(handler.onNodeMouseEvent(gridWidget, relativeLocation, Optional.of(0), Optional.of(1), Optional.empty(), Optional.empty(), event)).isFalse(); verify(uiModel, never()).selectHeaderCell(anyInt(), anyInt()); }
@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); } }
@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); } }
@Test public void testEditWhenHeaderCellSelected() { final GridColumn.HeaderMetaData headerMetaDataC1 = mock(GridColumn.HeaderMetaData.class); final GridColumn.HeaderMetaData headerMetaDataC2 = mock(GridColumn.HeaderMetaData.class); final GridColumn<?> gridColumnOne = mockGridColumn(100.0, Arrays.asList(headerMetaDataC1)); final GridColumn<?> gridColumnTwo = mockGridColumn(100.0, Arrays.asList(headerMetaDataC2)); doReturn(0).when(gridColumnOne).getIndex(); doReturn(1).when(gridColumnTwo).getIndex(); final double secondColumnXCoordinate = gridColumnOne.getWidth() + gridColumnTwo.getWidth() / 2; doReturn(ci).when(gridRendererHelper).getColumnInformation(secondColumnXCoordinate); doReturn(gridColumnOne.getWidth()).when(gridRendererHelper).getColumnOffset(gridColumnTwo); doReturn(gridColumnTwo).when(ci).getColumn(); doReturn(0.0).when(ci).getOffsetX(); doReturn(1).when(ci).getUiColumnIndex(); doReturn(Arrays.asList(gridColumnOne, gridColumnTwo)).when(ri).getAllColumns(); gridWidget.getModel().appendColumn(gridColumnOne); gridWidget.getModel().appendColumn(gridColumnTwo); gridWidget.getModel().selectHeaderCell(0, 1); CellContextUtilities.editSelectedCell(gridWidget); verify(headerMetaDataC1, never()).edit(any(GridBodyCellEditContext.class)); verify(headerMetaDataC2).edit(gridBodyCellEditContextCaptor.capture()); final GridBodyCellEditContext gridBodyCellEditContext = gridBodyCellEditContextCaptor.getValue(); assertThat(gridBodyCellEditContext) .hasFieldOrPropertyWithValue("columnIndex", 1) .hasFieldOrPropertyWithValue("rowIndex", 0); verify(gridWidget, never()).startEditingCell(anyInt(), anyInt()); verify(gridWidget, never()).startEditingCell(any(Point2D.class)); }
@Test public void testEditWhenHeaderCellSelected() { final GridColumn.HeaderMetaData headerMetaDataC1 = mock(GridColumn.HeaderMetaData.class); final GridColumn.HeaderMetaData headerMetaDataC2 = mock(GridColumn.HeaderMetaData.class); final GridColumn<?> gridColumnOne = mockGridColumn(100.0, Arrays.asList(headerMetaDataC1)); final GridColumn<?> gridColumnTwo = mockGridColumn(100.0, Arrays.asList(headerMetaDataC2)); doReturn(0).when(gridColumnOne).getIndex(); doReturn(1).when(gridColumnTwo).getIndex(); final double secondColumnXCoordinate = gridColumnOne.getWidth() + gridColumnTwo.getWidth() / 2; doReturn(ci).when(gridRendererHelper).getColumnInformation(secondColumnXCoordinate); doReturn(gridColumnOne.getWidth()).when(gridRendererHelper).getColumnOffset(gridColumnTwo); doReturn(gridColumnTwo).when(ci).getColumn(); doReturn(0.0).when(ci).getOffsetX(); doReturn(1).when(ci).getUiColumnIndex(); doReturn(Arrays.asList(gridColumnOne, gridColumnTwo)).when(ri).getAllColumns(); gridWidget.getModel().appendColumn(gridColumnOne); gridWidget.getModel().appendColumn(gridColumnTwo); gridWidget.getModel().selectHeaderCell(0, 1); CellContextUtilities.editSelectedCell(gridWidget); verify(headerMetaDataC1, never()).edit(any(GridBodyCellEditContext.class)); verify(headerMetaDataC2).edit(gridBodyCellEditContextCaptor.capture()); final GridBodyCellEditContext gridBodyCellEditContext = gridBodyCellEditContextCaptor.getValue(); assertThat(gridBodyCellEditContext) .hasFieldOrPropertyWithValue("columnIndex", 1) .hasFieldOrPropertyWithValue("rowIndex", 0); verify(gridWidget, never()).startEditingCell(anyInt(), anyInt()); verify(gridWidget, never()).startEditingCell(any(Point2D.class)); }
@Test public void selectCellWithShiftKeyWithHeaderSelected() { uiModel.selectHeaderCell(0, 0); final List<SelectedCell> selectedHeaderCells = uiModel.getSelectedHeaderCells(); assertEquals(1, selectedHeaderCells.size()); assertTrue(selectedHeaderCells.contains(new SelectedCell(0, 0))); strategy.handleSelection(uiModel, 0, 0, true, false); final List<SelectedCell> selectedCells = uiModel.getSelectedCells(); assertEquals(1, selectedCells.size()); assertTrue(selectedCells.contains(new SelectedCell(0, 0))); assertTrue(uiModel.getSelectedHeaderCells().isEmpty()); }
@Test public void selectCellWithControlKeyWithHeaderSelected() { uiModel.selectHeaderCell(0, 0); final List<SelectedCell> selectedHeaderCells = uiModel.getSelectedHeaderCells(); assertEquals(1, selectedHeaderCells.size()); assertTrue(selectedHeaderCells.contains(new SelectedCell(0, 0))); strategy.handleSelection(uiModel, 0, 0, false, true); final List<SelectedCell> selectedCells = uiModel.getSelectedCells(); assertEquals(1, selectedCells.size()); assertTrue(selectedCells.contains(new SelectedCell(0, 0))); assertTrue(uiModel.getSelectedHeaderCells().isEmpty()); } }
@Test public void selectCellWithShiftKeyWithHeaderSelected() { uiModel.selectHeaderCell(0, 0); final List<SelectedCell> selectedHeaderCells = uiModel.getSelectedHeaderCells(); assertEquals(1, selectedHeaderCells.size()); assertTrue(selectedHeaderCells.contains(new SelectedCell(0, 0))); strategy.handleSelection(uiModel, 0, 0, true, false); final List<SelectedCell> selectedCells = uiModel.getSelectedCells(); assertEquals(1, selectedCells.size()); assertTrue(selectedCells.contains(new SelectedCell(0, 0))); assertTrue(uiModel.getSelectedHeaderCells().isEmpty()); }
@Test public void selectCellWithControlKeyWithHeaderSelected() { uiModel.selectHeaderCell(0, 0); final List<SelectedCell> selectedHeaderCells = uiModel.getSelectedHeaderCells(); assertEquals(1, selectedHeaderCells.size()); assertTrue(selectedHeaderCells.contains(new SelectedCell(0, 0))); strategy.handleSelection(uiModel, 0, 0, false, true); final List<SelectedCell> selectedCells = uiModel.getSelectedCells(); assertEquals(1, selectedCells.size()); assertTrue(selectedCells.contains(new SelectedCell(0, 0))); assertTrue(uiModel.getSelectedHeaderCells().isEmpty()); } }
@Test public void selectCellWithShiftKeyWithHeaderSelected() { uiModel.selectHeaderCell(0, 0); final List<SelectedCell> selectedHeaderCells = uiModel.getSelectedHeaderCells(); assertEquals(1, selectedHeaderCells.size()); assertTrue(selectedHeaderCells.contains(new SelectedCell(0, 0))); strategy.handleSelection(uiModel, 0, 0, true, false); final List<SelectedCell> selectedCells = uiModel.getSelectedCells(); assertEquals(2, selectedCells.size()); assertTrue(selectedCells.contains(new SelectedCell(0, 0))); assertTrue(selectedCells.contains(new SelectedCell(0, 1))); assertTrue(uiModel.getSelectedHeaderCells().isEmpty()); }
@Test public void selectCellWithShiftKeyWithHeaderSelected() { uiModel.selectHeaderCell(0, 0); final List<SelectedCell> selectedHeaderCells = uiModel.getSelectedHeaderCells(); assertEquals(1, selectedHeaderCells.size()); assertTrue(selectedHeaderCells.contains(new SelectedCell(0, 0))); strategy.handleSelection(uiModel, 0, 0, true, false); final List<SelectedCell> selectedCells = uiModel.getSelectedCells(); assertEquals(2, selectedCells.size()); assertTrue(selectedCells.contains(new SelectedCell(0, 0))); assertTrue(selectedCells.contains(new SelectedCell(0, 1))); assertTrue(uiModel.getSelectedHeaderCells().isEmpty()); }
@Test public void selectCellWithControlKeyWithHeaderSelected() { uiModel.selectHeaderCell(0, 0); final List<SelectedCell> selectedHeaderCells = uiModel.getSelectedHeaderCells(); assertEquals(1, selectedHeaderCells.size()); assertTrue(selectedHeaderCells.contains(new SelectedCell(0, 0))); strategy.handleSelection(uiModel, 0, 0, false, true); final List<SelectedCell> selectedCells = uiModel.getSelectedCells(); assertEquals(2, selectedCells.size()); assertTrue(selectedCells.contains(new SelectedCell(0, 0))); assertTrue(selectedCells.contains(new SelectedCell(0, 1))); assertTrue(uiModel.getSelectedHeaderCells().isEmpty()); } }
@Test public void selectCellWithControlKeyWithHeaderSelected() { uiModel.selectHeaderCell(0, 0); final List<SelectedCell> selectedHeaderCells = uiModel.getSelectedHeaderCells(); assertEquals(1, selectedHeaderCells.size()); assertTrue(selectedHeaderCells.contains(new SelectedCell(0, 0))); strategy.handleSelection(uiModel, 0, 0, false, true); final List<SelectedCell> selectedCells = uiModel.getSelectedCells(); assertEquals(2, selectedCells.size()); assertTrue(selectedCells.contains(new SelectedCell(0, 0))); assertTrue(selectedCells.contains(new SelectedCell(0, 1))); assertTrue(uiModel.getSelectedHeaderCells().isEmpty()); } }