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.IWorkbenchPart; import org.xmind.core.style.IStyle; import org.xmind.gef.EditDomain; import org.xmind.gef.IViewer; import org.xmind.gef.Request; import org.xmind.ui.internal.MindMapUIPlugin; import org.xmind.ui.internal.tools.StyleCopyPasteTool; import org.xmind.ui.mindmap.MindMapUI; public class PasteStyleHandler extends AbstractHandler { public Object execute(ExecutionEvent event) throws ExecutionException { pasteStyle(MindMapHandlerUtil.findContributingEditor(event)); return null; } private void pasteStyle(IWorkbenchPart part) { if (part == null) return; IStyle sourceStyle = StyleCopyPasteTool.getInstance().getSourceStyle(); if (sourceStyle == null) return; IViewer viewer = MindMapUIPlugin.getAdapter(part, IViewer.class); if (viewer == null) return; EditDomain editDomain = viewer.getEditDomain(); if (editDomain == null) return; editDomain.handleRequest(new Request(MindMapUI.REQ_MODIFY_STYLE) .setViewer(viewer).setDomain(editDomain) .setParameter(MindMapUI.PARAM_RESOURCE, sourceStyle)); } }