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