View | Details | Raw Unified | Return to bug 263870 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/internal/ide/ui/actions/FocusResourceNavigatorAction.java (+52 lines)
Lines 12-35 Link Here
12
package org.eclipse.mylyn.internal.ide.ui.actions;
12
package org.eclipse.mylyn.internal.ide.ui.actions;
13
13
14
import java.util.ArrayList;
14
import java.util.ArrayList;
15
import java.util.HashSet;
15
import java.util.List;
16
import java.util.List;
17
import java.util.Set;
16
18
17
import org.eclipse.core.resources.IResource;
19
import org.eclipse.core.resources.IResource;
18
import org.eclipse.core.runtime.CoreException;
20
import org.eclipse.core.runtime.CoreException;
21
import org.eclipse.core.runtime.IConfigurationElement;
22
import org.eclipse.core.runtime.IExtension;
23
import org.eclipse.core.runtime.IExtensionPoint;
24
import org.eclipse.core.runtime.Platform;
19
import org.eclipse.jface.action.ActionContributionItem;
25
import org.eclipse.jface.action.ActionContributionItem;
20
import org.eclipse.jface.action.IContributionItem;
26
import org.eclipse.jface.action.IContributionItem;
21
import org.eclipse.jface.text.ITextSelection;
27
import org.eclipse.jface.text.ITextSelection;
22
import org.eclipse.jface.viewers.ISelection;
28
import org.eclipse.jface.viewers.ISelection;
23
import org.eclipse.jface.viewers.StructuredSelection;
29
import org.eclipse.jface.viewers.StructuredSelection;
24
import org.eclipse.jface.viewers.StructuredViewer;
30
import org.eclipse.jface.viewers.StructuredViewer;
31
import org.eclipse.jface.viewers.ViewerFilter;
25
import org.eclipse.mylyn.context.ui.AbstractAutoFocusViewAction;
32
import org.eclipse.mylyn.context.ui.AbstractAutoFocusViewAction;
26
import org.eclipse.mylyn.context.ui.InterestFilter;
33
import org.eclipse.mylyn.context.ui.InterestFilter;
34
import org.eclipse.mylyn.internal.context.ui.ContextUiPlugin;
27
import org.eclipse.ui.IEditorInput;
35
import org.eclipse.ui.IEditorInput;
28
import org.eclipse.ui.IEditorPart;
36
import org.eclipse.ui.IEditorPart;
29
import org.eclipse.ui.IViewPart;
37
import org.eclipse.ui.IViewPart;
38
import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
30
import org.eclipse.ui.views.navigator.FilterSelectionAction;
39
import org.eclipse.ui.views.navigator.FilterSelectionAction;
31
import org.eclipse.ui.views.navigator.IResourceNavigator;
40
import org.eclipse.ui.views.navigator.IResourceNavigator;
32
import org.eclipse.ui.views.navigator.ResourceNavigator;
41
import org.eclipse.ui.views.navigator.ResourceNavigator;
42
import org.eclipse.ui.views.navigator.ResourcePatternFilter;
33
import org.eclipse.ui.views.navigator.ToggleLinkingAction;
43
import org.eclipse.ui.views.navigator.ToggleLinkingAction;
34
44
35
/**
45
/**
Lines 111-114 Link Here
111
		return false;
121
		return false;
112
	}
122
	}
113
123
124
	private Set<String> getPreservedFilterPatterns() {
125
		IExtensionPoint extension = Platform.getExtensionRegistry().getExtensionPoint(
126
				IDEWorkbenchPlugin.IDE_WORKBENCH + '.' + "resourceFilters");
127
		Set<String> preservedIds = ContextUiPlugin.getDefault().getPreservedFilterIds(viewPart.getSite().getId());
128
		Set<String> filters = new HashSet<String>();
129
		if (extension != null) {
130
			IExtension[] extensions = extension.getExtensions();
131
			for (IExtension extension2 : extensions) {
132
				IConfigurationElement[] configElements = extension2.getConfigurationElements();
133
				if (extension2.getUniqueIdentifier() != null && preservedIds.contains(extension2.getUniqueIdentifier())) {
134
					for (IConfigurationElement configElement : configElements) {
135
						String pattern = configElement.getAttribute("pattern");//$NON-NLS-1$
136
						if (pattern != null) {
137
							filters.add(pattern);
138
						}
139
						String selected = configElement.getAttribute("selected");//$NON-NLS-1$
140
						if (selected != null && selected.equalsIgnoreCase("true")) { //$NON-NLS-1$
141
							//defaultFilters.add(pattern);
142
						}
143
					}
144
				}
145
146
			}
147
		}
148
		return filters;
149
	}
150
151
	@Override
152
	protected boolean isPreservedFilter(ViewerFilter filter) {
153
		if (filter instanceof ResourcePatternFilter) {
154
			Set<String> preservedFilterPatterns = getPreservedFilterPatterns();
155
			//NOTE: since the resource filters are all contained in one filter, if one is preserved, then we preserve all filters
156
			for (String pattern : ((ResourcePatternFilter) filter).getPatterns()) {
157
				if (preservedFilterPatterns.contains(pattern)) {
158
					return true;
159
				}
160
			}
161
			return true;
162
		}
163
		return super.isPreservedFilter(filter);
164
	}
165
114
}
166
}

Return to bug 263870