From a0b8eefc605b41ce6703750e4c8c0e04fbc76c30 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Fri, 4 May 2007 13:19:18 +0000 Subject: [PATCH] Change shortcut context launch enablement to be true for executables and C projects. --- launch/org.eclipse.cdt.launch/plugin.xml | 18 +++++--- .../cdt/launch/internal/CPropertyTester.java | 41 ++++++++----------- 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/launch/org.eclipse.cdt.launch/plugin.xml b/launch/org.eclipse.cdt.launch/plugin.xml index e0672588dd0..22841d6b411 100644 --- a/launch/org.eclipse.cdt.launch/plugin.xml +++ b/launch/org.eclipse.cdt.launch/plugin.xml @@ -80,11 +80,17 @@ - - - - - + + + + + @@ -110,7 +116,7 @@ diff --git a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CPropertyTester.java b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CPropertyTester.java index 9d85b63de6a..e048fc2e561 100644 --- a/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CPropertyTester.java +++ b/launch/org.eclipse.cdt.launch/src/org/eclipse/cdt/launch/internal/CPropertyTester.java @@ -14,7 +14,9 @@ package org.eclipse.cdt.launch.internal; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.IBinary; import org.eclipse.cdt.core.model.ICElement; +import org.eclipse.cdt.core.model.ICProject; import org.eclipse.core.expressions.PropertyTester; +import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IAdaptable; @@ -23,35 +25,15 @@ import org.eclipse.core.runtime.IAdaptable; */ public class CPropertyTester extends PropertyTester { - /* (non-Javadoc) - * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object) - */ public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { - if ("isCElement".equals(property)) { //$NON-NLS-1$ - return isCElement(receiver); - } - if ("isExecutable".equals(property)) { //$NON-NLS-1$ + if ("isExecutable".equals(property)) //$NON-NLS-1$ return isExecutable(receiver); - } - return false; + else if ("isCProject".equals(property)) //$NON-NLS-1$ + return isCProject(receiver); + else + return false; } - private boolean isCElement(Object receiver) { - ICElement celement = null; - if (receiver instanceof IAdaptable) { - IResource res = (IResource) ((IAdaptable)receiver).getAdapter(IResource.class); - if (res != null) { - celement = CoreModel.getDefault().create(res); - } - } - return (celement != null); - } - - /** - * Look for executable. - * @return true if the target resource has a main method, - * false otherwise. - */ private boolean isExecutable(Object receiver) { ICElement celement = null; if (receiver instanceof IAdaptable) { @@ -63,4 +45,13 @@ public class CPropertyTester extends PropertyTester { return (celement != null && celement instanceof IBinary); } + private boolean isCProject(Object receiver) { + if (receiver instanceof IProject) + return CoreModel.hasCNature((IProject)receiver); + else if (receiver instanceof ICProject) + return true; + else + return false; + } + }