package org.freeplane.features.clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.util.Collection;
import org.freeplane.core.ui.AFreeplaneAction;
import org.freeplane.features.map.NodeModel;
import org.freeplane.features.mode.Controller;
public class CopyIDAction extends AFreeplaneAction {
public CopyIDAction() {
super("CopyIDAction");
}
/**
*
*/
private static final long serialVersionUID = 1L;
public void actionPerformed(final ActionEvent e) {
final Controller controller = Controller.getCurrentController();
final Collection<NodeModel> selectedNodes = controller.getSelection().getSelection();
StringBuilder sb = null;
for (final NodeModel node : selectedNodes) {
if (sb == null) {
sb = new StringBuilder();
}
else {
sb.append(", ");
}
sb.append(node.createID());
}
final String idString = sb.toString();
final ClipboardController clipboardController = (ClipboardController) Controller.getCurrentModeController().getExtension(
ClipboardController.class);
clipboardController.setClipboardContents(new StringSelection(idString));
controller.getViewController().out(idString);
}
}