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.draw2d.PositionConstants; import org.eclipse.ui.IEditorPart; import org.xmind.gef.EditDomain; import org.xmind.gef.GEF; import org.xmind.gef.IViewer; import org.xmind.gef.Request; import org.xmind.ui.commands.MindMapCommandConstants; import org.xmind.ui.internal.MindMapUIPlugin; public class AlignmentHandler extends AbstractHandler { public Object execute(ExecutionEvent event) throws ExecutionException { alignment(MindMapHandlerUtil.findContributingEditor(event), event.getParameter(MindMapCommandConstants.ALIGNMENT_PARAM)); return null; } private void alignment(IEditorPart editor, String param) { if (param == null || editor == null) return; int value = getAlignment(param); if (value == PositionConstants.NONE) return; IViewer viewer = MindMapUIPlugin.getAdapter(editor, IViewer.class); if (viewer == null) return; EditDomain domain = viewer.getEditDomain(); if (domain == null) return; domain.handleRequest(new Request(GEF.REQ_ALIGN).setViewer(viewer) .setParameter(GEF.PARAM_ALIGNMENT, value)); } private int getAlignment(String alignment) { if (MindMapCommandConstants.ALIGNMENT_PARAM_LEFT.equals(alignment)) { return PositionConstants.LEFT; } else if (MindMapCommandConstants.ALIGNMENT_PARAM_RIGHT .equals(alignment)) { return PositionConstants.RIGHT; } else if (MindMapCommandConstants.ALIGNMENT_PARAM_CENTER .equals(alignment)) { return PositionConstants.CENTER; } else if (MindMapCommandConstants.ALIGNMENT_PARAM_TOP.equals(alignment)) { return PositionConstants.TOP; } else if (MindMapCommandConstants.ALIGNMENT_PARAM_MIDDLE .equals(alignment)) { return PositionConstants.MIDDLE; } else if (MindMapCommandConstants.ALIGNMENT_PARAM_BOTTOM .equals(alignment)) { return PositionConstants.BOTTOM; } return PositionConstants.NONE; } }