diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 88487783edc..c23cfe4715e 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,9 @@ +2005-04-06 David Inglis + Fixed bug# 90440 + * plugin.xml + * src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java + * src/org/eclipse/cdt/internal/ui/CWorkbenchAdapter.java + 2005-04-04 Alain Magloire Move to Eclipse-31M6 * src/org/eclipse/cdt/internal/ui/cview/CopyAction.java diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml index 872cc689c2c..ab02e1ad8fa 100644 --- a/core/org.eclipse.cdt.ui/plugin.xml +++ b/core/org.eclipse.cdt.ui/plugin.xml @@ -64,6 +64,9 @@ + + + diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java index 102fe7328f6..0bb05f995a3 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CElementAdapterFactory.java @@ -12,6 +12,7 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.runtime.IAdapterFactory; +import org.eclipse.ui.IActionFilter; import org.eclipse.ui.model.IWorkbenchAdapter; import org.eclipse.ui.progress.IDeferredWorkbenchAdapter; import org.eclipse.ui.views.properties.FilePropertySource; @@ -29,7 +30,8 @@ public class CElementAdapterFactory implements IAdapterFactory { IWorkbenchAdapter.class, IDeferredWorkbenchAdapter.class, IProject.class, - IWorkspaceRoot.class + IWorkspaceRoot.class, + IActionFilter.class }; private static CWorkbenchAdapter fgCWorkbenchAdapter= new CWorkbenchAdapter(); @@ -75,6 +77,8 @@ public class CElementAdapterFactory implements IAdapterFactory { return fgDeferredCWorkbenchAdapter; } else if (IWorkbenchAdapter.class.equals(key)) { return fgCWorkbenchAdapter; + } else if (IActionFilter.class.equals(key)) { + return fgCWorkbenchAdapter; } return null; } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CWorkbenchAdapter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CWorkbenchAdapter.java index a30d9860228..5f165b1e6bf 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CWorkbenchAdapter.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CWorkbenchAdapter.java @@ -5,20 +5,21 @@ package org.eclipse.cdt.internal.ui; * All Rights Reserved. */ -import org.eclipse.jface.resource.ImageDescriptor; -import org.eclipse.ui.model.IWorkbenchAdapter; - import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.IParent; import org.eclipse.cdt.internal.ui.viewsupport.CElementImageProvider; import org.eclipse.cdt.ui.CElementLabelProvider; import org.eclipse.cdt.ui.CUIPlugin; +import org.eclipse.core.resources.IResource; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ui.IActionFilter; +import org.eclipse.ui.model.IWorkbenchAdapter; /** * An imlementation of the IWorkbenchAdapter for CElements. */ -public class CWorkbenchAdapter implements IWorkbenchAdapter { +public class CWorkbenchAdapter implements IWorkbenchAdapter, IActionFilter { private static final Object[] fgEmptyArray = new Object[0]; private CElementImageProvider fImageProvider; @@ -77,4 +78,16 @@ public class CWorkbenchAdapter implements IWorkbenchAdapter { } return null; } + + public boolean testAttribute(Object target, String name, String value) { + ICElement element = (ICElement)target; + IResource resource = element.getResource(); + if (resource != null) { + IActionFilter filter = (IActionFilter)resource.getAdapter(IActionFilter.class); + if (filter != null) { + return filter.testAttribute(resource, name, value); + } + } + return false; + } }