diff options
author | Mickael ADAM | 2016-12-05 09:21:07 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2016-12-06 08:49:00 +0000 |
commit | 2ce462f49df8e80ac00d59a988c7f1d464d25aa6 (patch) | |
tree | bb366e7bfad4fd2035e100094ef7539e9005d698 /plugins/views/modelexplorer | |
parent | bb8bd38eb65f1c405ca4a8a70dcf4087d983894e (diff) | |
download | org.eclipse.papyrus-2ce462f49df8e80ac00d59a988c7f1d464d25aa6.tar.gz org.eclipse.papyrus-2ce462f49df8e80ac00d59a988c7f1d464d25aa6.tar.xz org.eclipse.papyrus-2ce462f49df8e80ac00d59a988c7f1d464d25aa6.zip |
Bug 508516 - [Model Explorer] Removing profile filter broke the search
https://bugs.eclipse.org/bugs/show_bug.cgi?id=508516
- declare filter with extension point instead of use viewer.addFilter()
Change-Id: Ibfe02041080c644d89f2649427cffcbba9bda4cc
Signed-off-by: Mickael ADAM <mickael.adam@ALL4TEC.net>
Diffstat (limited to 'plugins/views/modelexplorer')
2 files changed, 28 insertions, 2 deletions
diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/plugin.xml b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/plugin.xml index 486a094776e..32386f69d92 100644 --- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/plugin.xml +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/plugin.xml @@ -114,6 +114,13 @@ </or> </enablement> </actionProvider> + <commonFilter + activeByDefault="true" + class="org.eclipse.papyrus.infra.widgets.providers.PatternViewerFilter" + id="org.eclipse.papyrus.views.modelexplorer.filter" + name="search filter" + visibleInUI="false"> + </commonFilter> </extension> <!-- <extension diff --git a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/ModelExplorerView.java b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/ModelExplorerView.java index 2e3ca0a0d33..d25b7fc021d 100644 --- a/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/ModelExplorerView.java +++ b/plugins/views/modelexplorer/org.eclipse.papyrus.views.modelexplorer/src/org/eclipse/papyrus/views/modelexplorer/ModelExplorerView.java @@ -56,6 +56,7 @@ import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.jface.viewers.Viewer; import org.eclipse.jface.viewers.ViewerColumn; +import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.jface.window.ToolTip; import org.eclipse.papyrus.commands.DestroyElementPapyrusCommand; import org.eclipse.papyrus.infra.core.resource.IReadOnlyHandler2; @@ -131,6 +132,7 @@ import org.eclipse.ui.navigator.CommonViewerSorter; import org.eclipse.ui.navigator.IExtensionActivationListener; import org.eclipse.ui.navigator.ILinkHelper; import org.eclipse.ui.navigator.INavigatorContentService; +import org.eclipse.ui.navigator.INavigatorFilterService; import org.eclipse.ui.navigator.LinkHelperService; import org.eclipse.ui.part.FileEditorInput; import org.eclipse.ui.views.properties.IPropertySheetPage; @@ -149,6 +151,9 @@ import com.google.common.collect.Lists; */ public class ModelExplorerView extends CommonNavigator implements IRevealSemanticElement, IEditingDomainProvider, IPageLifeCycleEventsListener { + /** The Id of the declared search field filter. */ + private static final String SEARCH_FILTER_ID = "org.eclipse.papyrus.views.modelexplorer.filter";//$NON-NLS-1$ + private SharedModelExplorerState sharedState; private SharedModelExplorerState.StateChangedListener sharedStateListener; @@ -643,8 +648,22 @@ public class ModelExplorerView extends CommonNavigator implements IRevealSemanti filterComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false)); // Set the viewerFilter - viewerFilter = new PatternViewerFilter(); - getCommonViewer().setFilters(viewerFilter); + INavigatorFilterService filterService = getCommonViewer().getNavigatorContentService().getFilterService(); + if (!filterService.isActive(SEARCH_FILTER_ID)) { + String[] filterId = { SEARCH_FILTER_ID }; + filterService.activateFilterIdsAndUpdateViewer(filterId); + } + ViewerFilter[] visibleFilters = filterService.getVisibleFilters(true); + for (int i = 0; i < visibleFilters.length; i++) { + if (visibleFilters[i] instanceof PatternViewerFilter) { + viewerFilter = (PatternViewerFilter) visibleFilters[i]; + break; + } + } + if (null == viewerFilter) { + viewerFilter = new PatternViewerFilter(); + } + viewerFilter.setPattern("*");//$NON-NLS-1$ // Create the filter composite |