@Override public void setZoom(final int zoom) { //Set zoom preserving translation final Transform transform = newTransform(); final double tx = gridPanel.getViewport().getTransform().getTranslateX(); final double ty = gridPanel.getViewport().getTransform().getTranslateY(); transform.translate(tx, ty); transform.scale(zoom / 100.0); //Ensure the change in zoom keeps the view in bounds. IGridLayer's visibleBounds depends //on the Viewport Transformation; so set it to the "proposed" transformation before checking. gridPanel.getViewport().setTransform(transform); final TransformMediator restriction = mousePanMediator.getTransformMediator(); final Transform newTransform = restriction.adjust(transform, gridLayer.getVisibleBounds()); gridPanel.getViewport().setTransform(newTransform); gridPanel.getViewport().batch(); gridPanel.refreshScrollPosition(); }
@Override public void setZoom(final int zoom) { //Set zoom preserving translation final Transform transform = newTransform(); final double tx = gridPanel.getViewport().getTransform().getTranslateX(); final double ty = gridPanel.getViewport().getTransform().getTranslateY(); transform.translate(tx, ty); transform.scale(zoom / 100.0); //Ensure the change in zoom keeps the view in bounds. IGridLayer's visibleBounds depends //on the Viewport Transformation; so set it to the "proposed" transformation before checking. gridPanel.getViewport().setTransform(transform); final TransformMediator restriction = mousePanMediator.getTransformMediator(); final Transform newTransform = restriction.adjust(transform, gridLayer.getVisibleBounds()); gridPanel.getViewport().setTransform(newTransform); gridPanel.getViewport().batch(); gridPanel.refreshScrollPosition(); }
@Test public void testSetup() throws Exception { final AbsolutePanel mainPanel = mock(AbsolutePanel.class); final Transform transform = mock(Transform.class); final Viewport viewport = mock(Viewport.class); final Mediators mediators = mock(Mediators.class); final Element element = mock(Element.class); doReturn(transform).when(transform).scale(anyDouble()); doReturn(transform).when(view).newTransform(); doReturn(mediators).when(viewport).getMediators(); doReturn(element).when(mockGridPanel).getElement(); doReturn(mainPanel).when(mockGridPanel).getScrollPanel(); doReturn(viewport).when(mockGridPanel).getViewport(); view.setup(); verify(view).setupGridPanel(); verify(mediators).push(restrictedMousePanMediator); }
@Test public void testRadarIsUpdatedAfterScrolling() throws Exception { final ArgumentCaptor<ScrollHandler> scrollHandler = ArgumentCaptor.forClass(ScrollHandler.class); final ScrollEvent scrollEvent = mock(ScrollEvent.class); final AbsolutePanel mainPanel = mock(AbsolutePanel.class); final Transform transform = mock(Transform.class); final Viewport viewport = mock(Viewport.class); final Mediators mediators = mock(Mediators.class); final Element element = mock(Element.class); doReturn(transform).when(transform).scale(anyDouble()); doReturn(presenter).when(view).getPresenter(); doReturn(transform).when(view).newTransform(); doReturn(mediators).when(viewport).getMediators(); doReturn(element).when(mockGridPanel).getElement(); doReturn(mainPanel).when(mockGridPanel).getScrollPanel(); doReturn(viewport).when(mockGridPanel).getViewport(); view.setupGridPanel(); verify(mainPanel).addDomHandler(scrollHandler.capture(), eq(ScrollEvent.getType())); scrollHandler.getValue().onScroll(scrollEvent); verify(presenter).updateRadar(); }
@Test public void testScrollbarsUpdatedAfterZoom() throws Exception { final double x = 10.0; final double y = 20.0; final int zoom = 70; final Transform transform = mock(Transform.class); final Viewport viewport = mock(Viewport.class); final TransformMediator mediator = mock(TransformMediator.class); doReturn(transform).when(mediator).adjust(eq(transform), any()); doReturn(mediator).when(restrictedMousePanMediator).getTransformMediator(); doReturn(x).when(transform).getTranslateX(); doReturn(y).when(transform).getTranslateY(); doReturn(transform).when(view).newTransform(); doReturn(transform).when(viewport).getTransform(); doReturn(viewport).when(mockGridPanel).getViewport(); view.setZoom(zoom); verify(transform).translate(x, y); verify(transform).scale(zoom / 100.0); verify(viewport, times(2)).setTransform(transform); verify(viewport).batch(); verify(mockGridPanel).refreshScrollPosition(); }
void setupGridPanel() { //Lienzo stuff - Set default scale final Transform transform = newTransform().scale(VP_SCALE); gridPanel.getViewport().setTransform(transform); //Lienzo stuff - Add mouse pan support defaultTransformMediator = new BoundaryTransformMediator(GuidedDecisionTableModellerViewImpl.this); mousePanMediator.setTransformMediator(defaultTransformMediator); gridPanel.getViewport().getMediators().push(mousePanMediator); mousePanMediator.setBatchDraw(true); gridPanel.setBounds(getBounds()); gridPanel.getScrollPanel().addDomHandler(scrollEvent -> getPresenter().updateRadar(), ScrollEvent.getType()); //Wire-up widgets gridPanel.add(gridLayer); //Set ID on GridLienzoPanel for Selenium tests. gridPanel.getElement().setId("dtable_container_" + Document.get().createUniqueId()); }
void setupGridPanel() { //Lienzo stuff - Set default scale final Transform transform = newTransform().scale(VP_SCALE); gridPanel.getViewport().setTransform(transform); //Lienzo stuff - Add mouse pan support defaultTransformMediator = new BoundaryTransformMediator(GuidedDecisionTableModellerViewImpl.this); mousePanMediator.setTransformMediator(defaultTransformMediator); gridPanel.getViewport().getMediators().push(mousePanMediator); mousePanMediator.setBatchDraw(true); gridPanel.setBounds(getBounds()); gridPanel.getScrollPanel().addDomHandler(scrollEvent -> getPresenter().updateRadar(), ScrollEvent.getType()); //Wire-up widgets gridPanel.add(gridLayer); //Set ID on GridLienzoPanel for Selenium tests. gridPanel.getElement().setId("dtable_container_" + Document.get().createUniqueId()); }