diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog
index 762b49d5141..5a8899c7ae3 100644
--- a/core/org.eclipse.cdt.ui/ChangeLog
+++ b/core/org.eclipse.cdt.ui/ChangeLog
@@ -1,3 +1,13 @@
+2004-08-04 Alain Magloire
+
+ Provide filters for the Outliner.
+
+ * src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
+ * src/org/eclipse/cdt/internal/ui/filters/MacroDirectiveFilter.java
+ * src/org/eclipse/cdt/internal/ui/filters/UsingDirectiveFilter.java
+ * plugin.properties
+ * plugin.xml
+
2004-08-04 Alain Magloire
Fix ShowInCView class
diff --git a/core/org.eclipse.cdt.ui/plugin.properties b/core/org.eclipse.cdt.ui/plugin.properties
index 7e405d165e9..454f8f43d48 100644
--- a/core/org.eclipse.cdt.ui/plugin.properties
+++ b/core/org.eclipse.cdt.ui/plugin.properties
@@ -174,6 +174,13 @@ HideCFiles.description= Hides all C files
HideHeaderFiles.label= Header files
HideHeaderFiles.description= Hides all Header files
+HideUsingDirective.label= Using directive
+HideMacroDirective.description= Hides using directives
+
+HideMacroDirective.label= Macro directive
+HideMacrodirective.description= Hides Macro directives
+
+#
WorkInProgress.name=Work In Progress
CDTSearch.name=Search
diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml
index 1feb3d8bd91..6c42a0a9c99 100644
--- a/core/org.eclipse.cdt.ui/plugin.xml
+++ b/core/org.eclipse.cdt.ui/plugin.xml
@@ -59,10 +59,13 @@
-
+
+
+
@@ -122,6 +125,23 @@
class="org.eclipse.cdt.internal.ui.filters.NonCElementFilter"
id="org.eclipse.cdt.internal.ui.CView.NonCElementFilter">
+
+
+
+
+
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
index d734ae7d2f8..3aff81269aa 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/CContentOutlinePage.java
@@ -19,6 +19,7 @@ import org.eclipse.cdt.internal.ui.search.actions.SelectionSearchGroup;
import org.eclipse.cdt.internal.ui.util.ProblemTreeViewer;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.ui.PreferenceConstants;
+import org.eclipse.cdt.ui.actions.CustomFiltersActionGroup;
import org.eclipse.cdt.ui.actions.MemberFilterActionGroup;
import org.eclipse.cdt.ui.actions.OpenViewActionGroup;
import org.eclipse.cdt.ui.actions.RefactoringActionGroup;
@@ -68,6 +69,11 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
private ActionGroup fSelectionSearchGroup;
private ActionGroup fRefactoringActionGroup;
private ActionGroup fOpenViewActionGroup;
+ /**
+ * Custom filter action group.
+ * @since 3.0
+ */
+ private CustomFiltersActionGroup fCustomFiltersActionGroup;
public class IncludeGroupingAction extends Action {
CContentOutlinePage outLine;
@@ -95,6 +101,10 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
}
}
+ public boolean isIncludesGroupingEnabled () {
+ return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.OUTLINE_GROUP_INCLUDES);
+ }
+
}
/**
@@ -261,7 +271,9 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
fSelectionSearchGroup = new SelectionSearchGroup(this);
fRefactoringActionGroup = new RefactoringActionGroup(this, null);
fOpenViewActionGroup = new OpenViewActionGroup(this);
-
+ // Custom filter group
+ fCustomFiltersActionGroup= new CustomFiltersActionGroup("org.eclipse.cdt.ui.COutlinePage", getTreeViewer()); //$NON-NLS-1$
+
treeViewer.setInput(fInput);
WorkbenchHelp.setHelp(control, ICHelpContextIds.COUTLINE_VIEW);
}
@@ -318,7 +330,9 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
fMemberFilterActionGroup= new MemberFilterActionGroup(treeViewer, "COutlineViewer"); //$NON-NLS-1$
fMemberFilterActionGroup.fillActionBars(actionBars);
-
+
+ fCustomFiltersActionGroup.fillActionBars(actionBars);
+
IMenuManager menu= actionBars.getMenuManager();
menu.add(new Separator("EndFilterGroup")); //$NON-NLS-1$
@@ -421,8 +435,4 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
contentUpdated();
}
- public boolean isIncludesGroupingEnabled () {
- return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.OUTLINE_GROUP_INCLUDES);
- }
-
}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/MacroDirectiveFilter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/MacroDirectiveFilter.java
new file mode 100644
index 00000000000..5e337c9928a
--- /dev/null
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/MacroDirectiveFilter.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 QNX Software Systems and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * QNX Software Systems - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.cdt.internal.ui.filters;
+
+import org.eclipse.cdt.core.model.IMacro;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+
+/**
+ * Filter
+ */
+public class MacroDirectiveFilter extends ViewerFilter {
+
+ /*
+ * @see ViewerFilter
+ */
+ public boolean select(Viewer viewer, Object parent, Object element) {
+ return !(element instanceof IMacro);
+ }
+
+}
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/UsingDirectiveFilter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/UsingDirectiveFilter.java
new file mode 100644
index 00000000000..fe330e84b87
--- /dev/null
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/UsingDirectiveFilter.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 QNX Software Systems and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ *
+ * Contributors:
+ * QNX Software Systems - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.cdt.internal.ui.filters;
+
+import org.eclipse.cdt.core.model.IUsing;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+
+/**
+ * Filters package declarations
+ */
+public class UsingDirectiveFilter extends ViewerFilter {
+
+ /*
+ * @see ViewerFilter
+ */
+ public boolean select(Viewer viewer, Object parent, Object element) {
+ return !(element instanceof IUsing);
+ }
+
+}