⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dragpaintsession.java

📁 eclipse 的程序源码
💻 JAVA
字号:
/******************************************************************************* * Copyright (c) 2000, 2005 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: *     IBM Corporation - initial API and implementation *******************************************************************************/package org.eclipse.swt.examples.paint;import org.eclipse.swt.events.MouseEvent;import org.eclipse.swt.graphics.*;/** * The superclass for paint tools that use click-drag-release motions to * draw objects. */public abstract class DragPaintSession extends BasicPaintSession {	/**	 * True if a click-drag is in progress	 */	private boolean dragInProgress = false;		/**	 * The position of the first click in a click-drag	 */	private Point anchorPosition = new Point(-1, -1);	/**	 * A temporary point	 */	private Point tempPosition = new Point(-1, -1);		/**	 * Constructs a PaintSession.	 * 	 * @param getPaintSurface() the drawing surface to use	 */	protected DragPaintSession(PaintSurface paintSurface) {		super(paintSurface);	}	/**	 * Activates the tool.	 */	public void beginSession() {		getPaintSurface().			setStatusMessage(PaintExample.getResourceString("session.DragInteractivePaint.message"));		anchorPosition.x = -1;		dragInProgress = false;	}		/**	 * Deactivates the tool.     */	public void endSession() {	}		/**	 * Resets the tool.	 * Aborts any operation in progress.	 */	public void resetSession() {		getPaintSurface().clearRubberbandSelection();		anchorPosition.x = -1;		dragInProgress = false;	}	/**	 * Handles a mouseDown event.	 * 	 * @param event the mouse event detail information	 */	public void mouseDown(MouseEvent event) {		if (event.button != 1) return;		if (dragInProgress) return; // spurious event		dragInProgress = true;				anchorPosition.x = event.x;		anchorPosition.y = event.y;	}	/**	 * Handles a mouseDoubleClick event.	 * 	 * @param event the mouse event detail information	 */	public void mouseDoubleClick(MouseEvent event) {	}	/**	 * Handles a mouseUp event.	 * 	 * @param event the mouse event detail information	 */	public void mouseUp(MouseEvent event) {		if (event.button != 1) {			resetSession(); // abort if right or middle mouse button pressed			return;		}		if (! dragInProgress) return; // spurious event		dragInProgress = false;		if (anchorPosition.x == -1) return; // spurious event				getPaintSurface().commitRubberbandSelection();	}		/**	 * Handles a mouseMove event.	 * 	 * @param event the mouse event detail information	 */	public void mouseMove(MouseEvent event) {		final PaintSurface ps = getPaintSurface();		if (! dragInProgress) {			ps.setStatusCoord(ps.getCurrentPosition());			return;		}		ps.setStatusCoordRange(anchorPosition, ps.getCurrentPosition());		ps.clearRubberbandSelection();		tempPosition.x = event.x;		tempPosition.y = event.y;		ps.addRubberbandSelection(createFigure(anchorPosition, tempPosition));	}		/**	 * Template Method: Creates a Figure for drawing rubberband entities and the final product	 * 	 * @param anchor the anchor point	 * @param cursor the point marking the current pointer location	 */	protected abstract Figure createFigure(Point anchor, Point cursor);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -