diff options
3 files changed, 33 insertions, 50 deletions
diff --git a/extraplugins/codegen/org.eclipse.papyrus.acceleo.ui/.settings/org.eclipse.jdt.core.prefs b/extraplugins/codegen/org.eclipse.papyrus.acceleo.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..f42de363afa --- /dev/null +++ b/extraplugins/codegen/org.eclipse.papyrus.acceleo.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/META-INF/MANIFEST.MF b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/META-INF/MANIFEST.MF index dccf209eea5..0f919264f96 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/META-INF/MANIFEST.MF +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/META-INF/MANIFEST.MF @@ -10,7 +10,8 @@ Require-Bundle: org.eclipse.ui, org.eclipse.papyrus.infra.emf;bundle-version="0.10.1",
org.eclipse.papyrus.acceleo;bundle-version="0.10.1",
org.eclipse.cdt.core;bundle-version="5.5.0",
- org.eclipse.papyrus.infra.core.log;bundle-version="0.10.1"
+ org.eclipse.papyrus.infra.core.log;bundle-version="0.10.1",
+ org.eclipse.papyrus.acceleo.ui;bundle-version="0.10.1"
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
Bundle-Version: 0.10.1.qualifier
diff --git a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handler/GenerateCodeHandler.java b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handler/GenerateCodeHandler.java index 63c6ce97ac3..6430bba1980 100644 --- a/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handler/GenerateCodeHandler.java +++ b/extraplugins/codegen/org.eclipse.papyrus.cpp.codegen.ui/src/org/eclipse/papyrus/cpp/codegen/ui/handler/GenerateCodeHandler.java @@ -14,7 +14,6 @@ package org.eclipse.papyrus.cpp.codegen.ui.handler; import org.eclipse.cdt.core.CCProjectNature; import org.eclipse.cdt.core.CProjectNature; -import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.resources.IContainer; @@ -26,82 +25,58 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.papyrus.acceleo.AcceleoDriver; +import org.eclipse.papyrus.acceleo.ui.handlers.CmdHandler; import org.eclipse.papyrus.cpp.codegen.transformation.CppModelElementsCreator; import org.eclipse.papyrus.cpp.codegen.ui.Activator; -import org.eclipse.papyrus.infra.emf.utils.BusinessModelResolver; import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.PlatformUI; import org.eclipse.uml2.uml.PackageableElement; /** - * <b><u>SyncURI Handler</u></b> - * <p> - * Install a filter that only shows events corresponding to a selected URI + * Handler for C++ code generation */ -public class GenerateCodeHandler extends AbstractHandler { +public class GenerateCodeHandler extends CmdHandler { // ------------------------------------------------------------------------ // Execution // ------------------------------------------------------------------------ - private EObject selectedEObj; - @Override public boolean isEnabled() { - // intercept isEnabled operation in order to get selected eObject. - - // Get current selection - Object selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().getSelection(); - - // Get first element if the selection is an IStructuredSelection - if(selection instanceof IStructuredSelection) { - IStructuredSelection structuredSelection = (IStructuredSelection)selection; - selection = structuredSelection.getFirstElement(); - } + updateSelectedEObject(); - // Treat non-null selected object (try to adapt and return EObject) - if(selection != null) { - Object businessObject = BusinessModelResolver.getInstance().getBusinessModel(selection); - if(businessObject instanceof EObject) { + if (selectedEObject != null) { + URI uri = selectedEObject.eResource().getURI(); - selectedEObj = (EObject)businessObject; - - URI uri = selectedEObj.eResource().getURI(); - - // URIConverter uriConverter = resource.getResourceSet().getURIConverter(); - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - if(uri.segmentCount() < 2) { - return false; - } - IProject modelProject = root.getProject(uri.segment(1)); - if(modelProject.exists()) { - try { - // check whether the project is a C or C++ project - if(modelProject.hasNature(CProjectNature.C_NATURE_ID) || - modelProject.hasNature(CCProjectNature.CC_NATURE_ID)) { - return true; - } - } - catch (CoreException e) { - Activator.getDefault().getLog().log(new Status(IStatus.ERROR, - Activator.PLUGIN_ID, e.getMessage(), e)); + // URIConverter uriConverter = resource.getResourceSet().getURIConverter(); + IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); + if(uri.segmentCount() < 2) { + return false; + } + IProject modelProject = root.getProject(uri.segment(1)); + if(modelProject.exists()) { + try { + // check whether the project is a C or C++ project + if(modelProject.hasNature(CProjectNature.C_NATURE_ID) || + modelProject.hasNature(CCProjectNature.CC_NATURE_ID)) { + return true; } } + catch (CoreException e) { + Activator.getDefault().getLog().log(new Status(IStatus.ERROR, + Activator.PLUGIN_ID, e.getMessage(), e)); + } } } - selectedEObj = null; return false; } public Object execute(ExecutionEvent event) throws ExecutionException { - if(selectedEObj instanceof PackageableElement) { - PackageableElement pe = (PackageableElement)selectedEObj; + if(selectedEObject instanceof PackageableElement) { + PackageableElement pe = (PackageableElement)selectedEObject; URI uri = pe.eResource().getURI(); |