Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/OpenMultipleWorkProductsAction.java')
-rw-r--r--plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/OpenMultipleWorkProductsAction.java49
1 files changed, 40 insertions, 9 deletions
diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/OpenMultipleWorkProductsAction.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/OpenMultipleWorkProductsAction.java
index 7d3e2cf5402..b60d1ac6d62 100644
--- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/OpenMultipleWorkProductsAction.java
+++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/OpenMultipleWorkProductsAction.java
@@ -10,10 +10,24 @@
*******************************************************************************/
package org.eclipse.osee.coverage.action;
+import java.util.ArrayList;
+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.core.runtime.jobs.Job;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.osee.coverage.editor.CoverageEditor;
-import org.eclipse.osee.coverage.editor.CoverageEditorWorkProductTab;
+import org.eclipse.osee.coverage.internal.Activator;
+import org.eclipse.osee.coverage.model.IWorkProductTaskProvider;
+import org.eclipse.osee.coverage.model.WorkProductAction;
+import org.eclipse.osee.framework.core.exception.OseeCoreException;
+import org.eclipse.osee.framework.logging.OseeLevel;
+import org.eclipse.osee.framework.logging.OseeLog;
+import org.eclipse.osee.framework.plugin.core.util.Jobs;
+import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
+import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin;
@@ -28,13 +42,13 @@ import org.eclipse.osee.framework.ui.swt.KeyedImage;
public class OpenMultipleWorkProductsAction extends Action {
private KeyedImage image = null;
+ private final IWorkProductTaskProvider provider;
private final CoverageEditor coverageEditor;
- private final CoverageEditorWorkProductTab coverageEditorWorkProductTab;
- public OpenMultipleWorkProductsAction(CoverageEditor coverageEditor, CoverageEditorWorkProductTab coverageEditorWorkProductTab) {
- super("Create Work Product Task");
+ public OpenMultipleWorkProductsAction(CoverageEditor coverageEditor, IWorkProductTaskProvider provider) {
+ super("Open Work Products");
this.coverageEditor = coverageEditor;
- this.coverageEditorWorkProductTab = coverageEditorWorkProductTab;
+ this.provider = provider;
}
@Override
@@ -53,12 +67,29 @@ public class OpenMultipleWorkProductsAction extends Action {
@Override
public void run() {
- if (coverageEditorWorkProductTab.getWorkProductArtifacts().isEmpty()) {
+ if (provider.getWorkProductRelatedActions().isEmpty()) {
AWorkbench.popup("No Work Products to open");
return;
}
- IOseeCmService service = SkynetGuiPlugin.getInstance().getOseeCmService();
- service.openArtifacts(coverageEditor.getTitle() + " - Work Products",
- coverageEditorWorkProductTab.getWorkProductArtifacts(), OseeCmEditor.CmMultiPcrEditor);
+ Job job = new Job(getText()) {
+
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ IOseeCmService service = SkynetGuiPlugin.getInstance().getOseeCmService();
+ List<String> guids = new ArrayList<String>();
+ for (WorkProductAction action : provider.getWorkProductRelatedActions()) {
+ guids.add(action.getGuid());
+ }
+ List<Artifact> artifacts = ArtifactQuery.getArtifactListFromIds(guids, coverageEditor.getBranch());
+ service.openArtifacts(coverageEditor.getTitle() + " - Work Products", artifacts,
+ OseeCmEditor.CmMultiPcrEditor);
+ } catch (OseeCoreException ex) {
+ OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex);
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ Jobs.startJob(job);
}
}

Back to the top