@Before @SuppressWarnings("unchecked") public void setup() { super.setUp(); this.clickEvent = new NodeMouseClickEvent(nativeClickEvent); this.doubleClickEvent = new NodeMouseDoubleClickEvent(nativeDoubleClickEvent); when(scenarioGridMock.getRendererHelper()).thenReturn(rendererHelper); when(scenarioGridMock.getViewport()).thenReturn(viewportMock); when(scenarioGridMock.getComputedLocation()).thenReturn(computedLocation); when(rendererHelper.getRenderingInformation()).thenReturn(renderingInformation); when(rendererHelper.getColumnInformation(anyDouble())).thenReturn(columnInformation); when(columnInformation.getColumn()).thenReturn((GridColumn) gridColumnMock); when(renderingInformation.getBodyBlockInformation()).thenReturn(renderingBlockInformation); when(renderingInformation.getFloatingBlockInformation()).thenReturn(renderingBlockInformation); when(informationHeaderMetaDataMock.getSupportedEditAction()).thenReturn(GridCellEditAction.SINGLE_CLICK); this.handler = spy(new ScenarioSimulationGridWidgetMouseEventHandler()); }
@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 @SuppressWarnings("unchecked") public void onContextMenu_CellContextMenu() { final GuidedDecisionTableView.Presenter dtPresenter = makeDecisionTable(); final GridData uiModel = dtPresenter.getView().getModel(); final GridColumn uiColumn = new BaseGridColumn(mock(GridColumn.HeaderMetaData.class), mock(GridColumnRenderer.class), 100.0); uiModel.appendColumn(uiColumn); when(columnInformation.getColumn()).thenReturn(uiColumn); when(modellerPresenter.getAvailableDecisionTables()).thenReturn(new HashSet<GuidedDecisionTableView.Presenter>() {{ add(dtPresenter); }}); final ContextMenuHandler handler = contextMenuSupport.getContextMenuHandler(modellerPresenter); handler.onContextMenu(event); verify(rowContextMenu, never()).show(any(Integer.class), any(Integer.class)); verify(cellContextMenu, times(1)).show(any(Integer.class), any(Integer.class)); }
@Test public void testMakeRenderContextNoBlock() { final List<GridColumn<?>> allColumns = new ArrayList<>(); final GridColumn<?> uiColumn = mockGridColumn(100.0); allColumns.add(uiColumn); doReturn(allColumns).when(ri).getAllColumns(); doReturn(uiColumn).when(ci).getColumn(); doReturn(0.0).when(ci).getOffsetX(); doReturn(0).when(ci).getUiColumnIndex(); final GridBodyCellRenderContext context = CellContextUtilities.makeRenderContext(gridWidget, ri, ci, rp, 0); assertNotNull(context); assertEquals(0.0, context.getAbsoluteCellX(), 0.0); assertEquals(100.0, context.getCellWidth(), 0.0); }
@Test public void testMakeRenderContextNoBlock() { final List<GridColumn<?>> allColumns = new ArrayList<>(); final GridColumn<?> uiColumn = mockGridColumn(100.0); allColumns.add(uiColumn); doReturn(allColumns).when(ri).getAllColumns(); doReturn(uiColumn).when(ci).getColumn(); doReturn(0.0).when(ci).getOffsetX(); doReturn(0).when(ci).getUiColumnIndex(); final GridBodyCellRenderContext context = CellContextUtilities.makeRenderContext(scenarioGridMock, ri, ci, rp, 0); assertNotNull(context); assertEquals(0.0, context.getAbsoluteCellX(), 0.0); assertEquals(100.0, context.getCellWidth(), 0.0); }
@Test @SuppressWarnings("unchecked") public void onContextMenu_RowContextMenu() { final GuidedDecisionTableView.Presenter dtPresenter = makeDecisionTable(); final GridData uiModel = dtPresenter.getView().getModel(); final GridColumn uiColumn = new RowNumberColumn(); uiModel.appendColumn(uiColumn); when(columnInformation.getColumn()).thenReturn(uiColumn); when(modellerPresenter.getAvailableDecisionTables()).thenReturn(new HashSet<GuidedDecisionTableView.Presenter>() {{ add(dtPresenter); }}); final ContextMenuHandler handler = contextMenuSupport.getContextMenuHandler(modellerPresenter); handler.onContextMenu(event); verify(rowContextMenu, times(1)).show(any(Integer.class), any(Integer.class)); verify(cellContextMenu, never()).show(any(Integer.class), any(Integer.class)); }
@Test public void testMakeRenderContextNoBlock() { final List<GridColumn<?>> allColumns = new ArrayList<>(); final GridColumn<?> uiColumn = mockGridColumn(100.0); allColumns.add(uiColumn); doReturn(allColumns).when(ri).getAllColumns(); doReturn(uiColumn).when(ci).getColumn(); doReturn(0.0).when(ci).getOffsetX(); doReturn(0).when(ci).getUiColumnIndex(); final GridBodyCellRenderContext context = CellContextUtilities.makeRenderContext(gridWidget, ri, ci, rp, 0); assertNotNull(context); assertEquals(0.0, context.getAbsoluteCellX(), 0.0); assertEquals(100.0, context.getCellWidth(), 0.0); }
@Override public boolean startEditingCell(final Point2D rp) { //Get row information final Integer uiRowIndex = CoordinateUtilities.getUiRowIndex(gridWidget, rp.getY()); if (uiRowIndex == null) { return false; } //Get column information final Point2D gridWidgetComputedLocation = gridWidget.getComputedLocation(); final BaseGridRendererHelper rendererHelper = gridWidget.getRendererHelper(); final BaseGridRendererHelper.ColumnInformation ci = rendererHelper.getColumnInformation(rp.getX()); final GridColumn<?> column = ci.getColumn(); if (column == null) { return false; } return edit(uiRowIndex, ci, Optional.of(rp.add(gridWidgetComputedLocation))); }
@Test @SuppressWarnings("unchecked") public void onContextMenuWithoutCellSelectionManager() { final GuidedDecisionTableView.Presenter dtPresenter = makeDecisionTable(); final GridData uiModel = dtPresenter.getView().getModel(); final GridColumn uiColumn = new RowNumberColumn(); uiModel.appendColumn(uiColumn); when(columnInformation.getColumn()).thenReturn(uiColumn); when(modellerPresenter.getAvailableDecisionTables()).thenReturn(new HashSet<GuidedDecisionTableView.Presenter>() {{ add(dtPresenter); }}); final GridCell uiCell = mock(GridCell.class); when(uiModel.getCell(any(Integer.class), any(Integer.class))).thenReturn(uiCell); when(uiCell.getSelectionStrategy()).thenReturn(null); final ContextMenuHandler handler = contextMenuSupport.getContextMenuHandler(modellerPresenter); handler.onContextMenu(event); verify(layer, never()).batch(); }
@Test @SuppressWarnings("unchecked") public void testGetUiHeaderRowIndexRow1() { point = new Point2D(COLUMN_WIDTH / 2, gridRenderer.getHeaderRowHeight() + 5.0); setupGridWidget(); final List<GridColumn.HeaderMetaData> headerMetaData = new ArrayList<>(); headerMetaData.add(new BaseHeaderMetaData("first")); headerMetaData.add(new BaseHeaderMetaData("second")); final GridColumn uiColumn = new BaseGridColumn<>(headerMetaData, gridColumnRenderer, COLUMN_WIDTH); gridData.appendColumn(uiColumn); doReturn(uiColumn).when(ci).getColumn(); final Integer uiHeaderRowIndex = CoordinateUtilities.getUiHeaderRowIndex(view, point); assertNotNull(uiHeaderRowIndex); assertEquals(1, (int) uiHeaderRowIndex); }
/** * Retrieve the <code>GridColumn</code> of a <code>GridWidget</code> at a given point x. * It returns <code>null</code> if none is present at that position. * @param gridWidget * @param cx * @return */ public static GridColumn<?> getGridColumn(GridWidget gridWidget, double cx) { //Get column information final BaseGridRendererHelper rendererHelper = gridWidget.getRendererHelper(); final BaseGridRendererHelper.RenderingInformation ri = rendererHelper.getRenderingInformation(); if (ri == null) { return null; } final BaseGridRendererHelper.ColumnInformation ci = rendererHelper.getColumnInformation(cx); return ci.getColumn(); }
@Override public boolean startEditingCell(final Point2D rp) { //Get row information final Integer uiRowIndex = CoordinateUtilities.getUiRowIndex(gridWidget, rp.getY()); if (uiRowIndex == null) { return false; } //Get column information final Point2D gridWidgetComputedLocation = gridWidget.getComputedLocation(); final BaseGridRendererHelper rendererHelper = gridWidget.getRendererHelper(); final BaseGridRendererHelper.ColumnInformation ci = rendererHelper.getColumnInformation(rp.getX()); final GridColumn<?> column = ci.getColumn(); if (column == null) { return false; } return edit(uiRowIndex, ci, Optional.of(rp.add(gridWidgetComputedLocation))); }
@Test @SuppressWarnings("unchecked") public void testGetUiHeaderRowIndexRow1() { point = new Point2D(COLUMN_WIDTH / 2, gridRenderer.getHeaderRowHeight() + 5.0); setupGridWidget(); final List<GridColumn.HeaderMetaData> headerMetaData = new ArrayList<>(); headerMetaData.add(new BaseHeaderMetaData("first")); headerMetaData.add(new BaseHeaderMetaData("second")); final GridColumn uiColumn = new BaseGridColumn<>(headerMetaData, gridColumnRenderer, COLUMN_WIDTH); gridData.appendColumn(uiColumn); doReturn(uiColumn).when(ci).getColumn(); final Integer uiHeaderRowIndex = CoordinateUtilities.getUiHeaderRowIndex(view, point); assertNotNull(uiHeaderRowIndex); assertEquals(1, (int) uiHeaderRowIndex); }
@Test @SuppressWarnings("unchecked") public void testGetUiHeaderRowIndexRow0() { point = new Point2D(COLUMN_WIDTH / 2, gridRenderer.getHeaderRowHeight() - 5.0); setupGridWidget(); final GridColumn uiColumn = new BaseGridColumn<>(new BaseHeaderMetaData("first"), gridColumnRenderer, COLUMN_WIDTH); gridData.appendColumn(uiColumn); doReturn(uiColumn).when(ci).getColumn(); final Integer uiHeaderRowIndex = CoordinateUtilities.getUiHeaderRowIndex(view, point); assertNotNull(uiHeaderRowIndex); assertEquals(0, (int) uiHeaderRowIndex); }
@Test @SuppressWarnings("unchecked") public void testGetUiHeaderRowIndexRow0() { point = new Point2D(COLUMN_WIDTH / 2, gridRenderer.getHeaderRowHeight() - 5.0); setupGridWidget(); final GridColumn uiColumn = new BaseGridColumn<>(new BaseHeaderMetaData("first"), gridColumnRenderer, COLUMN_WIDTH); gridData.appendColumn(uiColumn); doReturn(uiColumn).when(ci).getColumn(); final Integer uiHeaderRowIndex = CoordinateUtilities.getUiHeaderRowIndex(view, point); assertNotNull(uiHeaderRowIndex); assertEquals(0, (int) uiHeaderRowIndex); }
@Test @SuppressWarnings("unchecked") public void testGetUiHeaderRowIndexHeaderMaxY() { point = new Point2D(COLUMN_WIDTH / 2, gridRenderer.getHeaderHeight() + 5.0); setupGridWidget(); final GridColumn uiColumn = new BaseGridColumn<>(new BaseHeaderMetaData("first"), gridColumnRenderer, COLUMN_WIDTH); gridData.appendColumn(uiColumn); doReturn(uiColumn).when(ci).getColumn(); final Integer uiHeaderRowIndex = CoordinateUtilities.getUiHeaderRowIndex(view, point); assertNull(uiHeaderRowIndex); }
@Test @SuppressWarnings("unchecked") public void testGetUiHeaderRowIndexHeaderMinY() { point = new Point2D(COLUMN_WIDTH / 2, -5.0); setupGridWidget(); final GridColumn uiColumn = new BaseGridColumn<>(new BaseHeaderMetaData("first"), gridColumnRenderer, COLUMN_WIDTH); gridData.appendColumn(uiColumn); doReturn(uiColumn).when(ci).getColumn(); final Integer uiHeaderRowIndex = CoordinateUtilities.getUiHeaderRowIndex(view, point); assertNull(uiHeaderRowIndex); }
@Test public void testHandleHeaderCell_NullColumn() { when(columnInformation.getColumn()).thenReturn(null); assertFalse(handler.handleHeaderCell(scenarioGridMock, relativeLocation, 0, 0, clickEvent)); }
@Test @SuppressWarnings("unchecked") public void testGetUiHeaderRowIndexHeaderMinY() { point = new Point2D(COLUMN_WIDTH / 2, -5.0); setupGridWidget(); final GridColumn uiColumn = new BaseGridColumn<>(new BaseHeaderMetaData("first"), gridColumnRenderer, COLUMN_WIDTH); gridData.appendColumn(uiColumn); doReturn(uiColumn).when(ci).getColumn(); final Integer uiHeaderRowIndex = CoordinateUtilities.getUiHeaderRowIndex(view, point); assertNull(uiHeaderRowIndex); }
@Test @SuppressWarnings("unchecked") public void testGetUiHeaderRowIndexHeaderMaxY() { point = new Point2D(COLUMN_WIDTH / 2, gridRenderer.getHeaderHeight() + 5.0); setupGridWidget(); final GridColumn uiColumn = new BaseGridColumn<>(new BaseHeaderMetaData("first"), gridColumnRenderer, COLUMN_WIDTH); gridData.appendColumn(uiColumn); doReturn(uiColumn).when(ci).getColumn(); final Integer uiHeaderRowIndex = CoordinateUtilities.getUiHeaderRowIndex(view, point); assertNull(uiHeaderRowIndex); }