package enfo.ui.perspective;
import org.eclipse.jface.viewers.IBaseLabelProvider;
import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.ViewerComparator;
import org.eclipse.ui.IPerspectiveDescriptor;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.PatternFilter;
import enfo.ui.EnfoView;
import enfo.ui.FilteredTreePanel;
public class PerspectivePanel extends FilteredTreePanel {
public PerspectivePanel(EnfoView parent) {
super(parent);
}
@Override
protected ViewerComparator createComparator() {
return new PerspectiveComparator();
}
@Override
protected ITreeContentProvider createContentProvider() {
return new PerspectiveContentProvider();
}
@Override
protected IBaseLabelProvider createLabelProvider() {
return new PerspectiveLabelProvider();
}
@Override
protected PatternFilter createPatternFilter() {
return new PerspectivePatternFilter();
}
@Override
protected String getFilterMessage() {
return "Search by name or ID";
}
@Override
protected Object getInput() {
return PlatformUI.getWorkbench().getPerspectiveRegistry();
}
@Override
protected String getMessage(Object treeNode) {
if (treeNode instanceof IPerspectiveDescriptor) {
return ((IPerspectiveDescriptor) treeNode).getDescription();
}
return super.getMessage(treeNode);
}
}