com.siteview.mde.internal.ui.search.dependencies.DependencyExtentQuery.java Source code

Java tutorial

Introduction

Here is the source code for com.siteview.mde.internal.ui.search.dependencies.DependencyExtentQuery.java

Source

/*******************************************************************************
 *  Copyright (c) 2005, 2008 IBM Corporation and others.
 *  All rights reserved. This program and the accompanying materials
 *  are 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:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package com.siteview.mde.internal.ui.search.dependencies;

import java.util.ArrayList;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.*;
import org.eclipse.jdt.core.*;
import com.siteview.mde.internal.ui.MDEUIMessages;
import org.eclipse.search.ui.ISearchQuery;
import org.eclipse.search.ui.ISearchResult;
import org.eclipse.search.ui.text.AbstractTextSearchResult;

public class DependencyExtentQuery implements ISearchQuery {

    private ISearchResult fSearchResult;
    private IProject fProject;
    private String fImportID;

    public DependencyExtentQuery(IProject project, String importID) {
        fProject = project;
        fImportID = importID;
    }

    /* (non-Javadoc)
     * @see org.eclipse.search.ui.ISearchQuery#run(org.eclipse.core.runtime.IProgressMonitor)
     */
    public IStatus run(IProgressMonitor monitor) {
        final AbstractTextSearchResult result = (AbstractTextSearchResult) getSearchResult();
        result.removeAll();
        DependencyExtentOperation op = new DependencyExtentOperation(fProject, fImportID, result);
        op.execute(monitor);
        return Status.OK_STATUS;
    }

    /* (non-Javadoc)
     * @see org.eclipse.search.ui.ISearchQuery#getLabel()
     */
    public String getLabel() {
        return MDEUIMessages.DependencyExtentQuery_label + " " + fImportID; //$NON-NLS-1$ 
    }

    /* (non-Javadoc)
     * @see org.eclipse.search.ui.ISearchQuery#canRerun()
     */
    public boolean canRerun() {
        return true;
    }

    /* (non-Javadoc)
     * @see org.eclipse.search.ui.ISearchQuery#canRunInBackground()
     */
    public boolean canRunInBackground() {
        return true;
    }

    /* (non-Javadoc)
     * @see org.eclipse.search.ui.ISearchQuery#getSearchResult()
     */
    public ISearchResult getSearchResult() {
        if (fSearchResult == null)
            fSearchResult = new DependencyExtentSearchResult(this);
        return fSearchResult;
    }

    public IPackageFragmentRoot[] getDirectRoots() {
        ArrayList result = new ArrayList();
        try {
            IPackageFragmentRoot[] roots = JavaCore.create(fProject).getPackageFragmentRoots();
            for (int i = 0; i < roots.length; i++) {
                if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE
                        || (roots[i].isArchive() && !roots[i].isExternal())) {
                    result.add(roots[i]);
                }
            }
        } catch (JavaModelException e) {
        }
        return (IPackageFragmentRoot[]) result.toArray(new IPackageFragmentRoot[result.size()]);
    }

}