diff options
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.java | 49 |
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); } } |