package org.bundlemaker.core.ui.projecteditor.dnd;
import org.bundlemaker.core.project.IProjectContentProvider;
import org.bundlemaker.core.project.IProjectDescriptionAwareBundleMakerProject;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.dnd.TransferData;
import org.eclipse.swt.widgets.Shell;
/**
* Event passed to a {@link IProjectEditorDropProvider}, describing a Drop operation
*
* @author Nils Hartmann (nils@nilshartmann.net)
*
*/
public interface IProjectEditorDropEvent {
public Shell getShell();
public IProjectDescriptionAwareBundleMakerProject getBundleMakerProject();
/**
* Returns the project content provider that belongs to the target or null if there is no target
*
* @return
*/
public IProjectContentProvider getProjectContentProvider();
public Object getTarget();
public boolean hasTarget();
public TransferData getTransferData();
/**
* Data is only available in performDrop() otherwise null is returned !!!
*
* @return
*/
public Object getData();
public DropLocation getDropLocation();
public boolean isTransferType(Transfer transfer);
public <T> T getData(Class<T> type);
}