diff options
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/update/UpdateDiagramCommand.java')
-rwxr-xr-x | plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/update/UpdateDiagramCommand.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/update/UpdateDiagramCommand.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/update/UpdateDiagramCommand.java new file mode 100755 index 00000000000..6752fc0a360 --- /dev/null +++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.tooling.runtime/src/org/eclipse/papyrus/infra/gmfdiag/tooling/runtime/update/UpdateDiagramCommand.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2007, 2012 Borland Software Corporation and others + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Dmitry Stadnik (Borland) - initial API and implementation + * Michael Golubev (Montages) - API extracted to gmf.tooling.runtime (#372479) + */ +package org.eclipse.papyrus.infra.gmfdiag.tooling.runtime.update; + +import java.util.Iterator; +import java.util.List; + +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.IHandler; +import org.eclipse.core.commands.IHandlerListener; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.gef.EditPart; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CanonicalEditPolicy; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.PlatformUI; + +/** + * @since 3.0 + */ +public class UpdateDiagramCommand implements IHandler { + + public void addHandlerListener(IHandlerListener handlerListener) { + // + } + + public void removeHandlerListener(IHandlerListener handlerListener) { + // + } + + public void dispose() { + // + } + + public Object execute(ExecutionEvent event) throws ExecutionException { + ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection(); + if (selection instanceof IStructuredSelection) { + IStructuredSelection structuredSelection = (IStructuredSelection) selection; + if (structuredSelection.size() != 1) { + return null; + } + if (structuredSelection.getFirstElement() instanceof EditPart && ((EditPart) structuredSelection.getFirstElement()).getModel() instanceof View) { + EObject modelElement = ((View) ((EditPart) structuredSelection.getFirstElement()).getModel()).getElement(); + List<?> editPolicies = CanonicalEditPolicy.getRegisteredEditPolicies(modelElement); + for (Iterator<?> it = editPolicies.iterator(); it.hasNext();) { + CanonicalEditPolicy nextEditPolicy = (CanonicalEditPolicy) it.next(); + nextEditPolicy.refresh(); + } + + } + } + return null; + } + + public boolean isEnabled() { + return true; + } + + public boolean isHandled() { + return true; + } + +} |