diff options
author | ddunne | 2010-09-15 16:44:27 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2010-09-15 16:44:27 +0000 |
commit | 9007dc0e7e40acfbffd217731459e4b116dfe9bb (patch) | |
tree | e5a1bd01534fbdc0890fca37234f3f0719adeccb /plugins/org.eclipse.osee.coverage/src | |
parent | be49dd29714e7efda6d1b07ec7c5f86379b9da8f (diff) | |
download | org.eclipse.osee-9007dc0e7e40acfbffd217731459e4b116dfe9bb.tar.gz org.eclipse.osee-9007dc0e7e40acfbffd217731459e4b116dfe9bb.tar.xz org.eclipse.osee-9007dc0e7e40acfbffd217731459e4b116dfe9bb.zip |
feature[ats_UYPM6]: Partial - coverage tool needs ability to link ATS to coverage methods
Diffstat (limited to 'plugins/org.eclipse.osee.coverage/src')
20 files changed, 628 insertions, 3 deletions
diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/CreateWorkProductTaskAction.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/CreateWorkProductTaskAction.java new file mode 100644 index 00000000000..aef92dde67f --- /dev/null +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/CreateWorkProductTaskAction.java @@ -0,0 +1,46 @@ +/******************************************************************************* + * Copyright (c) 2010 Boeing. + * 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: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.coverage.action; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.resource.ImageDescriptor; +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; +import org.eclipse.osee.framework.ui.skynet.cm.IOseeCmService; +import org.eclipse.osee.framework.ui.swt.ImageManager; + +/** + * @author Donald G. Dunne + */ +public class CreateWorkProductTaskAction extends Action { + + private final ISelectedCoverageEditorItem selectedCoverageEditorItem; + + public CreateWorkProductTaskAction(ISelectedCoverageEditorItem selectedCoverageEditorItem) { + super("Create Work Product Task"); + this.selectedCoverageEditorItem = selectedCoverageEditorItem; + } + + @Override + public ImageDescriptor getImageDescriptor() { + return ImageManager.getImageDescriptor(FrameworkImage.REPORT); + } + + @Override + public void run() { + if (selectedCoverageEditorItem.getSelectedCoverageEditorItems().isEmpty()) { + AWorkbench.popup("Select Coverage Item"); + return; + } + IOseeCmService service = SkynetGuiPlugin.getInstance().getOseeCmService(); + } +} 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 new file mode 100644 index 00000000000..7d3e2cf5402 --- /dev/null +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/OpenMultipleWorkProductsAction.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * Copyright (c) 2010 Boeing. + * 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: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.coverage.action; + +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.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.skynet.FrameworkImage; +import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; +import org.eclipse.osee.framework.ui.skynet.cm.IOseeCmService; +import org.eclipse.osee.framework.ui.skynet.cm.OseeCmEditor; +import org.eclipse.osee.framework.ui.swt.ImageManager; +import org.eclipse.osee.framework.ui.swt.KeyedImage; + +/** + * @author Donald G. Dunne + */ +public class OpenMultipleWorkProductsAction extends Action { + + private KeyedImage image = null; + private final CoverageEditor coverageEditor; + private final CoverageEditorWorkProductTab coverageEditorWorkProductTab; + + public OpenMultipleWorkProductsAction(CoverageEditor coverageEditor, CoverageEditorWorkProductTab coverageEditorWorkProductTab) { + super("Create Work Product Task"); + this.coverageEditor = coverageEditor; + this.coverageEditorWorkProductTab = coverageEditorWorkProductTab; + } + + @Override + public ImageDescriptor getImageDescriptor() { + if (image == null) { + IOseeCmService service = SkynetGuiPlugin.getInstance().getOseeCmService(); + if (service != null) { + image = service.getOpenImage(OseeCmEditor.CmMultiPcrEditor); + } + } + if (image == null) { + return ImageManager.getImageDescriptor(FrameworkImage.REPORT); + } + return ImageManager.getImageDescriptor(image); + } + + @Override + public void run() { + if (coverageEditorWorkProductTab.getWorkProductArtifacts().isEmpty()) { + AWorkbench.popup("No Work Products to open"); + return; + } + IOseeCmService service = SkynetGuiPlugin.getInstance().getOseeCmService(); + service.openArtifacts(coverageEditor.getTitle() + " - Work Products", + coverageEditorWorkProductTab.getWorkProductArtifacts(), OseeCmEditor.CmMultiPcrEditor); + } +} diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/RemoveRelatedWorkProductAction.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/RemoveRelatedWorkProductAction.java new file mode 100644 index 00000000000..98e2549c3df --- /dev/null +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/RemoveRelatedWorkProductAction.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * Copyright (c) 2010 Boeing. + * 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: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.coverage.action; + +import org.eclipse.jface.action.Action; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.osee.coverage.editor.CoverageEditor; +import org.eclipse.osee.coverage.internal.Activator; +import org.eclipse.osee.coverage.model.CoveragePackage; +import org.eclipse.osee.coverage.store.OseeCoveragePackageStore; +import org.eclipse.osee.framework.core.enums.CoreRelationTypes; +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.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.artifact.ISelectedArtifacts; +import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.skynet.FrameworkImage; +import org.eclipse.osee.framework.ui.swt.ImageManager; +import org.eclipse.swt.widgets.Display; + +/** + * @author Donald G. Dunne + */ +public class RemoveRelatedWorkProductAction extends Action { + + private final ISelectedArtifacts selectedArtifacts; + private final CoverageEditor coverageEditor; + + public RemoveRelatedWorkProductAction(CoverageEditor coverageEditor, ISelectedArtifacts selectedArtifacts, IRefreshable refreshable) { + super("Remove Related Work Product Action"); + this.coverageEditor = coverageEditor; + this.selectedArtifacts = selectedArtifacts; + } + + @Override + public ImageDescriptor getImageDescriptor() { + return ImageManager.getImageDescriptor(FrameworkImage.DELETE); + } + + @Override + public void run() { + if (selectedArtifacts.getSelectedArtifacts().isEmpty()) { + AWorkbench.popup("Please select work product to remove"); + return; + } + if (MessageDialog.openConfirm(Display.getCurrent().getActiveShell(), getText(), + "Remove selected work product actions?")) { + try { + CoveragePackage coveragePackage = (CoveragePackage) coverageEditor.getCoveragePackageBase(); + OseeCoveragePackageStore store = OseeCoveragePackageStore.get(coveragePackage, coverageEditor.getBranch()); + for (Artifact artifact : selectedArtifacts.getSelectedArtifacts()) { + store.getArtifact(false).deleteRelation(CoreRelationTypes.SupportingInfo_SupportingInfo, artifact); + } + store.getArtifact(false).persist("Un-Relate Coverage work product Actions"); + + } catch (OseeCoreException ex) { + OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex); + } + } + } +} diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditor.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditor.java index f12ea57c530..9e5f73301a3 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditor.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditor.java @@ -62,6 +62,7 @@ public class CoverageEditor extends FormEditor implements IActionable { private CoverageEditorCoverageTab coverageEditorCoverageTab = null; private CoverageEditorOverviewTab coverageEditorOverviewTab = null; private CoverageEditorLoadingTab coverageEditorLoadingTab = null; + private CoverageEditorWorkProductTab coverageEditorWorkProductTab = null; @Override protected void addPages() { @@ -138,6 +139,9 @@ public class CoverageEditor extends FormEditor implements IActionable { addFormPage(coverageEditorOverviewTab); coverageEditorCoverageTab = new CoverageEditorCoverageTab("Coverage Items", this, getCoveragePackageBase()); addFormPage(coverageEditorCoverageTab); + coverageEditorWorkProductTab = + new CoverageEditorWorkProductTab("Work Product Tracking", this, getCoveragePackageBase()); + addFormPage(coverageEditorWorkProductTab); if (getCoveragePackageBase().isImportAllowed()) { coverageEditorImportTab = new CoverageEditorImportTab(this); addFormPage(coverageEditorImportTab); diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorWorkProductTab.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorWorkProductTab.java new file mode 100644 index 00000000000..83331872e2f --- /dev/null +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorWorkProductTab.java @@ -0,0 +1,255 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * 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 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.coverage.editor; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.logging.Level; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.osee.coverage.action.IRefreshable; +import org.eclipse.osee.coverage.action.OpenMultipleWorkProductsAction; +import org.eclipse.osee.coverage.action.RemoveRelatedWorkProductAction; +import org.eclipse.osee.coverage.internal.Activator; +import org.eclipse.osee.coverage.model.CoverageImport; +import org.eclipse.osee.coverage.model.CoveragePackage; +import org.eclipse.osee.coverage.model.CoveragePackageBase; +import org.eclipse.osee.coverage.model.ICoverage; +import org.eclipse.osee.coverage.store.CoverageArtifactTypes; +import org.eclipse.osee.coverage.store.OseeCoveragePackageStore; +import org.eclipse.osee.coverage.util.CoverageUtil; +import org.eclipse.osee.coverage.util.ISaveable; +import org.eclipse.osee.coverage.util.TeamWorkflowLabelProvider; +import org.eclipse.osee.framework.core.enums.CoreRelationTypes; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.Branch; +import org.eclipse.osee.framework.jdk.core.util.DateUtil; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.artifact.ISelectedArtifacts; +import org.eclipse.osee.framework.skynet.core.transaction.SkynetTransaction; +import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.plugin.util.Result; +import org.eclipse.osee.framework.ui.skynet.ArtifactContentProvider; +import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; +import org.eclipse.osee.framework.ui.skynet.artifact.editor.ArtifactEditor; +import org.eclipse.osee.framework.ui.skynet.cm.IOseeCmService; +import org.eclipse.osee.framework.ui.skynet.cm.OseeCmEditor; +import org.eclipse.osee.framework.ui.skynet.util.SkynetDragAndDrop; +import org.eclipse.osee.framework.ui.skynet.widgets.XListViewer; +import org.eclipse.osee.framework.ui.swt.ImageManager; +import org.eclipse.swt.SWT; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.TableItem; +import org.eclipse.ui.forms.IManagedForm; +import org.eclipse.ui.forms.editor.FormEditor; +import org.eclipse.ui.forms.editor.FormPage; +import org.eclipse.ui.forms.widgets.ScrolledForm; + +/** + * @author Donald G. Dunne + */ +public class CoverageEditorWorkProductTab extends FormPage implements ISaveable, ISelectedArtifacts, IRefreshable { + + private ScrolledForm scrolledForm; + private final CoveragePackageBase coveragePackageBase; + private final CoverageEditor coverageEditor; + private XListViewer actionListViewer; + + public CoverageEditorWorkProductTab(String name, CoverageEditor coverageEditor, CoveragePackageBase provider) { + super(coverageEditor, name, name); + this.coverageEditor = coverageEditor; + this.coveragePackageBase = provider; + } + + @Override + protected void createFormContent(IManagedForm managedForm) { + super.createFormContent(managedForm); + + scrolledForm = managedForm.getForm(); + scrolledForm.setText(coveragePackageBase.getName() + " - " + DateUtil.getMMDDYYHHMM(coveragePackageBase.getDate()) + " - " + coveragePackageBase.getCoverageItems().size() + " Coverage Items"); + scrolledForm.setImage(ImageManager.getImage(CoverageUtil.getCoveragePackageBaseImage(coveragePackageBase))); + scrolledForm.getBody().setLayout(new GridLayout(2, false)); + Composite mainComp = scrolledForm.getBody(); + coverageEditor.getToolkit().adapt(mainComp); + mainComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + + createActionListViewer(mainComp); + addDoubleClickSupport(); + addDropSupportToListViewer(); + + createToolbar(); + refresh(); + } + + private void addDoubleClickSupport() { + actionListViewer.getTable().addListener(SWT.MouseDoubleClick, new Listener() { + + @Override + public void handleEvent(Event event) { + IOseeCmService cmService = SkynetGuiPlugin.getInstance().getOseeCmService(); + cmService.openArtifact(getSelectedArtifactItems().iterator().next(), OseeCmEditor.CmPcrEditor); + } + }); + } + + public ArrayList<Artifact> getSelectedArtifactItems() { + ArrayList<Artifact> arts = new ArrayList<Artifact>(); + TableItem items[] = actionListViewer.getTable().getSelection(); + if (items.length > 0) { + for (TableItem item : items) { + arts.add((Artifact) item.getData()); + } + } + return arts; + } + + private void addDropSupportToListViewer() { + new SkynetDragAndDrop(null, actionListViewer.getTable(), ArtifactEditor.EDITOR_ID) { + @Override + public void performArtifactDrop(Artifact[] dropArtifacts) { + super.performArtifactDrop(dropArtifacts); + System.out.println("Dropped " + dropArtifacts); + for (Artifact artifact : dropArtifacts) { + if (!artifact.isOfType(CoverageArtifactTypes.TeamWorkflow)) { + AWorkbench.popup("Related artifact must be a Team Workflow"); + return; + } + } + try { + if (!(coveragePackageBase instanceof CoveragePackage)) { + AWorkbench.popup("Must be coverage package"); + return; + } + if (coverageEditor.getBranch() == null) { + AWorkbench.popup("Coverage Package must have imports before work package applied"); + return; + } + CoveragePackage coveragePackage = (CoveragePackage) coveragePackageBase; + OseeCoveragePackageStore store = + OseeCoveragePackageStore.get(coveragePackage, coverageEditor.getBranch()); + for (Artifact artifact : dropArtifacts) { + store.getArtifact(false).addRelation(CoreRelationTypes.SupportingInfo_SupportingInfo, artifact); + } + store.getArtifact(false).persist("Relate Coverage work product Actions"); + + refresh(); + } catch (OseeCoreException ex) { + OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex); + } + } + + @Override + public Artifact[] getArtifacts() throws Exception { + return new Artifact[] {}; + } + }; + } + + public Collection<Artifact> getWorkProductArtifacts() { + try { + CoveragePackage coveragePackage = (CoveragePackage) coveragePackageBase; + OseeCoveragePackageStore store = OseeCoveragePackageStore.get(coveragePackage, coverageEditor.getBranch()); + Artifact art = store.getArtifact(false); + if (art != null) { + return art.getRelatedArtifacts(CoreRelationTypes.SupportingInfo_SupportingInfo); + } + } catch (OseeCoreException ex) { + OseeLog.log(Activator.class, Level.SEVERE, ex); + } + return Collections.emptyList(); + } + + private void refresh() { + actionListViewer.setInput(getWorkProductArtifacts()); + } + + private XListViewer createActionListViewer(Composite parent) { + actionListViewer = new XListViewer("Drag in Actions related to changing work products"); + actionListViewer.setContentProvider(new ArtifactContentProvider()); + actionListViewer.setLabelProvider(new TeamWorkflowLabelProvider()); + actionListViewer.createWidgets(parent, 2); + coverageEditor.getToolkit().adapt(actionListViewer.getTable()); + coverageEditor.getToolkit().adapt(actionListViewer.getLabelWidget(), true, true); + GridData tableData = new GridData(SWT.FILL, SWT.FILL, true, true); + tableData.horizontalSpan = 2; + actionListViewer.getTable().setLayoutData(tableData); + return actionListViewer; + } + + public void createToolbar() { + IToolBarManager toolBarManager = scrolledForm.getToolBarManager(); + toolBarManager.add(new OpenMultipleWorkProductsAction(coverageEditor, this)); + toolBarManager.add(new RemoveRelatedWorkProductAction(coverageEditor, this, this)); + CoverageEditor.addToToolBar(scrolledForm.getToolBarManager(), coverageEditor); + scrolledForm.updateToolBar(); + } + + @Override + public FormEditor getEditor() { + return super.getEditor(); + } + + @Override + public Result isEditable() { + return coveragePackageBase.isEditable(); + } + + @Override + public Result save() throws OseeCoreException { + return OseeCoveragePackageStore.get((CoveragePackage) coveragePackageBase, coverageEditor.getBranch()).save(); + } + + @Override + public Result save(Collection<ICoverage> coverages) throws OseeCoreException { + return OseeCoveragePackageStore.get((CoveragePackage) coveragePackageBase, coverageEditor.getBranch()).save( + coverages); + } + + @Override + public Result saveImportRecord(SkynetTransaction transaction, CoverageImport coverageImport) { + return new Result(false, "Not valid for this tab."); + } + + @Override + public Branch getBranch() throws OseeCoreException { + return coverageEditor.getBranch(); + } + + @Override + public Collection<Artifact> getSelectedArtifacts() { + return getSelectedArtifactItems(); + } + + @Override + public void refresh(Object element) { + refresh(); + } + + @Override + public void update(Object element) { + // do nothing + } + + @Override + public void remove(Object element) { + // do nothing + } + + public XListViewer getActionListViewer() { + return actionListViewer; + } + +} diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageLabelProvider.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageLabelProvider.java index a91f07a7fc1..9f1f45e08fd 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageLabelProvider.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageLabelProvider.java @@ -102,6 +102,9 @@ public class CoverageLabelProvider extends XViewerLabelProvider { if (xCol.equals(CoverageXViewerFactory.Namespace)) { return coverage.getNamespace(); } + if (xCol.equals(CoverageXViewerFactory.Work_Product_Task)) { + return coverage.getWorkProductTask(); + } if (xCol.equals(CoverageXViewerFactory.Guid)) { return coverage.getGuid(); } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewer.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewer.java index d5c50121e3a..ac24caf5033 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewer.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewer.java @@ -20,6 +20,7 @@ import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.nebula.widgets.xviewer.IXViewerFactory; import org.eclipse.nebula.widgets.xviewer.XViewer; import org.eclipse.nebula.widgets.xviewer.XViewerColumn; +import org.eclipse.osee.coverage.action.CreateWorkProductTaskAction; import org.eclipse.osee.coverage.action.DeleteCoverUnitAction; import org.eclipse.osee.coverage.action.EditAssigneesAction; import org.eclipse.osee.coverage.action.EditCoverageMethodAction; @@ -55,7 +56,7 @@ public class CoverageXViewer extends XViewer implements ISelectedCoverageEditorI protected final XCoverageViewer xCoverageViewer; Action editRationaleAction, editMethodAction, viewSourceAction, editAssigneesAction, editCoverageStatusAction, - deleteCoverUnitAction; + deleteCoverUnitAction, createWorkProductTaskAction; public CoverageXViewer(Composite parent, int style, XCoverageViewer xCoverageViewer) { this(parent, style, new CoverageXViewerFactory(), xCoverageViewer); @@ -80,6 +81,7 @@ public class CoverageXViewer extends XViewer implements ISelectedCoverageEditorI editCoverageStatusAction = new EditCoverageNotesAction(this, this, this); editRationaleAction = new EditRationaleAction(this, this, this); deleteCoverUnitAction = new DeleteCoverUnitAction(this, this, this); + createWorkProductTaskAction = new CreateWorkProductTaskAction(this); } } @@ -123,6 +125,13 @@ public class CoverageXViewer extends XViewer implements ISelectedCoverageEditorI return true; } + private boolean isCreateWorkProductTaskActionEnabled() { + if (xCoverageViewer.getSelectedCoverageItems().isEmpty()) { + return false; + } + return true; + } + private boolean isEditMetricsEnabled() { if (xCoverageViewer.getSelectedCoverageItems().isEmpty()) { return false; @@ -154,6 +163,13 @@ public class CoverageXViewer extends XViewer implements ISelectedCoverageEditorI mm.insertBefore(MENU_GROUP_PRE, deleteCoverUnitAction); editCoverageStatusAction.setEnabled(isDeleteCoverageUnitEnabled()); + mm.insertBefore(MENU_GROUP_PRE, new Separator()); + + mm.insertBefore(MENU_GROUP_PRE, createWorkProductTaskAction); + createWorkProductTaskAction.setEnabled(isCreateWorkProductTaskActionEnabled()); + + mm.insertBefore(MENU_GROUP_PRE, new Separator()); + } mm.insertBefore(MENU_GROUP_PRE, viewSourceAction); editMethodAction.setEnabled(isEditMethodEnabled()); diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewerFactory.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewerFactory.java index 1cb388dae90..94f7e8bf1fe 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewerFactory.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xcover/CoverageXViewerFactory.java @@ -36,6 +36,8 @@ public class CoverageXViewerFactory extends SkynetXViewerFactory { SWT.LEFT, true, SortDataType.String, false, ""); public static XViewerColumn Coverage_Method = new XViewerColumn(NAMESPACE + ".coverateMethod", "Coverage Method", 100, SWT.LEFT, true, SortDataType.String, false, ""); + public static XViewerColumn Work_Product_Task = new XViewerColumn(NAMESPACE + ".workProductTask", + "Work Product Task", 100, SWT.LEFT, false, SortDataType.String, false, ""); public static XViewerColumn Coverage_Rationale = new XViewerColumn(NAMESPACE + ".coverageRationale", "Coverage Rationale", 100, SWT.LEFT, true, SortDataType.String, false, ""); public static XViewerColumn Coverage_Test_Units = new XViewerColumn(NAMESPACE + ".coverageTestUnits", @@ -60,8 +62,8 @@ public class CoverageXViewerFactory extends SkynetXViewerFactory { public void registerColumns() { registerColumns(Name, Method_Number, Execution_Number, Namespace, Coverage_Percent, Coverage_Method, - Coverage_Rationale, Coverage_Test_Units, Assignees_Col, Notes_Col, Parent_Coverage_Unit, Line_Number, - Location, Full_Path, Guid); + Work_Product_Task, Coverage_Rationale, Coverage_Test_Units, Assignees_Col, Notes_Col, Parent_Coverage_Unit, + Line_Number, Location, Full_Path, Guid); } @Override diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeItem.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeItem.java index 8f22bebb62f..512dee5f419 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeItem.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeItem.java @@ -185,4 +185,9 @@ public class MergeItem extends MergeItemBase { return ""; } + @Override + public String getWorkProductTask() { + return ""; + } + } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeItemGroup.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeItemGroup.java index caf7426e52b..3b88eede600 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeItemGroup.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeItemGroup.java @@ -152,4 +152,9 @@ public class MergeItemGroup extends MergeItemBase { public String getOrderNumber() { return ""; } + + @Override + public String getWorkProductTask() { + return ""; + } } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageImport.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageImport.java index c5d4aea7319..1bcd956f197 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageImport.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageImport.java @@ -122,4 +122,9 @@ public class CoverageImport extends CoveragePackageBase { public void setImportDirectory(String importDirectory) { this.importDirectory = importDirectory; } + + @Override + public String getWorkProductTask() { + return ""; + } } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageItem.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageItem.java index f835a0be18f..a582a4e7cad 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageItem.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageItem.java @@ -33,6 +33,8 @@ public class CoverageItem extends NamedIdentity implements ICoverage { CoverageOption coverageMethod = CoverageOptionManager.Not_Covered; String rationale; String orderNumber; + String workProductGuid; + private final CoverageUnit coverageUnit; private static String PROPERTY_STORE_ID = "coverage.item"; private ITestUnitProvider testUnitProvider; @@ -280,6 +282,9 @@ public class CoverageItem extends NamedIdentity implements ICoverage { if (Strings.isValid(getName())) { store.put("name", getName()); } + if (Strings.isValid(getName())) { + store.put("name", getName()); + } String toReturn = null; try { toReturn = store.save(); @@ -292,4 +297,21 @@ public class CoverageItem extends NamedIdentity implements ICoverage { public ITestUnitProvider getTestUnitProvider() { return testUnitProvider; } + + @Override + public String getWorkProductTask() { + if (Strings.isValid(workProductGuid)) { + return workProductGuid; + } + return ""; + } + + public String getWorkProductGuid() { + return workProductGuid; + } + + public void setWorkProductGuid(String workProductGuid) { + this.workProductGuid = workProductGuid; + } + }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoveragePackage.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoveragePackage.java index 162cece24df..f6d01ddacc3 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoveragePackage.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoveragePackage.java @@ -70,4 +70,9 @@ public class CoveragePackage extends CoveragePackageBase { return getRunDate(); } + @Override + public String getWorkProductTask() { + return ""; + } + } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageTestUnit.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageTestUnit.java index 742dee91e61..720a01adf1c 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageTestUnit.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageTestUnit.java @@ -113,4 +113,9 @@ public class CoverageTestUnit extends NamedIdentity implements ICoverage { public String getOrderNumber() { return ""; } + + @Override + public String getWorkProductTask() { + return ""; + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageUnit.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageUnit.java index 706fb9d8274..46723868bec 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageUnit.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageUnit.java @@ -39,6 +39,7 @@ public class CoverageUnit extends NamedIdentity implements ICoverage, ICoverageU final List<CoverageItem> coverageItems = new ArrayList<CoverageItem>(); String location; String orderNumber = ""; + String workProductGuid; final List<CoverageUnit> coverageUnits = new ArrayList<CoverageUnit>(); ICoverage parent; ICoverageUnitFileContentsProvider fileContentsProvider; @@ -354,4 +355,20 @@ public class CoverageUnit extends NamedIdentity implements ICoverage, ICoverageU return fileContentsProvider; } + @Override + public String getWorkProductTask() { + if (Strings.isValid(workProductGuid)) { + return workProductGuid; + } + return ""; + } + + public String getWorkProductGuid() { + return workProductGuid; + } + + public void setWorkProductGuid(String workProductGuid) { + this.workProductGuid = workProductGuid; + } + } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/ICoverage.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/ICoverage.java index b511774e2d1..36f381faac4 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/ICoverage.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/ICoverage.java @@ -54,4 +54,6 @@ public interface ICoverage extends Named, Identity { public String getOrderNumber(); + public String getWorkProductTask(); + } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/MessageCoverageItem.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/MessageCoverageItem.java index 00c97bffcfa..16e45d58627 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/MessageCoverageItem.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/MessageCoverageItem.java @@ -105,4 +105,9 @@ public class MessageCoverageItem extends NamedIdentity implements ICoverage { public String getOrderNumber() { return ""; } + + @Override + public String getWorkProductTask() { + return ""; + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/CoverageArtifactTypes.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/CoverageArtifactTypes.java index df3de999e94..8be2165234a 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/CoverageArtifactTypes.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/CoverageArtifactTypes.java @@ -22,6 +22,7 @@ public final class CoverageArtifactTypes extends NamedIdentity implements IArtif public static final IArtifactType CoveragePackage = new CoverageArtifactTypes("AARFcyA9zyD3uEK8akgA", "Coverage Package"); public static final IArtifactType CoverageUnit = new CoverageArtifactTypes("ALZS3MQdCCIUvEYlZeAA", "Coverage Unit"); public static final IArtifactType CoverageFolder = new CoverageArtifactTypes("ALZR_AbpJTTf6QQn2iAA", "Coverage Folder"); + public static final IArtifactType TeamWorkflow = new CoverageArtifactTypes("AAMFDhSiF2OD+wiUqugA", "Team Workflow"); // @formatter:on private CoverageArtifactTypes(String guid, String name) { diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/CoverageRelationTypes.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/CoverageRelationTypes.java new file mode 100644 index 00000000000..2f143f7c533 --- /dev/null +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/CoverageRelationTypes.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * 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: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.coverage.store; + +import org.eclipse.osee.framework.core.data.NamedIdentity; +import org.eclipse.osee.framework.core.enums.IRelationEnumeration; +import org.eclipse.osee.framework.core.enums.RelationSide; + +/** + * @author Donald G. Dunne + */ +public class CoverageRelationTypes extends NamedIdentity implements IRelationEnumeration { + private final RelationSide relationSide; + + public static final CoverageRelationTypes TeamWorkflowTargetedForVersion_Version = new CoverageRelationTypes( + RelationSide.SIDE_B, "AAMFE99pzm4zSibDT9gA", "TeamWorkflowTargetedForVersion"); + public static final CoverageRelationTypes TeamWorkflowTargetedForVersion_Workflow = new CoverageRelationTypes( + RelationSide.SIDE_A, "AAMFE99pzm4zSibDT9gA", "TeamWorkflowTargetedForVersion"); + + private CoverageRelationTypes(RelationSide relationSide, String guid, String name) { + super(guid, name); + this.relationSide = relationSide; + } + + @Override + public RelationSide getSide() { + return relationSide; + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/TeamWorkflowLabelProvider.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/TeamWorkflowLabelProvider.java new file mode 100644 index 00000000000..0b849eef586 --- /dev/null +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/TeamWorkflowLabelProvider.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * 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: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.coverage.util; + +import org.eclipse.osee.coverage.internal.Activator; +import org.eclipse.osee.coverage.store.CoverageRelationTypes; +import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; +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.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.ui.skynet.ArtifactLabelProvider; + +/** + * @author Donald G. Dunne + */ +public class TeamWorkflowLabelProvider extends ArtifactLabelProvider { + + public TeamWorkflowLabelProvider() { + super(); + } + + @Override + public String getText(Object element) { + Artifact teamWf = (Artifact) element; + try { + Artifact version = getTargetedForVersion(teamWf); + if (version != null) { + return "[" + teamWf.getArtifactTypeName() + "][" + version.getName() + "] - " + teamWf.getName(); + } else { + return "[" + teamWf.getArtifactTypeName() + "] - " + teamWf.getName(); + } + } catch (OseeCoreException ex) { + OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex); + return "Exception: " + ex.getLocalizedMessage(); + } + } + + private Artifact getTargetedForVersion(Artifact teamWf) throws OseeCoreException { + try { + return teamWf.getRelatedArtifact(CoverageRelationTypes.TeamWorkflowTargetedForVersion_Version); + } catch (ArtifactDoesNotExist ex) { + // do nothing; + } + return null; + } +} |