package org.freeplane.features.clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.event.ActionEvent;
import java.io.File;
import org.freeplane.core.ui.AFreeplaneAction;
import org.freeplane.core.ui.components.UITools;
import org.freeplane.core.util.TextUtils;
import org.freeplane.features.map.NodeModel;
import org.freeplane.features.mode.Controller;
public class CopyNodeURIAction extends AFreeplaneAction {
public CopyNodeURIAction() {
super("CopyNodeURIAction");
}
/**
*
*/
private static final long serialVersionUID = 1L;
public void actionPerformed(final ActionEvent e) {
final Controller controller = Controller.getCurrentController();
final NodeModel node = controller.getSelection().getSelected();
File mindmapFile = node.getMap().getFile();
if(mindmapFile == null) {
UITools.errorMessage(TextUtils.getRawText("map_not_saved"));
return;
}
final String idString = mindmapFile.toURI().toString() + '#' + node.createID();
final ClipboardController clipboardController = (ClipboardController) Controller.getCurrentModeController().getExtension(
ClipboardController.class);
clipboardController.setClipboardContents(new StringSelection(idString));
controller.getViewController().out(idString);
}
}