package org.xmind.ui.internal.handlers;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.handlers.HandlerUtil;
import org.xmind.gef.EditDomain;
import org.xmind.gef.IGraphicalViewer;
import org.xmind.gef.Request;
import org.xmind.ui.commands.MindMapCommandConstants;
import org.xmind.ui.mindmap.MindMapUI;
public class AddMarkerHandler extends AbstractHandler {
private static final String DEFAULT_MARKER_ID = "priority-1"; //$NON-NLS-1$
public Object execute(ExecutionEvent event) throws ExecutionException {
addMarker(event);
return null;
}
private void addMarker(ExecutionEvent event) {
IEditorPart editor = HandlerUtil.getActiveEditor(event);
if (editor == null)
return;
IGraphicalViewer viewer = editor.getAdapter(IGraphicalViewer.class);
if (viewer == null)
return;
EditDomain domain = viewer.getEditDomain();
if (domain == null)
return;
Request request = new Request(MindMapUI.REQ_ADD_MARKER);
request.setViewer(viewer);
request.setDomain(domain);
String markerId = event.getParameter(
MindMapCommandConstants.ADD_MARKER_PARAM_MARKER_ID);
if (markerId == null)
markerId = DEFAULT_MARKER_ID;
request.setParameter(MindMapUI.PARAM_MARKER_ID, markerId);
domain.handleRequest(request);
}
}