From 9cc4fa6e5a527eb5418dbf991b740d7e80c960d3 Mon Sep 17 00:00:00 2001 From: Bogdan Gheorghe Date: Wed, 28 Apr 2004 21:04:33 +0000 Subject: [PATCH] Search UI fix for Integration builds --- .../cdt/internal/ui/search/CSearchResult.java | 9 +++- .../internal/ui/search/CSearchResultPage.java | 5 +- .../ui/search/CountLabelProvider.java | 54 +++++++++++++++++++ 3 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CountLabelProvider.java diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResult.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResult.java index 82e3a16c106..5c24eb164b1 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResult.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResult.java @@ -144,6 +144,13 @@ public class CSearchResult extends AbstractTextSearchResult { * @see org.eclipse.search.ui.ISearchResult#getLabel() */ public String getLabel() { - return cQuery.getLabel(); + int matches = getMatchCount(); + String label = null; + if (matches == 1) + return cQuery.getSingularLabel(); + else + label = cQuery.getPluralLabelPattern(); + + return MessageFormat.format(label, new Object[]{new Integer(matches)}); } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultPage.java index 0941a268975..332a5f11a79 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultPage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CSearchResultPage.java @@ -23,7 +23,6 @@ import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.search.internal.ui.text.DelegatingLabelProvider; import org.eclipse.search.ui.SearchUI; import org.eclipse.search.ui.text.AbstractTextSearchViewPage; import org.eclipse.search.ui.text.Match; @@ -93,7 +92,7 @@ public class CSearchResultPage extends AbstractTextSearchViewPage { */ protected void configureTreeViewer(TreeViewer viewer) { //viewer.setSorter(new ViewerSorter()); - viewer.setLabelProvider(new CSearchResultLabelProvider()); + viewer.setLabelProvider(new CountLabelProvider(this,new CSearchResultLabelProvider())); _contentProvider= new LevelTreeContentProvider(viewer, _currentGrouping); viewer.setContentProvider(_contentProvider); } @@ -101,7 +100,7 @@ public class CSearchResultPage extends AbstractTextSearchViewPage { * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#configureTableViewer(org.eclipse.jface.viewers.TableViewer) */ protected void configureTableViewer(TableViewer viewer) { - viewer.setLabelProvider(new DelegatingLabelProvider(this, new CSearchResultLabelProvider())); + viewer.setLabelProvider(new CountLabelProvider(this, new CSearchResultLabelProvider())); _contentProvider=new CSearchTableContentProvider(viewer); viewer.setContentProvider(_contentProvider); //setSortOrder(_currentSortOrder); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CountLabelProvider.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CountLabelProvider.java new file mode 100644 index 00000000000..39e95c87fa2 --- /dev/null +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/search/CountLabelProvider.java @@ -0,0 +1,54 @@ +/* + * Created on Apr 28, 2004 + * + * TODO To change the template for this generated file go to + * Window - Preferences - Java - Code Style - Code Templates + */ +package org.eclipse.cdt.internal.ui.search; + +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.LabelProvider; +import org.eclipse.search.ui.text.AbstractTextSearchViewPage; +import org.eclipse.swt.graphics.Image; + +/** + * @author bgheorgh + * + * TODO To change the template for this generated type comment go to + * Window - Preferences - Java - Code Style - Code Templates + */ +public class CountLabelProvider extends LabelProvider { + + private ILabelProvider fLabelProvider; + private AbstractTextSearchViewPage fPage; + + public CountLabelProvider(AbstractTextSearchViewPage page, ILabelProvider inner) { + fPage= page; + fLabelProvider= inner; + } + + public ILabelProvider getLabelProvider() { + return fLabelProvider; + } + + public Image getImage(Object element) { + return fLabelProvider.getImage(element); + } + + public String getText(Object element) { + int matchCount= fPage.getInput().getMatchCount(element); + String text= fLabelProvider.getText(element); + if (matchCount == 0) + return text; + if (matchCount == 1) + return fLabelProvider.getText(element)+ " (" + 1 + " match)"; //$NON-NLS-1$ //$NON-NLS-2$ + return text + " (" + matchCount + " matches)"; //$NON-NLS-1$ //$NON-NLS-2$ + } + + public void dispose() { + fLabelProvider.dispose(); + super.dispose(); + } + + +}