Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaimar Buehmann2013-10-22 10:50:57 +0000
committerRaimar Buehmann2013-10-22 10:50:57 +0000
commit9b2bb63c02d7a1b772098dbe03b831c8dbcbde8f (patch)
tree07ca55528149b183f6b97bf08557bef000f1d699
parent09cb80ddecfc7779dcf49ed5607a29fa91724595 (diff)
downloadorg.eclipse.jubula.core-9b2bb63c02d7a1b772098dbe03b831c8dbcbde8f.tar.gz
org.eclipse.jubula.core-9b2bb63c02d7a1b772098dbe03b831c8dbcbde8f.tar.xz
org.eclipse.jubula.core-9b2bb63c02d7a1b772098dbe03b831c8dbcbde8f.zip
Sprint task: Apply patch for bug http://bugs.eclipse.org/418300 "Show where used" for test suites
-rw-r--r--org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/NodePM.java8
-rw-r--r--org.eclipse.jubula.client.ui.rcp/plugin.xml18
-rw-r--r--org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/showwhereused/TestSuiteShowWhereUsedHandler.java37
-rw-r--r--org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/Messages.java1
-rw-r--r--org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/messages.properties1
-rw-r--r--org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/AbstractShowWhereUsedQuery.java44
-rw-r--r--org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/ShowWhereUsedSpecTcQuery.java34
-rw-r--r--org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/ShowWhereUsedTestSuiteQuery.java96
8 files changed, 208 insertions, 31 deletions
diff --git a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/NodePM.java b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/NodePM.java
index 870af3eed..173828157 100644
--- a/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/NodePM.java
+++ b/org.eclipse.jubula.client.core/src/org/eclipse/jubula/client/core/persistence/NodePM.java
@@ -548,7 +548,7 @@ public class NodePM extends PersistenceManager {
* doesn't know the parent.
*
* @param tsGuid
- * GUID of the test case being reused.
+ * GUID of the test suite being reused.
* @param parentProjectId
* ID of the parent project of the test case being reused.
* @return all ref test suites that reference the test suite with the given
@@ -572,7 +572,7 @@ public class NodePM extends PersistenceManager {
/**
*
* @param tsGuid The GUID of the reused test suite.
- * @param parentProjectIds All returned test cases will have one of these as
+ * @param parentProjectIds All returned test suites will have one of these as
* their project parent ID.
* @param s The session into which the test cases will be loaded.
* @return list of test suites.
@@ -592,8 +592,8 @@ public class NodePM extends PersistenceManager {
queryBuffer.append(")"); //$NON-NLS-1$
Query q = s.createQuery(queryBuffer.toString());
q.setParameter("tsGuid", tsGuid); //$NON-NLS-1$
- List<IRefTestSuitePO> execTcList = q.getResultList();
- return execTcList;
+ List<IRefTestSuitePO> refTestSuiteList = q.getResultList();
+ return refTestSuiteList;
}
/**
diff --git a/org.eclipse.jubula.client.ui.rcp/plugin.xml b/org.eclipse.jubula.client.ui.rcp/plugin.xml
index 4731b1f2a..efd5b5d79 100644
--- a/org.eclipse.jubula.client.ui.rcp/plugin.xml
+++ b/org.eclipse.jubula.client.ui.rcp/plugin.xml
@@ -1751,6 +1751,10 @@
style="push">
</command>
<command
+ commandId="org.eclipse.jubula.client.ui.rcp.commands.ShowWhereUsed"
+ style="push">
+ </command>
+ <command
commandId="org.eclipse.jubula.client.ui.commands.ExpandTreeItem"
style="push">
</command>
@@ -2342,6 +2346,20 @@
</activeWhen>
</handler>
<handler
+ class="org.eclipse.jubula.client.ui.rcp.handlers.showwhereused.TestSuiteShowWhereUsedHandler"
+ commandId="org.eclipse.jubula.client.ui.rcp.commands.ShowWhereUsed">
+ <activeWhen>
+ <and>
+ <count value="1" />
+ <iterate
+ ifEmpty="false"
+ operator="and">
+ <instanceof value="org.eclipse.jubula.client.core.model.ITestSuitePO" />
+ </iterate>
+ </and>
+ </activeWhen>
+ </handler>
+ <handler
class="org.eclipse.jubula.client.ui.rcp.handlers.showwhereused.ComponentNameShowWhereUsedHandler"
commandId="org.eclipse.jubula.client.ui.rcp.commands.ShowWhereUsed">
<activeWhen>
diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/showwhereused/TestSuiteShowWhereUsedHandler.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/showwhereused/TestSuiteShowWhereUsedHandler.java
new file mode 100644
index 000000000..609a0b095
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/handlers/showwhereused/TestSuiteShowWhereUsedHandler.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * 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.handlers.showwhereused;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.jubula.client.core.model.ITestSuitePO;
+import org.eclipse.jubula.client.ui.rcp.search.query.ShowWhereUsedTestSuiteQuery;
+import org.eclipse.search.ui.NewSearchUI;
+
+
+/**
+ * Class for test suite "Show where used" handler
+ *
+ * @author BREDEX GmbH
+ * @created 17.10.2013
+ */
+public class TestSuiteShowWhereUsedHandler extends
+ AbstractShowWhereUsedHandler {
+
+ /** {@inheritDoc} */
+ public Object execute(ExecutionEvent event) {
+ init(event);
+ final Object first = getCurrentSelection().getFirstElement();
+ ITestSuitePO testSuite = (ITestSuitePO)first;
+ NewSearchUI.runQueryInBackground(
+ new ShowWhereUsedTestSuiteQuery(testSuite));
+ return null;
+ }
+}
diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/Messages.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/Messages.java
index de753876e..bf3b7b76b 100644
--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/Messages.java
+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/Messages.java
@@ -844,6 +844,7 @@ public class Messages extends NLS {
public static String UIJobSearchingResponsibleCompNames;
public static String UIJobSearchingTestCases;
public static String UIJobSearchingTestDataCube;
+ public static String UIJobSearchingTestSuites;
public static String UIJobStartTestJob;
public static String UnexpectedDialogReturnCode;
public static String UnexpectedError;
diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/messages.properties b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/messages.properties
index f94ac6423..2f0c9962d 100644
--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/messages.properties
+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/i18n/messages.properties
@@ -830,6 +830,7 @@ UIJobSearchingCompNames=Search for usage of Component Names
UIJobSearchingResponsibleCompNames=Search for responsible specification of Component Name
UIJobSearchingTestCases=Search for usage of Test Case
UIJobSearchingTestDataCube=Search for usage of Test Data Sets
+UIJobSearchingTestSuites=Search for usage of Test Suite
UIJobStartTestJob=Start Test Job
UnexpectedDialogReturnCode=Unexpected dialog return code
UnexpectedError=Unexpected error
diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/AbstractShowWhereUsedQuery.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/AbstractShowWhereUsedQuery.java
index cd2de4aa0..8d7630e76 100644
--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/AbstractShowWhereUsedQuery.java
+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/AbstractShowWhereUsedQuery.java
@@ -10,6 +10,17 @@
*******************************************************************************/
package org.eclipse.jubula.client.ui.rcp.search.query;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jubula.client.core.model.INodePO;
+import org.eclipse.jubula.client.ui.rcp.i18n.Messages;
+import org.eclipse.jubula.client.ui.rcp.provider.labelprovider.GeneralLabelProvider;
+import org.eclipse.jubula.client.ui.rcp.search.result.BasicSearchResult.NodeSearchResultElementAction;
+import org.eclipse.jubula.client.ui.rcp.search.result.BasicSearchResult.SearchResultElement;
+import org.eclipse.osgi.util.NLS;
+
/**
* This class provides common methods for "show where used queries".
@@ -27,4 +38,37 @@ public abstract class AbstractShowWhereUsedQuery extends AbstractQuery {
super(viewId);
}
+ /**
+ * gives a search result containing the parents of an array of INodePOs
+ *
+ * @param monitor
+ * the monitor
+ * @param reuse
+ * the array containing the INodePOs
+ * @return the search result
+ */
+ protected List<SearchResultElement> getResultElementsFromNodes(
+ IProgressMonitor monitor, INodePO[] reuse) {
+ final List<SearchResultElement> reuseLoc =
+ new ArrayList<SearchResultElement>(reuse.length);
+ List<INodePO> parentList = new ArrayList<INodePO>();
+
+ for (INodePO node : reuse) {
+ INodePO parent = node.getParentNode();
+ if (parent != null) {
+ Long id = node.getId();
+ String nodeName = GeneralLabelProvider.getTextImpl(node);
+ parentList.add(parent);
+ reuseLoc.add(new SearchResultElement<Long>(NLS.bind(
+ Messages.SearchResultPageElementLabel, new Object[] {
+ parent.getName(), nodeName }), id,
+ GeneralLabelProvider.getImageImpl(node),
+ new NodeSearchResultElementAction(), node
+ .getComment()));
+ }
+ monitor.worked(1);
+ }
+ return reuseLoc;
+ }
+
}
diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/ShowWhereUsedSpecTcQuery.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/ShowWhereUsedSpecTcQuery.java
index fd28bd3cd..76a15e70a 100644
--- a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/ShowWhereUsedSpecTcQuery.java
+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/ShowWhereUsedSpecTcQuery.java
@@ -10,7 +10,6 @@
*******************************************************************************/
package org.eclipse.jubula.client.ui.rcp.search.query;
-import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@@ -26,12 +25,9 @@ import org.eclipse.jubula.client.core.persistence.GeneralStorage;
import org.eclipse.jubula.client.core.persistence.NodePM;
import org.eclipse.jubula.client.core.persistence.ProjectPM;
import org.eclipse.jubula.client.ui.rcp.i18n.Messages;
-import org.eclipse.jubula.client.ui.rcp.provider.labelprovider.GeneralLabelProvider;
-import org.eclipse.jubula.client.ui.rcp.search.result.BasicSearchResult.NodeSearchResultElementAction;
import org.eclipse.jubula.client.ui.rcp.search.result.BasicSearchResult.SearchResultElement;
import org.eclipse.jubula.tools.constants.StringConstants;
import org.eclipse.jubula.tools.exception.JBException;
-import org.eclipse.osgi.util.NLS;
/**
@@ -86,29 +82,13 @@ public class ShowWhereUsedSpecTcQuery
// ignore
}
}
- List<IExecTestCasePO> reuse = NodePM.getExecTestCases(specTC.getGuid(),
- parentProjectIDs);
- final List<SearchResultElement> reuseLoc =
- new ArrayList<SearchResultElement>(
- reuse.size());
- List<INodePO> parentList = new ArrayList<INodePO>();
-
- monitor.beginTask("Searching for reusage of Test Case", reuse.size()); //$NON-NLS-1$
- for (IExecTestCasePO execTC : reuse) {
- INodePO parent = execTC.getParentNode();
- if (parent != null) {
- Long id = execTC.getId();
- String nodeName = GeneralLabelProvider.getTextImpl(execTC);
- parentList.add(parent);
- reuseLoc.add(new SearchResultElement<Long>(NLS.bind(
- Messages.SearchResultPageElementLabel, new Object[] {
- parent.getName(), nodeName }), id,
- GeneralLabelProvider.getImageImpl(execTC),
- new NodeSearchResultElementAction(), execTC
- .getComment()));
- }
- monitor.worked(1);
- }
+ List<IExecTestCasePO> reuseList =
+ NodePM.getExecTestCases(specTC.getGuid(), parentProjectIDs);
+ INodePO[] reuse = new INodePO[reuseList.size()];
+ reuseList.toArray(reuse);
+ monitor.beginTask("Searching for reusage of Test Case", reuseList.size()); //$NON-NLS-1$
+ final List<SearchResultElement> reuseLoc = getResultElementsFromNodes(
+ monitor, reuse);
setSearchResult(reuseLoc);
monitor.done();
diff --git a/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/ShowWhereUsedTestSuiteQuery.java b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/ShowWhereUsedTestSuiteQuery.java
new file mode 100644
index 000000000..766c8ddc0
--- /dev/null
+++ b/org.eclipse.jubula.client.ui.rcp/src/org/eclipse/jubula/client/ui/rcp/search/query/ShowWhereUsedTestSuiteQuery.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * 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.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}
+ */
+ @SuppressWarnings("nls")
+ public String getLabel() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(getTimestamp());
+ sb.append(StringConstants.COLON);
+ sb.append(StringConstants.SPACE);
+ sb.append(Messages.UIJobSearchingTestSuites);
+ sb.append(" \"");
+ sb.append(m_testSuite.getName());
+ sb.append("\"");
+ return sb.toString();
+ }
+
+}

Back to the top