public void installEventHandlersForCanvas() { installUserInputHandlers(); final OverviewCanvas overview = diagramPane.getOverview(); canvas.addHandler(diagramPane.getOverview(), ViewChangeEvent.TYPE); // highlight linked objects SelectionEventHandler selectionHandler = new SelectionEventHandler() { @Override public void onSelectionChanged(SelectionEvent e) { hiliteAndCentreObjects(e); overview.setSelectedObjects(e.getSelectedObjects()); overview.update(); } }; diagramPane.addSelectionEventHandler(selectionHandler); }
public void installOverviewEventHandler() { final OverviewCanvas overview = diagramPane.getOverview(); // To catch overview dragging ViewChangeEventHandler overviewEventHandler = new ViewChangeEventHandler() { @Override public void onViewChange(ViewChangeEvent event) { double dx = event.getTranslationEvent().getTranslateX(); double dy = event.getTranslationEvent().getTranslateY(); double scale = event.getZoomEvent().getScale(); double canvasScale = canvas.getScale(); // System.out.println("responding to overview click"); diagramPane.translate(-dx / scale * canvasScale, -dy / scale * canvasScale); diagramPane.update(); overview.setIsFromOverview(false); // Overview Canvas can now respond to ViewChangeEvent // now that it's own event firing has finished } }; overview.addHandler(overviewEventHandler, ViewChangeEvent.TYPE); }