From 356728ade59b0aafde8488c3c81811f31880b3e6 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Tue, 3 Jan 2012 13:45:37 -0500 Subject: [PATCH] bug 367683: Filter to filter out anonymous structs --- core/org.eclipse.cdt.ui/plugin.properties | 4 ++ core/org.eclipse.cdt.ui/plugin.xml | 22 +++++++++++ .../ui/filters/AnonymousStructFilter.java | 37 +++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/AnonymousStructFilter.java diff --git a/core/org.eclipse.cdt.ui/plugin.properties b/core/org.eclipse.cdt.ui/plugin.properties index 356cea095b7..191ab498eb4 100644 --- a/core/org.eclipse.cdt.ui/plugin.properties +++ b/core/org.eclipse.cdt.ui/plugin.properties @@ -334,6 +334,10 @@ HideUsingDirective.description= Hides using directives HideMacroDirective.label= Macro directive HideMacroDirective.description= Hides Macro directives +HideAnonymousStruct.label= Anonymous structs and enums +HideAnonymousStruct.navigator.label= C/C++ anonymous structs and enums +HideAnonymousStruct.description= Hides all anonymous structs and enums + ForwardDeclarationFilter.label= Forward declaration ForwardDeclarationFilter.description= Hides forward declarations, unless found in a header file. diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml index 1a725d0292a..5862843fc1a 100644 --- a/core/org.eclipse.cdt.ui/plugin.xml +++ b/core/org.eclipse.cdt.ui/plugin.xml @@ -135,6 +135,14 @@ 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/filters/AnonymousStructFilter.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/AnonymousStructFilter.java new file mode 100644 index 00000000000..b2d9ddc8df2 --- /dev/null +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/filters/AnonymousStructFilter.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2011, 2011 Andrew Gvozdev and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Andrew Gvozdev - initial API and implementation + *******************************************************************************/ +package org.eclipse.cdt.internal.ui.filters; + +import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerFilter; + +import org.eclipse.cdt.internal.core.model.CElement; +import org.eclipse.cdt.internal.core.model.Enumeration; +import org.eclipse.cdt.internal.core.model.Structure; + +/** + * Filters out anonymous structs and enums. + */ +public class AnonymousStructFilter extends ViewerFilter { + /** + * Returns the result of this filter, when applied to the + * given inputs. + * + * @return Returns true if element should be included in filtered set + */ + @Override + public boolean select(Viewer viewer, Object parent, Object element) { + if (element instanceof Structure || element instanceof Enumeration) { + return !((CElement) element).getElementName().isEmpty(); + } + return true; + } +} \ No newline at end of file