View Clipboard & Copy To Clipboard from NetBeans IDE

Posted by Geertjan on Oracle Blogs See other posts from Oracle Blogs or by Geertjan
Published on Thu, 7 Jun 2012 15:55:58 +0000 Indexed on 2012/06/07 16:44 UTC
Read the original article Hit count: 470

Filed under:

Thanks to this code, I can press Ctrl-Alt-V in NetBeans IDE and then view whatever is in the clipboard:

import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JOptionPane;
import org.openide.awt.ActionRegistration;
import org.openide.awt.ActionReference;
import org.openide.awt.ActionReferences;
import org.openide.awt.ActionID;
import org.openide.util.NbBundle.Messages;

@ActionID(
    category = "Tools",
id = "org.demo.ShowClipboardAction")
@ActionRegistration(
    displayName = "#CTL_ShowClipboardAction")
@ActionReferences({
    @ActionReference(path = "Menu/Tools", position = 5),
    @ActionReference(path = "Shortcuts", name = "DA-V")
})
@Messages("CTL_ShowClipboardAction=Show Clipboard")
public final class ShowClipboardAction implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        JOptionPane.showMessageDialog(null, getClipboard(), "Clipboard Content", 1);
    }

    public String getClipboard() {
        String text = null;
        Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
        try {
            if (t != null && t.isDataFlavorSupported(DataFlavor.stringFlavor)) {
                text = (String) t.getTransferData(DataFlavor.stringFlavor);
            }
        } catch (UnsupportedFlavorException e) {
        } catch (IOException e) {
        }
        return text;
    }
    
}

And now I can also press Ctrl-Alt-C, which copies the path to the current file to the clipboard:

import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.openide.awt.ActionID;
import org.openide.awt.ActionReference;
import org.openide.awt.ActionReferences;
import org.openide.awt.ActionRegistration;
import org.openide.awt.StatusDisplayer;
import org.openide.loaders.DataObject;
import org.openide.util.NbBundle.Messages;

@ActionID(
    category = "Tools",
id = "org.demo.CopyPathToClipboard")
@ActionRegistration(
    displayName = "#CTL_CopyPathToClipboard")
@ActionReferences({
    @ActionReference(path = "Menu/Tools", position = 0),
    @ActionReference(path = "Editors/Popup", position = 10),
    @ActionReference(path = "Shortcuts", name = "DA-C")
})
@Messages("CTL_CopyPathToClipboard=Copy Path to Clipboard")
public final class CopyPathToClipboardAction implements ActionListener {

    private final DataObject context;

    public CopyPathToClipboardAction(DataObject context) {
        this.context = context;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String path = context.getPrimaryFile().getPath();
        StatusDisplayer.getDefault().setStatusText(path);
        StringSelection ss = new StringSelection(path);
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        clipboard.setContents(ss, null);
    }

}

© Oracle Blogs or respective owner

Related posts about /NetBeans IDE