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