package com.github.culmat.eexplorer.actions;
import java.io.File;
import org.eclipse.jface.action.Action;
import org.eclipse.swt.dnd.Clipboard;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
public class CopyAction extends Action {
final Clipboard cb;
private String clipboardtext;
public CopyAction(Display display, IWorkbenchWindow window) {
cb = new Clipboard(display);
setText("Copy Path");
IWorkbenchAction tmp = ActionFactory.COPY.create(window);
setImageDescriptor(tmp.getImageDescriptor());
setDisabledImageDescriptor(tmp.getDisabledImageDescriptor());
setHoverImageDescriptor(tmp.getHoverImageDescriptor());
}
@Override
public void run() {
if(clipboardtext == null) return;
TextTransfer textTransfer = TextTransfer.getInstance();
cb.setContents(new Object[] { clipboardtext },
new Transfer[] { textTransfer });
}
public void setClipboardText(String clipboardtext){
this.clipboardtext = clipboardtext;
}
public void dispose() {
cb.dispose();
}
public void setClipboard(File file) {
setClipboardText(file.getAbsolutePath());
}
}