/******************************************************************************* * Copyright (c) 2007 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.seam.ui.search; import org.eclipse.core.resources.IFile; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.search.internal.ui.SearchPluginImages; import org.eclipse.search.ui.ISearchQuery; import org.eclipse.search.ui.text.AbstractTextSearchResult; import org.eclipse.search.ui.text.IEditorMatchAdapter; import org.eclipse.search.ui.text.IFileMatchAdapter; import org.eclipse.search.ui.text.Match; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IFileEditorInput; /** * Seam Search result * * * @author Jeremy * */ public class SeamSearchResult extends AbstractTextSearchResult implements IEditorMatchAdapter, IFileMatchAdapter { private final Match[] EMPTY_ARR= new Match[0]; private SeamSearchQuery fQuery; /** * Constructs SeamSearchResult using a given search Job * * @param job */ public SeamSearchResult(SeamSearchQuery job) { fQuery= job; } /** * (non-Javadoc) * @see org.eclipse.search.ui.ISearchResult#getImageDescriptor() */ public ImageDescriptor getImageDescriptor() { return SearchPluginImages.DESC_OBJ_TSEARCH_DPDN; } /** * (non-Javadoc) * @see org.eclipse.search.ui.ISearchResult#getLabel() */ public String getLabel() { return fQuery.getResultLabel(getMatchCount()); } /** * (non-Javadoc) * @see org.eclipse.search.ui.ISearchResult#getTooltip() */ public String getTooltip() { return getLabel(); } /** * (non-Javadoc) * @see org.eclipse.search.ui.text.IFileMatchAdapter#computeContainedMatches(org.eclipse.search.ui.text.AbstractTextSearchResult, org.eclipse.core.resources.IFile) */ public Match[] computeContainedMatches(AbstractTextSearchResult result, IFile file) { return getMatches(file); } /** * (non-Javadoc) * @see org.eclipse.search.ui.text.IFileMatchAdapter#getFile(java.lang.Object) */ public IFile getFile(Object element) { if (element instanceof IFile) return (IFile)element; return null; } /** * (non-Javadoc) * @see org.eclipse.search.ui.text.IEditorMatchAdapter#isShownInEditor(org.eclipse.search.ui.text.Match, org.eclipse.ui.IEditorPart) */ public boolean isShownInEditor(Match match, IEditorPart editor) { IEditorInput ei= editor.getEditorInput(); if (ei instanceof IFileEditorInput) { IFileEditorInput fi= (IFileEditorInput) ei; return match.getElement().equals(fi.getFile()); } return false; } /** * (non-Javadoc) * @see org.eclipse.search.ui.text.IEditorMatchAdapter#computeContainedMatches(org.eclipse.search.ui.text.AbstractTextSearchResult, org.eclipse.ui.IEditorPart) */ public Match[] computeContainedMatches(AbstractTextSearchResult result, IEditorPart editor) { IEditorInput ei= editor.getEditorInput(); if (ei instanceof IFileEditorInput) { IFileEditorInput fi= (IFileEditorInput) ei; return getMatches(fi.getFile()); } return EMPTY_ARR; } /** * (non-Javadoc) * @see org.eclipse.search.ui.ISearchResult#getQuery() */ public ISearchQuery getQuery() { return fQuery; } /** * (non-Javadoc) * @see org.eclipse.search.ui.text.AbstractTextSearchResult#getFileMatchAdapter() */ public IFileMatchAdapter getFileMatchAdapter() { return this; } /** * (non-Javadoc) * @see org.eclipse.search.ui.text.AbstractTextSearchResult#getEditorMatchAdapter() */ public IEditorMatchAdapter getEditorMatchAdapter() { return this; } }