/******************************************************************************* * Copyright (c) 2013 BREDEX GmbH. * 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: * BREDEX GmbH - initial API and implementation and/or initial documentation *******************************************************************************/ package org.eclipse.jubula.client.ui.rcp.search.query; import java.util.List; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jubula.client.core.model.INodePO; import org.eclipse.jubula.client.core.model.IProjectPO; import org.eclipse.jubula.client.core.model.IRefTestSuitePO; import org.eclipse.jubula.client.core.model.ITestSuitePO; import org.eclipse.jubula.client.core.persistence.GeneralStorage; import org.eclipse.jubula.client.core.persistence.NodePM; import org.eclipse.jubula.client.ui.rcp.i18n.Messages; import org.eclipse.jubula.client.ui.rcp.search.result.BasicSearchResult.SearchResultElement; import org.eclipse.jubula.tools.internal.constants.StringConstants; /** * @author BREDEX GmbH * @created 18.10.2013 */ public class ShowWhereUsedTestSuiteQuery extends AbstractShowWhereUsedQuery { /** * <code>m_specTC</code> */ private ITestSuitePO m_testSuite; /** * @param testSuite * the test suite to search the reuse for */ public ShowWhereUsedTestSuiteQuery(ITestSuitePO testSuite) { super(null); m_testSuite = testSuite; } /** * {@inheritDoc} */ public IStatus run(IProgressMonitor monitor) { calculateReuseOfTestSuite(m_testSuite, monitor); return Status.OK_STATUS; } /** * calculates and show the places of reuse for a test suite * * @param testSuite * the test suite * @param monitor * the progress monitor */ private void calculateReuseOfTestSuite(ITestSuitePO testSuite, IProgressMonitor monitor) { IProjectPO currentProject = GeneralStorage.getInstance().getProject(); List<IRefTestSuitePO> reuseList = NodePM.getInternalRefTestSuites( testSuite.getGuid(), currentProject.getId()); INodePO[] reuse = new INodePO[reuseList.size()]; reuseList.toArray(reuse); monitor.beginTask("Searching for reusage of Test Suite", reuseList.size()); //$NON-NLS-1$ final List<SearchResultElement> reuseLoc = getResultElementsFromNodes( monitor, reuse); setSearchResult(reuseLoc); monitor.done(); } /** * {@inheritDoc} */ public String getLabel() { StringBuilder sb = new StringBuilder(); sb.append(getTimestamp()); sb.append(StringConstants.COLON); sb.append(StringConstants.SPACE); sb.append(Messages.UIJobSearchingTestSuites); sb.append(" \""); //$NON-NLS-1$ sb.append(m_testSuite.getName()); sb.append("\""); //$NON-NLS-1$ return sb.toString(); } }