/**
* This file is protected by Copyright.
* Please refer to the COPYRIGHT file distributed with this source distribution.
*
* This file is part of REDHAWK IDE.
*
* 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.
*
*/
package gov.redhawk.diagram.ui.tools;
import java.util.Map;
import org.eclipse.gef.DragTracker;
import org.eclipse.gef.EditDomain;
import org.eclipse.gef.EditPartViewer;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.handles.ConnectionHandle;
import org.eclipse.gmf.runtime.diagram.ui.handles.ConnectionHandle.HandleDirection;
import org.eclipse.gmf.runtime.diagram.ui.internal.tools.ConnectionHandleTool;
import org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx;
import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.TraverseEvent;
import org.eclipse.swt.widgets.Event;
/**
* @since 2.0
*
*/
@SuppressWarnings("restriction")
public class DragConnectionCreationProxy implements DragTracker {
private final ConnectionHandleTool connectionTool;
private final DragEditPartsTrackerEx editPartTracker;
public DragConnectionCreationProxy(final IGraphicalEditPart editPart, final HandleDirection direction, final String tooltip) {
this.connectionTool = new ConnectionHandleTool(new ConnectionHandle(editPart, direction, tooltip));
this.editPartTracker = new DragEditPartsTrackerEx(editPart);
}
/* (non-Javadoc)
* @see org.eclipse.gef.DragTracker#commitDrag()
*/
@Override
public void commitDrag() {
this.connectionTool.commitDrag();
// editPartTracker.commitDrag();
}
@Override
public void activate() {
this.editPartTracker.activate();
this.connectionTool.activate();
}
@Override
public void deactivate() {
this.editPartTracker.deactivate();
this.connectionTool.deactivate();
}
@Override
public void focusGained(final FocusEvent event, final EditPartViewer viewer) {
this.connectionTool.focusGained(event, viewer);
this.editPartTracker.focusGained(event, viewer);
}
@Override
public void focusLost(final FocusEvent event, final EditPartViewer viewer) {
this.connectionTool.focusLost(event, viewer);
this.editPartTracker.focusLost(event, viewer);
}
@Override
public void keyDown(final KeyEvent keyEvent, final EditPartViewer viewer) {
this.connectionTool.keyDown(keyEvent, viewer);
this.editPartTracker.keyDown(keyEvent, viewer);
}
@Override
public void keyTraversed(final TraverseEvent event, final EditPartViewer viewer) {
this.connectionTool.keyTraversed(event, viewer);
this.editPartTracker.keyTraversed(event, viewer);
}
@Override
public void keyUp(final KeyEvent keyEvent, final EditPartViewer viewer) {
this.connectionTool.keyUp(keyEvent, viewer);
this.editPartTracker.keyUp(keyEvent, viewer);
}
@Override
public void mouseDoubleClick(final MouseEvent mouseEvent, final EditPartViewer viewer) {
this.editPartTracker.mouseDoubleClick(mouseEvent, viewer);
this.connectionTool.mouseDoubleClick(mouseEvent, viewer);
}
@Override
public void mouseDown(final MouseEvent mouseEvent, final EditPartViewer viewer) {
this.editPartTracker.mouseDown(mouseEvent, viewer);
this.connectionTool.mouseDown(mouseEvent, viewer);
}
@Override
public void mouseDrag(final MouseEvent mouseEvent, final EditPartViewer viewer) {
this.connectionTool.mouseDrag(mouseEvent, viewer);
// editPartTracker.mouseDrag(mouseEvent, viewer);
}
@Override
public void mouseHover(final MouseEvent mouseEvent, final EditPartViewer viewer) {
this.connectionTool.mouseHover(mouseEvent, viewer);
this.editPartTracker.mouseHover(mouseEvent, viewer);
}
@Override
public void mouseMove(final MouseEvent mouseEvent, final EditPartViewer viewer) {
this.editPartTracker.mouseMove(mouseEvent, viewer);
this.connectionTool.mouseMove(mouseEvent, viewer);
}
@Override
public void mouseUp(final MouseEvent mouseEvent, final EditPartViewer viewer) {
this.editPartTracker.mouseUp(mouseEvent, viewer);
this.connectionTool.mouseUp(mouseEvent, viewer);
}
@Override
public void mouseWheelScrolled(final Event event, final EditPartViewer viewer) {
this.editPartTracker.mouseWheelScrolled(event, viewer);
this.connectionTool.mouseWheelScrolled(event, viewer);
}
@Override
public void nativeDragFinished(final DragSourceEvent event, final EditPartViewer viewer) {
this.connectionTool.nativeDragFinished(event, viewer);
// editPartTracker.nativeDragFinished(event, viewer);
}
@Override
public void nativeDragStarted(final DragSourceEvent event, final EditPartViewer viewer) {
this.connectionTool.nativeDragStarted(event, viewer);
// editPartTracker.nativeDragStarted(event, viewer);
}
@Override
public void setEditDomain(final EditDomain domain) {
this.connectionTool.setEditDomain(domain);
this.editPartTracker.setEditDomain(domain);
}
@Override
public void setViewer(final EditPartViewer viewer) {
this.connectionTool.setViewer(viewer);
this.editPartTracker.setViewer(viewer);
}
@Override
public void viewerEntered(final MouseEvent mouseEvent, final EditPartViewer viewer) {
this.connectionTool.viewerEntered(mouseEvent, viewer);
this.editPartTracker.viewerEntered(mouseEvent, viewer);
}
@Override
public void viewerExited(final MouseEvent mouseEvent, final EditPartViewer viewer) {
this.connectionTool.viewerExited(mouseEvent, viewer);
this.editPartTracker.viewerExited(mouseEvent, viewer);
}
@Override
@SuppressWarnings("rawtypes")
public void setProperties(final Map properties) {
this.connectionTool.setProperties(properties);
this.editPartTracker.setProperties(properties);
}
}