blob: 1d3f56cc74d9f9faa2be779dcea78df3f7c898d7 [file] [log] [blame]
/*
* (c) Copyright IBM Corp. 2000, 2001.
* All Rights Reserved.
*/
package org.eclipse.search.internal.ui;
import org.eclipse.jface.viewers.ContentViewer;
import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jface.viewers.ILabelProvider;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerSorter;
/**
* Sorts the search result viewer by the match as
* delivered by the viewers label provider.
*/
public class MatchSorter extends ViewerSorter {
/*
* Overrides method from ViewerSorter
*/
public int compare(Viewer viewer, Object e1, Object e2) {
String name1;
String name2;
if (!(viewer instanceof ContentViewer)) {
name1= e1.toString();
name2= e2.toString();
} else {
IBaseLabelProvider prov= ((ContentViewer) viewer).getLabelProvider();
if (prov instanceof ILabelProvider) {
ILabelProvider lprov= (ILabelProvider) prov;
name1= lprov.getText(e1);
name2= lprov.getText(e2);
} else {
name1= e1.toString();
name2= e2.toString();
}
}
if (name1 == null)
name1= ""; //$NON-NLS-1$
if (name2 == null)
name2= ""; //$NON-NLS-1$
return name1.toLowerCase().compareTo(name2.toLowerCase());
}
/*
* Overrides method from ViewerSorter
*/
public boolean isSorterProperty(Object element, String property) {
return true;
}
}