Java 类org.eclipse.swt.events.DragDetectEvent 实例源码
项目:ambushGUI
文件:AmbushGraph.java
@Override
public void dragDetected(DragDetectEvent arg0) {
GraphDataSet dataSet = AmbushGraph.this.currentDataSet;
if (arg0.button != 1 || ! zoomedIn(dataSet)) {
return;
}
double xFactor = previewShell.getSize().x / (dataSet.naturalBounds.x * dataSet.zoomFactor);
double yFactor = previewShell.getSize().y / (dataSet.naturalBounds.y * dataSet.zoomFactor);
// calculate view port origin in preview window coordinates
int translatedMainOriginX = (int)(dataSet.mainOrigin.x * xFactor);
int translatedMainOriginY = (int)(dataSet.mainOrigin.y * yFactor);
// calculate how large the view port is on the preview window
int translatedMainWidth = (int)(mainShell.getSize().x * xFactor);
int translatedMainHeight = (int)(mainShell.getSize().y * yFactor);
if (arg0.x > translatedMainOriginX && arg0.x < translatedMainOriginX + translatedMainWidth &&
arg0.y > translatedMainOriginY && arg0.y < translatedMainOriginY + translatedMainHeight) {
// clicked inside view port, so drag viewport
dataSet.dragPoint = new Point(arg0.x, arg0.y);
}
}
项目:Notepad4e
文件:NotepadView.java
/**
* Swaps two tabs and corresponding notes when a user drags one to another.
*/
private void addSwapTabListener() {
tabFolder.addDragDetectListener(new DragDetectListener() {
@Override
public void dragDetected(DragDetectEvent dragDetectedEvent) {
final Rectangle viewRectangle = Geometry.toDisplay(tabFolder.getParent(), tabFolder.getBounds());
final Tracker tracker = new Tracker(tabFolder, SWT.NONE);
tracker.setStippled(true);
tracker.addListener(SWT.Move, new Listener() {
@Override
public void handleEvent(Event event) {
Point location = new Point(event.x - viewRectangle.x, event.y - viewRectangle.y);
CTabItem tabAtLocation = tabFolder.getItem(location);
if (tabAtLocation != null) {
// Move tracker to follow mouse cursor.
tracker.setRectangles(new Rectangle[] { tabAtLocation.getBounds() });
} else {
// Mouse cursor no longer above any tab in the action bar, hide tacker.
tracker.setRectangles(new Rectangle[0]);
}
}
});
if (tracker.open()) {
Rectangle[] rectangles = tracker.getRectangles();
if (rectangles.length > 0) {
CTabItem tabToSwap = tabFolder.getItem(new Point(rectangles[0].x, rectangles[0].y));
// Swap selected tab with the one situated at the mouse cursor's position.
if (tabToSwap != null) {
swapNoteTabs(tabFolder.indexOf(tabToSwap));
}
}
}
tracker.close();
tracker.dispose();
}
});
}
项目:ambushGUI
文件:AmbushGraph.java
@Override
public void dragDetected(DragDetectEvent dde) {
if (dde.button != 1) {
return;
}
GraphDataSet dataSet = AmbushGraph.this.currentDataSet;
dataSet.movingPoint = getClosestPoint(dde.x, dde.y);
if (dataSet.movingPoint == null && zoomedIn(dataSet)) {
// no point selected, so record where drag started for shifting the screen
dataSet.dragPoint = new Point(dde.x, dde.y);
}
}
项目:gama
文件:LayeredDisplayMultiListener.java
@Override
public void dragDetected(final DragDetectEvent e) {
if (!ok())
return;
// System.out.println("Mouse drag detected on " + view.getPartName());
// surface.draggedTo(e.x, e.y);
surface.dispatchMouseEvent(SWT.DragDetect);
}
项目:xiliary
文件:DragControl.java
@Override
public void dragDetected( DragDetectEvent event ) {
if( startingPosition != null ) {
dragAction.run( startingPosition.x, startingPosition.y, event.x, event.y );
}
dragDetector.dragHandled();
}
项目:chrysalix
文件:FocusTree.java
@Override
public void dragDetected( final DragDetectEvent event ) {
if ( targetColumn == null ) return;
if ( targetColumn == column ) offset = column.header.getSize().x - event.x;
else offset = -event.x;
dragging = true;
}
项目:OpenSPIFe
文件:TimelineFeedbackManager.java
@Override
public void dragDetected( DragDetectEvent e ) {
isDragging = true;
mouseUp = false;
}