package com.github.culmat.eexplorer.actions; import static com.github.culmat.eexplorer.views.FileDetector.detect; import org.eclipse.jface.action.Action; import org.eclipse.swt.dnd.Clipboard; import org.eclipse.swt.dnd.TextTransfer; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.actions.ActionFactory; import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; import com.github.culmat.eexplorer.views.SyncWithDirectorySelectionListener; public class PasteAction extends Action { final Clipboard cb; private final SyncWithDirectorySelectionListener listener; public PasteAction(Display display, SyncWithDirectorySelectionListener listener, IWorkbenchWindow window) { this.listener = listener; cb = new Clipboard(display); setText("Paste Path"); IWorkbenchAction tmp = ActionFactory.PASTE.create(window); setImageDescriptor(tmp.getImageDescriptor()); setDisabledImageDescriptor(tmp.getDisabledImageDescriptor()); setHoverImageDescriptor(tmp.getHoverImageDescriptor()); } @Override public void run() { TextTransfer transfer = TextTransfer.getInstance(); String data = (String) cb.getContents(transfer); if (data != null) { listener.notifyListener(detect(data)); } } public void dispose() { cb.dispose(); } }