@Override public void execute() { select(gridWidget); } });
@Override public void removeDecisionTable(final GuidedDecisionTableView gridWidget, final Command afterRemovalCommand) { if (gridWidget == null) { return; } final Command remove = () -> { gridLayer.remove(gridWidget); afterRemovalCommand.execute(); gridLayer.batch(); }; if (gridLayer.isGridPinned()) { final GridPinnedModeManager.PinnedContext context = gridLayer.getPinnedContext(); if (gridWidget.equals(context.getGridWidget())) { gridLayer.exitPinnedMode(remove); } } else { remove.execute(); } }
@Override public void execute() { DefaultGridLayer.this.draw(); } };
@Override public void selectLinkedColumn(final GridColumn<?> selectedGridColumn) { final GridWidget gridWidget = getLinkedGridWidget(selectedGridColumn); if (gridWidget == null) { return; } if (isGridPinned()) { flipToGridWidget(gridWidget); } else { scrollToGridWidget(gridWidget); } }
@Override public void refreshGridWidgetConnectors() { for (Line line : gridWidgetConnectors.values()) { remove(line); } gridWidgetConnectors.clear(); addGridWidgetConnectors(); }
private void removeGridWidget(final IPrimitive<?> child, final IPrimitive<?>... children) { final List<IPrimitive<?>> all = new ArrayList<IPrimitive<?>>(); all.add(child); all.addAll(Arrays.asList(children)); for (IPrimitive<?> c : all) { if (c instanceof GridWidget) { final GridWidget gridWidget = (GridWidget) c; deregister(gridWidget); explicitGridWidgets.remove(gridWidget); removeGridWidgetConnectors(gridWidget); } } }
@Test public void checkFlipToGridWidgetWhenNotPinned() { final GridWidget gridWidget = makeGridWidget(); this.gridLayer.add(gridWidget); gridLayer.flipToGridWidget(gridWidget); verify(gridLayer, never()).updatePinnedContext(eq(gridWidget)); verify(gridLayer, never()).batch(any(GridLayerRedrawManager.PrioritizedCommand.class)); }
@Test public void enterKeyEditsCells() { when(layer.getGridWidgets()).thenReturn(gridWidgets); when(gridWidget1.isSelected()).thenReturn(true); when(event.getNativeKeyCode()).thenReturn(KeyCodes.KEY_ENTER); gridWidget1Data.selectCell(0, 0); handler.onKeyDown(event); verify(gridWidget1, times(1)).startEditingCell(eq(0), eq(0)); verify(layer, never()).draw(); verify(keyboardOperationEditCell, times(1)).perform(eq(gridWidget1), eq(false), eq(false)); }
@Test public void testMinBoundXWhenVisibleBoundsHasTheMinimumValue() { final BaseBounds visibleBounds = makeMinBounds(); doReturn(true).when(gridLienzoScrollBounds).hasVisibleBounds(); doReturn(getGridWidgets()).when(defaultGridLayer).getGridWidgets(); doReturn(visibleBounds).when(defaultGridLayer).getVisibleBounds(); assertEquals(visibleBounds.getX(), gridLienzoScrollBounds.minBoundX(), 0); }
@Override public void addDecisionTable(final GuidedDecisionTableView gridWidget) { //Ensure the first Decision Table is visible if (gridLayer.getGridWidgets().isEmpty()) { final Point2D translation = getTranslation(gridWidget); final Transform t = gridLayer.getViewport().getTransform(); t.translate(translation.getX(), translation.getY()); } gridLayer.add(gridWidget); gridLayer.batch(); }
@Test @SuppressWarnings("unchecked") public void testDrawPreservesExplicitGridWidgets() { final GridWidget gridWidget1 = mock(GridWidget.class); final GridWidget gridWidget2 = mock(GridWidget.class); when(gridWidget1.asNode()).thenReturn(mock(Node.class)); when(gridWidget1.getModel()).thenReturn(new BaseGridData()); gridLayer.add(gridWidget1); gridLayer.register(gridWidget2); assertThat(gridLayer.getGridWidgets().size()).isEqualTo(2); assertThat(gridLayer.getGridWidgets()).containsOnly(gridWidget1, gridWidget2); gridLayer.draw(); assertThat(gridLayer.getGridWidgets().size()).isEqualTo(1); assertThat(gridLayer.getGridWidgets()).containsOnly(gridWidget1); } }
@Test @SuppressWarnings("unchecked") public void testDeregisterAsPrimitive() { final GridWidget gridWidget1 = mock(GridWidget.class); final GridWidget gridWidget2 = mock(GridWidget.class); when(gridWidget2.asNode()).thenReturn(mock(Node.class)); when(gridWidget2.getModel()).thenReturn(new BaseGridData()); gridLayer.register(gridWidget1); gridLayer.register(gridWidget2); assertThat(gridLayer.getGridWidgets().size()).isEqualTo(2); assertThat(gridLayer.getGridWidgets()).contains(gridWidget1, gridWidget2); gridLayer.deregister(gridWidget1); assertThat(gridLayer.getGridWidgets().size()).isEqualTo(1); assertThat(gridLayer.getGridWidgets()).contains(gridWidget2); gridLayer.remove(gridWidget2); assertThat(gridLayer.getGridWidgets()).isEmpty(); }
@Test @SuppressWarnings("unchecked") public void testRegisterAndAddAsPrimitive() { final GridWidget gridWidget1 = mock(GridWidget.class); final GridWidget gridWidget2 = mock(GridWidget.class); when(gridWidget1.asNode()).thenReturn(mock(Node.class)); when(gridWidget1.getModel()).thenReturn(new BaseGridData()); gridLayer.add(gridWidget1); assertThat(gridLayer.getGridWidgets().size()).isEqualTo(1); assertThat(gridLayer.getGridWidgets()).contains(gridWidget1); gridLayer.register(gridWidget2); assertThat(gridLayer.getGridWidgets().size()).isEqualTo(2); assertThat(gridLayer.getGridWidgets()).contains(gridWidget1, gridWidget2); }
@Test public void checkScrollToGridWidgetWhenPinned() { final GridWidget gridWidget = makeGridWidget(); this.gridLayer.add(gridWidget); gridLayer.enterPinnedMode(gridWidget, new GridLayerRedrawManager.PrioritizedCommand(0) { @Override public void execute() { //Do nothing } }); gridLayer.scrollToGridWidget(gridWidget); verify(gridLayer, never()).select(eq(gridWidget)); }
@Override public void select(final GridWidget selectedGridWidget) { boolean selectionChanged = false; for (GridWidget gridWidget : getGridWidgets()) { if (gridWidget.isSelected()) { if (!gridWidget.equals(selectedGridWidget)) { selectionChanged = true; gridWidget.deselect(); } } else if (gridWidget.equals(selectedGridWidget)) { selectionChanged = true; gridWidget.select(); } } if (selectionChanged) { batch(); } }
@Test public void checkScrollToGridWidgetWhenNotPinned() { final GridWidget gridWidget = makeGridWidget(); this.gridLayer.add(gridWidget); gridLayer.scrollToGridWidget(gridWidget); verify(gridLayer, times(1)).select(eq(gridWidget)); }
@Test public void testDeregister() { final GridWidget gridWidget1 = mock(GridWidget.class); final GridWidget gridWidget2 = mock(GridWidget.class); gridLayer.register(gridWidget1); gridLayer.register(gridWidget2); assertThat(gridLayer.getGridWidgets().size()).isEqualTo(2); assertThat(gridLayer.getGridWidgets()).contains(gridWidget1, gridWidget2); gridLayer.deregister(gridWidget1); assertThat(gridLayer.getGridWidgets().size()).isEqualTo(1); assertThat(gridLayer.getGridWidgets()).contains(gridWidget2); gridLayer.deregister(gridWidget2); assertThat(gridLayer.getGridWidgets()).isEmpty(); }
@Override public void flipToGridWidget(final GridWidget gridWidget) { if (!isGridPinned()) { return; } for (GridWidget gw : explicitGridWidgets) { gw.setAlpha(gw.equals(gridWidget) ? 1.0 : 0.0); gw.setVisible(gw.equals(gridWidget)); } final Point2D translation = new Point2D(gridWidget.getX(), gridWidget.getY()).mul(-1.0); final Viewport vp = gridWidget.getViewport(); final Transform transform = vp.getTransform(); transform.reset(); transform.translate(translation.getX(), translation.getY()); updatePinnedContext(gridWidget); batch(new GridLayerRedrawManager.PrioritizedCommand(0) { @Override public void execute() { select(gridWidget); } }); }
Boolean hasVisibleBounds() { final Viewport viewport = getDefaultGridLayer().getViewport(); return Optional.ofNullable(viewport).isPresent(); }
@Test public void testDestroyResourcesAndFlushOnKeyDown() { when(layer.getGridWidgets()).thenReturn(gridWidgets); when(gridWidget1.isSelected()).thenReturn(true); when(event.getNativeKeyCode()).thenReturn(KeyCodes.KEY_RIGHT); final StringDOMElementSingletonColumn columnWithAdditionalDomElements = mock(StringDOMElementSingletonColumn.class); gridWidget1Data.appendColumn(columnWithAdditionalDomElements); handler.onKeyDown(event); verify(columnWithAdditionalDomElements).flush(); verify(columnWithAdditionalDomElements).destroyResources(); }