/******************************************************************************
* Copyright (c) 2008 g-Eclipse consortium
* 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
*
* Initial development of the original code was made for
* project g-Eclipse founded by European Union
* project number: FP6-IST-034327 http://www.geclipse.eu/
*
* Contributor(s):
* UCY (http://www.ucy.cs.ac.cy)
* - Nicholas Loulloudes (loulloudes.n@cs.ucy.ac.cy)
*
*****************************************************************************/
package eu.geclipse.workflow.ui.listeners;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.gef.EditPartViewer;
import org.eclipse.gmf.runtime.diagram.ui.parts.DiagramDropTargetListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.dnd.TransferData;
import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
import eu.geclipse.core.model.IGridElement;
/**
* @author nloulloud
*
*/
public class FileTransferDropTargetListener extends DiagramDropTargetListener {
/**
* @param viewer
*/
public FileTransferDropTargetListener( final EditPartViewer viewer ) {
super( viewer, LocalSelectionTransfer.getInstance());
}
@Override
protected List<IGridElement> getObjectsBeingDropped() {
List<IGridElement> result = new ArrayList<IGridElement>();
if (getTransfer() instanceof LocalSelectionTransfer) {
LocalSelectionTransfer transfer = (LocalSelectionTransfer) getTransfer();
IStructuredSelection selection = (IStructuredSelection) transfer.getSelection();
Object object = selection.getFirstElement();
if(object instanceof IGridElement) {
result.add( (IGridElement) object );
}
}
return result;
}
protected Object getJavaObject(final TransferData data) {
return LocalSelectionTransfer.getInstance().nativeToJava(data);
}
}