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; + } + }