package org.freeplane.plugin.script;
import java.awt.event.ActionEvent;
import org.freeplane.core.ui.AMultipleNodeAction;
import org.freeplane.core.util.LogUtils;
import org.freeplane.features.map.NodeModel;
import org.freeplane.features.mode.Controller;
public class ExecuteScriptForSelectionAction extends AMultipleNodeAction {
private static final long serialVersionUID = 1L;
private boolean success;
public ExecuteScriptForSelectionAction() {
super("ExecuteScriptForSelectionAction");
}
@Override
public void actionPerformed(final ActionEvent e) {
success = true;
Controller.getCurrentController().getViewController().setWaitingCursor(true);
try {
super.actionPerformed(e);
}
finally {
Controller.getCurrentController().getViewController().setWaitingCursor(false);
}
}
@Override
protected void actionPerformed(final ActionEvent e, final NodeModel node) {
if (!success) {
return;
}
try {
ScriptingEngine.performScriptOperation(node);
}
catch (ExecuteScriptException ex) {
LogUtils.warn(ex);
ScriptingEngine.showScriptExceptionErrorMessage(ex);
success = false;
}
}
}