generation handler class added
diff --git a/org.eclipse.emf.refactor.refactoring.papyrus/META-INF/MANIFEST.MF b/org.eclipse.emf.refactor.refactoring.papyrus/META-INF/MANIFEST.MF index 2ca4c58..ab443e1 100644 --- a/org.eclipse.emf.refactor.refactoring.papyrus/META-INF/MANIFEST.MF +++ b/org.eclipse.emf.refactor.refactoring.papyrus/META-INF/MANIFEST.MF
@@ -5,6 +5,12 @@ Bundle-Version: 0.7.0.qualifier Bundle-Activator: org.eclipse.emf.refactor.refactoring.papyrus.Activator Require-Bundle: org.eclipse.ui, - org.eclipse.core.runtime + org.eclipse.core.runtime, + org.eclipse.emf.ecore;bundle-version="2.8.1", + org.eclipse.emf.refactor.refactoring;bundle-version="0.7.0", + org.eclipse.emf.refactor.refactoring.generator;bundle-version="0.7.0", + org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.6.0", + org.eclipse.emf.facet.infra.browser.uicore;bundle-version="0.2.1" Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Import-Package: org.eclipse.ui
diff --git a/org.eclipse.emf.refactor.refactoring.papyrus/build.properties b/org.eclipse.emf.refactor.refactoring.papyrus/build.properties index 34d2e4d..2702b4e 100644 --- a/org.eclipse.emf.refactor.refactoring.papyrus/build.properties +++ b/org.eclipse.emf.refactor.refactoring.papyrus/build.properties
@@ -1,4 +1,8 @@ source.. = src/ output.. = bin/ bin.includes = META-INF/,\ - . + .,\ + plugin.xml,\ + bin/,\ + icons/,\ + src/
diff --git a/org.eclipse.emf.refactor.refactoring.papyrus/icons/refactoring.png b/org.eclipse.emf.refactor.refactoring.papyrus/icons/refactoring.png new file mode 100644 index 0000000..011556a --- /dev/null +++ b/org.eclipse.emf.refactor.refactoring.papyrus/icons/refactoring.png Binary files differ
diff --git a/org.eclipse.emf.refactor.refactoring.papyrus/plugin.xml b/org.eclipse.emf.refactor.refactoring.papyrus/plugin.xml new file mode 100644 index 0000000..d879761 --- /dev/null +++ b/org.eclipse.emf.refactor.refactoring.papyrus/plugin.xml
@@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + <extension + id="org.eclipse.emf.refactor.papyrus.menu" + point="org.eclipse.ui.menus"> + <menuContribution + allPopups="true" + locationURI="popup:org.eclipse.ui.popup.any?after=additions"> + <menu + id="org.eclipse.emf.refactor.generator.menu" + label="EMF Quality Assurance (define new techniques)"> + <command + commandId="org.eclipse.emf.refactor.refactoring.papyrus.generateNewRefactoringJavaCommand" + icon="icons/refactoring.png" + label="Generate New Refactoring (specified in Java)" + style="push"> + <visibleWhen + checkEnabled="true"> + <iterate + ifEmpty="false"> + <or> + <instanceof + value="org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart"> + </instanceof> + <instanceof + value="org.eclipse.emf.facet.infra.browser.uicore.internal.model.ModelElementItem"> + </instanceof> + </or> + </iterate> + </visibleWhen> + </command> + </menu> + </menuContribution> + </extension> + <extension + point="org.eclipse.ui.commands"> + <command + id="org.eclipse.emf.refactor.refactoring.papyrus.generateNewRefactoringJavaCommand" + name="GenerateNewRefactoringJavaCommand"> + </command> + </extension> + <extension + point="org.eclipse.ui.handlers"> + <handler + class="org.eclipse.emf.refactor.refactoring.papyrus.handler.GenerateNewRefactoringJavaCommandHandler" + commandId="org.eclipse.emf.refactor.refactoring.papyrus.generateNewRefactoringJavaCommand"> + </handler> + </extension> + +</plugin>
diff --git a/org.eclipse.emf.refactor.refactoring.papyrus/src/org/eclipse/emf/refactor/refactoring/papyrus/handler/GenerateNewRefactoringJavaCommandHandler.java b/org.eclipse.emf.refactor.refactoring.papyrus/src/org/eclipse/emf/refactor/refactoring/papyrus/handler/GenerateNewRefactoringJavaCommandHandler.java new file mode 100644 index 0000000..37efd66 --- /dev/null +++ b/org.eclipse.emf.refactor.refactoring.papyrus/src/org/eclipse/emf/refactor/refactoring/papyrus/handler/GenerateNewRefactoringJavaCommandHandler.java
@@ -0,0 +1,54 @@ +package org.eclipse.emf.refactor.refactoring.papyrus.handler; + +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.emf.ecore.EPackage; +import org.eclipse.emf.refactor.refactoring.generator.ui.NewRefactoringWizardJava; +import org.eclipse.emf.refactor.refactoring.papyrus.managers.PapyrusSelectionManager; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; + +public class GenerateNewRefactoringJavaCommandHandler implements IHandler { + + @Override + public void addHandlerListener(IHandlerListener handlerListener) { } + + @Override + public void dispose() { } + + @Override + public Object execute(ExecutionEvent event) throws ExecutionException { + IWorkbenchWindow win = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + ISelection selection = win.getSelectionService().getSelection(); + List<EObject> context = PapyrusSelectionManager.getESelection(selection); + EObject selectedEObject = context.get(0); + String metamodel = ((EPackage) selectedEObject.eClass().eContainer()).getNsURI(); + String contextType = selectedEObject.eClass().getInstanceClass().getSimpleName(); + NewRefactoringWizardJava wizard = new NewRefactoringWizardJava(metamodel, contextType); + wizard.init(win.getWorkbench(), (IStructuredSelection) selection); + WizardDialog dialog = new WizardDialog(win.getShell(), wizard); + return dialog.open(); + } + + @Override + public boolean isEnabled() { + return true; + } + + @Override + public boolean isHandled() { + return true; + } + + @Override + public void removeHandlerListener(IHandlerListener handlerListener) { } + +}