package org.korsakow.ide.ui.controller.action; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import org.korsakow.ide.Application; import org.korsakow.ide.ui.components.tree.KNode; import org.korsakow.ide.ui.dnd.TransferableTreeTableNodes; import org.korsakow.ide.ui.resourceexplorer.ResourceTreeTable; public class DuplicateAction implements ActionListener { private CopyAction copyAction; private PasteAction pasteAction; public DuplicateAction(ResourceTreeTable resourceBrowser) { copyAction = new CopyAction(resourceBrowser); pasteAction = new PasteAction(resourceBrowser); } public void actionPerformed(ActionEvent event) { // technically this could fail if the clipboard were modified in the milliseconds between these two actions // so in a way we're introducing a subtle bug here. TODO: is this bad? copyAction.actionPerformed(event); pasteAction.actionPerformed(event); } }