类javafx.scene.input.ZoomEvent源码实例Demo

下面列出了怎么用javafx.scene.input.ZoomEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: gef   文件: FXCanvasEx.java
private void sendZoomEventToFX(EventType<ZoomEvent> eventType,
		GestureEvent gestureEvent) {
	Point los = toDisplay(gestureEvent.x, gestureEvent.y);

	double[] totalZoom = new double[] { gestureEvent.magnification };
	if (eventType == ZoomEvent.ZOOM_STARTED) {
		// ensure first event does not provide any zoom yet
		totalZoom[0] = lastTotalZoom = 1.0;
	} else if (eventType == ZoomEvent.ZOOM_FINISHED) {
		// SWT uses 0.0 for final event, while JavaFX still provides a
		// (total) zoom value
		totalZoom[0] = lastTotalZoom;
	}
	final double zoom = eventType == ZoomEvent.ZOOM_FINISHED ? 1.0
			: totalZoom[0] / lastTotalZoom;
	lastTotalZoom = totalZoom[0];

	final boolean inertia = !gestureActive;
	scheduleSceneRunnable(new ISceneRunnable() {
		@Override
		public void run(TKSceneListenerWrapper sceneListener) {
			sceneListener.zoomEvent(eventType, zoom, totalZoom[0],
					gestureEvent.x, gestureEvent.y, los.x, los.y,
					(gestureEvent.stateMask & SWT.SHIFT) != 0,
					(gestureEvent.stateMask & SWT.CONTROL) != 0,
					(gestureEvent.stateMask & SWT.ALT) != 0,
					(gestureEvent.stateMask & SWT.COMMAND) != 0, false,
					inertia);
		}
	});
}
 
源代码2 项目: gef   文件: ZoomOnPinchSpreadHandler.java
@Override
public void endZoom(ZoomEvent event) {
	if (invalidGesture) {
		return;
	}
	ITransactionalOperation commit = getViewportPolicy().commit();
	if (commit != null && !commit.isNoOp()) {
		try {
			getHost().getRoot().getViewer().getDomain().execute(commit,
					new NullProgressMonitor());
		} catch (ExecutionException e) {
			throw new RuntimeException(e);
		}
	}
}
 
源代码3 项目: gef   文件: ZoomOnPinchSpreadHandler.java
@Override
public void startZoom(ZoomEvent event) {
	invalidGesture = !isZoom(event);
	if (invalidGesture) {
		return;
	}
	viewportPolicy = determineViewportPolicy();
	viewportPolicy.init();
}
 
源代码4 项目: gef   文件: ZoomOnPinchSpreadHandler.java
@Override
public void zoom(ZoomEvent event) {
	if (invalidGesture) {
		return;
	}
	// compute zoom factor from the given event
	double zoomFactor = computeZoomFactor(event);
	if (isContentRestricted()) {
		// Ensure content is aligned with the viewport on the left and top
		// sides if there is free space on these sides and the content fits
		// into the viewport
		panningSupport.removeFreeSpace(viewportPolicy, Pos.TOP_LEFT, true);
		// calculate a pivot points to achieve a zooming similar to that of
		// a text editor (fix absolute content left in x-direction, fix
		// visible content top in y-direction)
		InfiniteCanvas infiniteCanvas = ((InfiniteCanvasViewer) getHost()
				.getRoot().getViewer()).getCanvas();
		// XXX: The pivot point computation needs to be done after free
		// space top/left is removed so that the content-bounds minX
		// coordinate is correct.
		Point2D pivotPointInScene = infiniteCanvas.localToScene(
				infiniteCanvas.getContentBounds().getMinX(), 0);
		// performing zooming
		viewportPolicy.zoom(true, true, zoomFactor,
				pivotPointInScene.getX(), pivotPointInScene.getY());
		// Ensure content is aligned with the viewport on the right and
		// bottom sides if there is free space on these sides and the
		// content does not fit into the viewport
		panningSupport.removeFreeSpace(viewportPolicy, Pos.BOTTOM_RIGHT,
				false);
	} else {
		// zoom into/out-of the event location
		viewportPolicy.zoom(true, true, zoomFactor, event.getSceneX(),
				event.getSceneY());
	}
}
 
源代码5 项目: gluon-samples   文件: MnistImageView.java
private void addListeners() {
    this.addEventHandler(MouseEvent.MOUSE_PRESSED, pressedHandler);
    this.addEventHandler(MouseEvent.MOUSE_DRAGGED, draggedHandler);
    this.addEventHandler(MouseEvent.MOUSE_RELEASED, releasedHandler);
    
    if (Platform.isDesktop()) {
        this.addEventHandler(ScrollEvent.ANY, scrollHandler);
    } else {
        this.addEventHandler(ZoomEvent.ZOOM_STARTED, zoomStartedHandler);
        this.addEventHandler(ZoomEvent.ZOOM_FINISHED, zoomFinishedHandler);
        this.addEventHandler(ZoomEvent.ZOOM, zoomHandler);
    }
}
 
源代码6 项目: gluon-samples   文件: MnistImageView.java
private void removeListeners() {
    this.removeEventHandler(MouseEvent.MOUSE_PRESSED, pressedHandler);
    this.removeEventHandler(MouseEvent.MOUSE_DRAGGED, draggedHandler);
    this.removeEventHandler(MouseEvent.MOUSE_RELEASED, releasedHandler);
    if (Platform.isDesktop()) {
        this.removeEventHandler(ScrollEvent.ANY, scrollHandler);
    } else {
        this.removeEventHandler(ZoomEvent.ZOOM_STARTED, zoomStartedHandler);
        this.removeEventHandler(ZoomEvent.ZOOM_FINISHED, zoomFinishedHandler);
        this.removeEventHandler(ZoomEvent.ZOOM, zoomHandler);
    }
}
 
源代码7 项目: gef   文件: PinchSpreadGesture.java
@Override
protected void doHookScene(Scene scene) {
	EventHandler<ZoomEvent> zoomFilter = createZoomFilter(scene);
	scene.addEventFilter(ZoomEvent.ANY, zoomFilter);
	zoomFilters.put(scene, zoomFilter);
}
 
源代码8 项目: gef   文件: PinchSpreadGesture.java
@Override
protected void doUnhookScene(Scene scene) {
	scene.removeEventFilter(ZoomEvent.ANY, zoomFilters.remove(scene));
}
 
源代码9 项目: gef   文件: IOnPinchSpreadHandler.java
/**
 * Reaction to the finish of pinch (close fingers) gestures.
 *
 * @param e
 *            The original {@link ZoomEvent}.
 */
void endZoom(ZoomEvent e);
 
源代码10 项目: gef   文件: IOnPinchSpreadHandler.java
/**
 * Reaction to the detection of pinch (close fingers) gestures.
 *
 * @param e
 *            The original {@link ZoomEvent}.
 */
void startZoom(ZoomEvent e);
 
源代码11 项目: gef   文件: IOnPinchSpreadHandler.java
/**
 * Continuous reaction to pinch (close fingers) gestures. Called
 * continuously on finger movement, after the gesture has been detected, and
 * before it has been finished.
 *
 * @param e
 *            The original {@link ZoomEvent}.
 */
void zoom(ZoomEvent e);
 
源代码12 项目: gef   文件: ZoomOnPinchSpreadHandler.java
/**
 * Computes the zoom factor from the given {@link ZoomEvent}.
 *
 * @param event
 *            The {@link ZoomEvent} from which to compute the zoom factor.
 * @return The zoom factor according to the given {@link ZoomEvent}.
 */
protected double computeZoomFactor(ZoomEvent event) {
	return event.getZoomFactor();
}
 
源代码13 项目: gef   文件: ZoomOnPinchSpreadHandler.java
/**
 * Returns whether the given {@link ZoomEvent} should trigger zooming. Per
 * default, will always return <code>true</code>.
 *
 * @param event
 *            The {@link ZoomEvent} in question.
 * @return <code>true</code> if the given {@link ZoomEvent} should trigger
 *         zoom, otherwise <code>false</code>.
 */
protected boolean isZoom(ZoomEvent event) {
	return true;
}
 
源代码14 项目: Augendiagnose   文件: SizableImageView.java
/**
 * Handle a zoom event.
 *
 * @param event
 *            The zoom event.
 */
private void handleZoomEvent(final ZoomEvent event) {
	if (!Double.isNaN(event.getZoomFactor())) {
		zoomImage(event.getZoomFactor());
	}
}
 
 类所在包
 类方法
 同包方法