package com.googlecode.goclipse.search; import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.search.ui.ISearchPageScoreComputer; import com.googlecode.goclipse.core.GoNature; class GoSearchPageScoreComputer implements ISearchPageScoreComputer { public GoSearchPageScoreComputer() { } @Override public int computeScore(String searchPageId, Object input) { if (!GoSearchPage.EXTENSION_POINT_ID.equals(searchPageId)) { return ISearchPageScoreComputer.UNKNOWN; } IResource resource = getResource(input); if (resource != null) { if (resource.getName().endsWith(".go")) { return 90; } try { if (resource.getProject().isNatureEnabled(GoNature.NATURE_ID)) { return 90; } } catch (CoreException e) { } } return UNKNOWN; } private IResource getResource(Object input) { if (input instanceof IResource) { return (IResource) input; } if (input instanceof IAdaptable) { IAdaptable adapt = (IAdaptable) input; return (IResource) adapt.getAdapter(IResource.class); } if (input instanceof IMarker) { IMarker marker = (IMarker) input; return marker.getResource(); } return null; } }