diff options
author | ddunne | 2011-03-21 23:09:11 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2011-03-21 23:09:11 +0000 |
commit | be68ff422aeca2c7a78e05cb8f166137984d4598 (patch) | |
tree | 93b8ddadfd071f85b4c23864e23a9f38ab507650 /plugins/org.eclipse.osee.coverage | |
parent | b6b500cc9f3227a7bbc5ad45f87428511edbb49f (diff) | |
download | org.eclipse.osee-be68ff422aeca2c7a78e05cb8f166137984d4598.tar.gz org.eclipse.osee-be68ff422aeca2c7a78e05cb8f166137984d4598.tar.xz org.eclipse.osee-be68ff422aeca2c7a78e05cb8f166137984d4598.zip |
feature[ats_GQ41M]: Coverage - Import merge feature to retain previously dispositioned items
Diffstat (limited to 'plugins/org.eclipse.osee.coverage')
28 files changed, 249 insertions, 34 deletions
diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/DeleteCoverUnitAction.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/DeleteCoverUnitAction.java index ec2de161256..678302d48b5 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/DeleteCoverUnitAction.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/DeleteCoverUnitAction.java @@ -79,8 +79,7 @@ public class DeleteCoverUnitAction extends Action { new SkynetTransaction(saveable.getBranch(), "Coverage - Delete Coverage Unit"); ICoverage coverage = selectedCoverageEditorItem.getSelectedCoverageEditorItems().iterator().next(); CoveragePackage coveragePackage = (CoveragePackage) CoverageUtil.getParentCoveragePackageBase(coverage); - CoveragePackageEvent coverageEvent = - new CoveragePackageEvent(coveragePackage, CoverageEventType.Modified); + CoveragePackageEvent coverageEvent = new CoveragePackageEvent(coveragePackage, CoverageEventType.Modified); List<ICoverage> deleteItems = new ArrayList<ICoverage>(); for (ICoverage coverageItem : selectedCoverageEditorItem.getSelectedCoverageEditorItems()) { if (coverageItem.getParent() instanceof ICoverageUnitProvider) { @@ -91,7 +90,7 @@ public class DeleteCoverUnitAction extends Action { } } transaction.execute(); - CoverageEventManager.getInstance().sendRemoteEvent(coverageEvent); + CoverageEventManager.instance.sendRemoteEvent(coverageEvent); for (ICoverage coverageItem : deleteItems) { refreshable.remove(coverageItem); } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/DeleteCoveragePackageAction.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/DeleteCoveragePackageAction.java index ec674a339d2..58622c6b720 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/DeleteCoveragePackageAction.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/DeleteCoveragePackageAction.java @@ -83,7 +83,7 @@ public class DeleteCoveragePackageAction extends Action { if (!purge) { transaction.execute(); } - CoverageEventManager.getInstance().sendRemoteEvent(coverageEvent); + CoverageEventManager.instance.sendRemoteEvent(coverageEvent); } } } catch (OseeCoreException ex) { diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/NewCoveragePackageAction.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/NewCoveragePackageAction.java index eda8e2bcb11..f46f79a234e 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/NewCoveragePackageAction.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/NewCoveragePackageAction.java @@ -62,11 +62,10 @@ public class NewCoveragePackageAction extends Action { new CoveragePackage(dialog.getEntry(), CoverageOptionManagerDefault.instance(), new DbWorkProductTaskProvider(branch)); SkynetTransaction transaction = new SkynetTransaction(branch, "Add Coverage Package"); - CoveragePackageEvent coverageEvent = - new CoveragePackageEvent(coveragePackage, CoverageEventType.Added); + CoveragePackageEvent coverageEvent = new CoveragePackageEvent(coveragePackage, CoverageEventType.Added); OseeCoveragePackageStore.get(coveragePackage, branch).save(transaction, coverageEvent); transaction.execute(); - CoverageEventManager.getInstance().sendRemoteEvent(coverageEvent); + CoverageEventManager.instance.sendRemoteEvent(coverageEvent); CoverageEditor.open(new CoverageEditorInput(dialog.getEntry(), OseeCoveragePackageStore.get( coveragePackage, branch).getArtifact(false), coveragePackage, false)); } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/ViewSourceAction.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/ViewSourceAction.java index 96af7f0b071..7b8c741d49a 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/ViewSourceAction.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/action/ViewSourceAction.java @@ -84,7 +84,7 @@ public class ViewSourceAction extends Action { html = html.replaceAll("HEREBEGIN", "<FONT style=\"BACKGROUND-COLOR: yellow\">"); html = html.replaceAll("HEREEND", "</FONT>"); ResultsEditor.open("source", - CoverageUtil.getFullPathWithName(item.getParent()) + "[" + item.getName() + "]", html); + CoverageUtil.getFullPathWithName(item.getParent(), true) + "[" + item.getName() + "]", html); } else { AWorkbench.popup("No File Contents Available"); return; @@ -99,7 +99,7 @@ public class ViewSourceAction extends Action { } String html = AHTML.textToHtml(text); html = html.replaceAll(" ", " "); - ResultsEditor.open("source", CoverageUtil.getFullPathWithName(item), html); + ResultsEditor.open("source", CoverageUtil.getFullPathWithName(item, true), html); } } catch (OseeCoreException 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 35ab3d17b6c..82816288663 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 @@ -131,7 +131,7 @@ public class CoverageEditor extends FormEditor implements IActionable { } monitor.worked(1); - CoverageEventManager.getInstance().register(editor); + CoverageEventManager.instance.register(editor); // elapsedTime.end(); } @@ -245,7 +245,7 @@ public class CoverageEditor extends FormEditor implements IActionable { @Override public void dispose() { - CoverageEventManager.getInstance().unregister(this); + CoverageEventManager.instance.unregister(this); super.dispose(); } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorImportTab.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorImportTab.java index dae2ae78d82..dfc2e96d76c 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorImportTab.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorImportTab.java @@ -228,6 +228,7 @@ public class CoverageEditorImportTab extends FormPage { @Override public void done(IJobChangeEvent event) { + blamOutputSection.appendText(String.format("BLAM completed in [%s]\n", Lib.getElapseString(startTime))); super.done(event); } } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorMergeTab.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorMergeTab.java index d2cf43d6b27..591a63395ee 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorMergeTab.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorMergeTab.java @@ -52,6 +52,7 @@ 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.transaction.SkynetTransaction; +import org.eclipse.osee.framework.skynet.core.utility.ElapsedTime; import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; import org.eclipse.osee.framework.ui.plugin.util.HelpUtil; import org.eclipse.osee.framework.ui.plugin.util.Result; @@ -325,15 +326,19 @@ public class CoverageEditorMergeTab extends FormPage implements ISaveable { @Override protected void doWork(IProgressMonitor monitor) throws Exception { - final XResultData resultData = new XResultData(); + + final ElapsedTime elapsedTime = new ElapsedTime(getName()); + final XResultData resultData = new XResultData(false); final List<IMergeItem> mergeItems = mergeManager.getMergeItems(resultData); Displays.ensureInDisplayThread(new Runnable() { @Override public void run() { + elapsedTime.logPoint("setInput"); xImportViewer2.getXViewer().setInput(mergeItems); if (debugReport) { resultData.report("Re-Load"); } + elapsedTime.end(); } }); } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorOverviewTab.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorOverviewTab.java index 4830f88ba6f..b50d46d9d82 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorOverviewTab.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/CoverageEditorOverviewTab.java @@ -23,6 +23,7 @@ import org.eclipse.osee.coverage.model.CoverageOptionManager; import org.eclipse.osee.coverage.model.CoveragePackageBase; import org.eclipse.osee.coverage.model.CoverageUnit; import org.eclipse.osee.coverage.util.CoverageUtil; +import org.eclipse.osee.coverage.validate.CoveragePackageOrderValidator; import org.eclipse.osee.framework.jdk.core.util.AHTML; import org.eclipse.osee.framework.ui.plugin.util.HelpUtil; import org.eclipse.osee.framework.ui.skynet.action.RefreshAction; @@ -117,6 +118,9 @@ public class CoverageEditorOverviewTab extends FormPage implements IRefreshActio } rd.addRaw(AHTML.newline()); rd.addRaw(AHTML.getLabelValueStr("\nEditor Branch", branchName)); + + new CoveragePackageOrderValidator(coveragePackageBase, rd).run(); + if (coveragePackageBase.getLog() != null) { rd.log(AHTML.newline() + AHTML.bold("Log:") + AHTML.newline()); rd.addRaw(coveragePackageBase.getLog().getReport("").getManipulatedHtml()); @@ -125,8 +129,8 @@ public class CoverageEditorOverviewTab extends FormPage implements IRefreshActio Displays.ensureInDisplayThread(new Runnable() { @Override public void run() { - xResultsComp.setHtmlText(rd.getReport(coveragePackageBase.getName()).getManipulatedHtml(), - coveragePackageBase.getName()); + String html = rd.getReport(coveragePackageBase.getName()).getManipulatedHtml(); + xResultsComp.setHtmlText(html, coveragePackageBase.getName()); } }); } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xmerge/CoverageMergeLabelProvider.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xmerge/CoverageMergeLabelProvider.java index a6a1b0b6f66..0f59d3b1fb5 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xmerge/CoverageMergeLabelProvider.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/editor/xmerge/CoverageMergeLabelProvider.java @@ -15,8 +15,11 @@ import org.eclipse.nebula.widgets.xviewer.XViewerColumn; import org.eclipse.osee.coverage.editor.xcover.CoverageLabelProvider; import org.eclipse.osee.coverage.editor.xcover.CoverageXViewerFactory; import org.eclipse.osee.coverage.merge.IMergeItem; +import org.eclipse.osee.coverage.merge.MergeItem; import org.eclipse.osee.coverage.merge.MergeItemGroup; +import org.eclipse.osee.coverage.merge.MergeType; import org.eclipse.osee.coverage.merge.MessageMergeItem; +import org.eclipse.osee.coverage.model.CoverageItem; import org.eclipse.osee.coverage.model.CoverageUnit; import org.eclipse.osee.coverage.model.ICoverage; import org.eclipse.osee.coverage.store.OseeCoverageUnitStore; @@ -98,6 +101,14 @@ public class CoverageMergeLabelProvider extends CoverageLabelProvider { if (!((IMergeItem) element).isImportAllowed()) { return ""; } + if (element instanceof MergeItem && ((MergeItem) element).getMergeType() == MergeType.CI_Method_Update) { + MergeItem mergeItem = (MergeItem) element; + if (mergeItem.getPackageItem() instanceof CoverageItem) { + return String.format("%s from [%s] to [%s]", mergeItem.getMergeType().toString(), + ((CoverageItem) mergeItem.getPackageItem()).getCoverageMethod().getName(), + ((CoverageItem) mergeItem.getImportItem()).getCoverageMethod().getName()); + } + } return ((IMergeItem) element).getMergeType().toString(); } if (coverage instanceof MergeItemGroup) { diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/event/CoverageEventManager.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/event/CoverageEventManager.java index e110eac142f..360716a5ddc 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/event/CoverageEventManager.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/event/CoverageEventManager.java @@ -55,16 +55,12 @@ import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; */ public class CoverageEventManager implements IArtifactEventListener, OseeMessagingStatusCallback { - private static CoverageEventManager instance = new CoverageEventManager(); + public static CoverageEventManager instance = new CoverageEventManager(); private final List<CoverageEditor> editors = new ArrayList<CoverageEditor>(); private ArtifactTypeEventFilter artifactTypeEventFilter; private ConnectionNode connectionNode; private OseeMessagingTracker oseeMessagingTracker; - public static CoverageEventManager getInstance() { - return instance; - } - public static void dispose() { instance.stopListeneingForFrameworkEvents(); instance.stopListeningForRemoteCoverageEvents(); diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/event/OseeMessagingTracker.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/event/OseeMessagingTracker.java index 34a0b6dd844..bfe6f15b253 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/event/OseeMessagingTracker.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/event/OseeMessagingTracker.java @@ -36,7 +36,7 @@ public class OseeMessagingTracker extends ServiceTracker { MessageService service = (MessageService) super.addingService(reference); try { connectionNode = service.getDefault(); - CoverageEventManager.getInstance().addingRemoteEventService(connectionNode); + CoverageEventManager.instance.addingRemoteEventService(connectionNode); } catch (OseeCoreException ex) { OseeLog.log(OseeMessagingTracker.class, Level.SEVERE, ex); } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeImportManager.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeImportManager.java index a7d56a9455d..08ab07afec2 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeImportManager.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeImportManager.java @@ -14,6 +14,7 @@ import java.util.Collection; import org.eclipse.osee.coverage.internal.Activator; import org.eclipse.osee.coverage.model.CoverageImport; import org.eclipse.osee.coverage.model.CoverageItem; +import org.eclipse.osee.coverage.model.CoverageOptionManager; import org.eclipse.osee.coverage.model.CoveragePackage; import org.eclipse.osee.coverage.model.CoverageUnit; import org.eclipse.osee.coverage.model.ICoverage; @@ -183,6 +184,9 @@ public class MergeImportManager { CoverageItem importItem = (CoverageItem) ((MergeItem) mergeItem).getImportItem(); CoverageItem packageItem = (CoverageItem) ((MergeItem) mergeItem).getPackageItem(); packageItem.setCoverageMethod(importItem.getCoverageMethod()); + if (importItem.getCoverageMethod().getName().equals(CoverageOptionManager.Test_Unit.name)) { + packageItem.setRationale(""); + } updateFileContents(packageItem, importItem); } @@ -194,7 +198,8 @@ public class MergeImportManager { } private void updateFileContents(CoverageUnit packageUnit, CoverageUnit importUnit) throws OseeCoreException { - if (!packageUnit.getFileContents().equals(importUnit.getFileContents())) { + if (Strings.isValid(importUnit.getFileContents()) && !packageUnit.getFileContents().equals( + importUnit.getFileContents())) { packageUnit.setFileContents(importUnit.getFileContents()); } if (packageUnit.getParent() != null && packageUnit.getParent() instanceof CoverageUnit) { 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 c17485e2c0a..f5a8d99eb79 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 @@ -176,6 +176,11 @@ public class MergeItem extends MergeItemBase { } @Override + public String toStringNoPackage() { + return toString(); + } + + @Override public String getOrderNumber() { if (Strings.isValid(importItem.getOrderNumber())) { return importItem.getOrderNumber(); 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 03f3a0dafe5..123f5070fe2 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 @@ -43,6 +43,11 @@ public class MergeItemGroup extends MergeItemBase { } @Override + public String toStringNoPackage() { + return toString(); + } + + @Override public String getAssignees() { return ""; } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeManager.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeManager.java index b6d5188e21e..908a0cbc4c7 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeManager.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/merge/MergeManager.java @@ -23,6 +23,8 @@ import java.util.Set; import java.util.concurrent.CopyOnWriteArrayList; import org.eclipse.osee.coverage.model.CoverageImport; import org.eclipse.osee.coverage.model.CoverageItem; +import org.eclipse.osee.coverage.model.CoverageOption; +import org.eclipse.osee.coverage.model.CoverageOptionManager; import org.eclipse.osee.coverage.model.CoveragePackage; import org.eclipse.osee.coverage.model.CoveragePackageBase; import org.eclipse.osee.coverage.model.ICoverage; @@ -314,7 +316,17 @@ public class MergeManager { if (!(importItem instanceof CoverageItem)) { return false; } - if (!((CoverageItem) importItem).getCoverageMethod().equals(((CoverageItem) packageItem).getCoverageMethod())) { + + CoverageOption oldExistingOption = ((CoverageItem) packageItem).getCoverageMethod(); + CoverageOption newImportOption = ((CoverageItem) importItem).getCoverageMethod(); + boolean oldIsAnalystDispositionOption = + CoverageOptionManager.isAnalystDispositionedCoverageOption(oldExistingOption); + // If existing is an Analyst Disposition Option, don't overwrite with Not_Covered + if (oldIsAnalystDispositionOption && newImportOption.equals(CoverageOptionManager.Not_Covered)) { + return false; + } + // Else if new is different than old, overwrite old + else if (!newImportOption.equals(oldExistingOption)) { return true; } return false; 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 381e5064a69..21bf872364e 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 @@ -138,4 +138,14 @@ public class CoverageImport extends CoveragePackageBase { return super.equals(obj); } + @Override + public String toString() { + return getName(); + } + + @Override + public String toStringNoPackage() { + return getName(); + } + } 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 abc94f1efe4..6e8d9673ccd 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 @@ -132,6 +132,13 @@ public class CoverageItem extends NamedIdentity implements ICoverage, IWorkProdu } @Override + public String toStringNoPackage() { + return String.format("[Item : [%s][M: %s][E: %s][%s][Name: %s][Path: %s]]", getCoverageMethod(), + getCoverageUnit().getOrderNumber(), getOrderNumber(), getGuid(), getName(), + CoverageUtil.getFullPath(this, false)); + } + + @Override public Result isEditable() { return Result.FalseResult; } @@ -167,7 +174,7 @@ public class CoverageItem extends NamedIdentity implements ICoverage, IWorkProdu } public String getRationale() { - return rationale; + return rationale == null ? "" : rationale; } public void setRationale(String rationale) { diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageOptionManager.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageOptionManager.java index f4662ea93e6..4eccb0caf2d 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageOptionManager.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/model/CoverageOptionManager.java @@ -55,6 +55,13 @@ public class CoverageOptionManager { } /** + * Coverage Option is one set during analyst disposition. !Test_Unit and !Not_Covered + */ + public static boolean isAnalystDispositionedCoverageOption(CoverageOption coverageOption) { + return !coverageOption.equals(Test_Unit) && !coverageOption.equals(Not_Covered); + } + + /** * Return valid options. If Read, all values returned. This handles the search use case where wouldn't want to set * values, but would want to search them. If Write, only enabled values are returned. * 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 e5ce2006255..d4a643f480f 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 @@ -102,4 +102,14 @@ public class CoveragePackage extends CoveragePackageBase { return super.equals(obj); } + @Override + public String toString() { + return getName(); + } + + @Override + public String toStringNoPackage() { + return getName(); + } + } 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 86c11039862..02733104488 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 @@ -32,6 +32,11 @@ public class CoverageTestUnit extends NamedIdentity implements ICoverage { } @Override + public String toStringNoPackage() { + return toString(); + } + + @Override public String getAssignees() { return ""; } @@ -118,4 +123,5 @@ public class CoverageTestUnit extends NamedIdentity implements ICoverage { public String getWorkProductTaskStr() { 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 d1c0f0b0f88..8ac10528605 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 @@ -160,6 +160,12 @@ public class CoverageUnit extends NamedIdentity implements IWorkProductRelatable } @Override + public String toStringNoPackage() { + return String.format("[Unit [%s][M: %s][%s][Path: %s]]", getName(), getOrderNumber(), getGuid(), + CoverageUtil.getFullPath(this, false)); + } + + @Override public Result isEditable() { return Result.TrueResult; } 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 882eccfff9d..09e9e81dfa3 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 @@ -56,4 +56,5 @@ public interface ICoverage extends Named, Identity { public String getWorkProductTaskStr(); + public String toStringNoPackage(); } 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 ee64c53841e..f9293a43802 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 @@ -37,6 +37,11 @@ public class MessageCoverageItem extends NamedIdentity implements ICoverage { } @Override + public String toStringNoPackage() { + return toString(); + } + + @Override public String getAssignees() { return ""; } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoveragePackageStore.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoveragePackageStore.java index a9c61a9e573..f572e07fbd7 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoveragePackageStore.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoveragePackageStore.java @@ -236,7 +236,7 @@ public class OseeCoveragePackageStore extends OseeCoverageStore implements ISave CoveragePackageEvent coverageEvent = new CoveragePackageEvent(coveragePackage, CoverageEventType.Modified); save(transaction, coverageEvent, coverages); transaction.execute(); - CoverageEventManager.getInstance().sendRemoteEvent(coverageEvent); + CoverageEventManager.instance.sendRemoteEvent(coverageEvent); } catch (OseeCoreException ex) { OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex); return new Result("Save Failed: " + ex.getLocalizedMessage()); diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoverageStore.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoverageStore.java index a64cbe7bdf5..7eb70b7a038 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoverageStore.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/store/OseeCoverageStore.java @@ -67,7 +67,7 @@ public abstract class OseeCoverageStore extends CoverageStore { CoveragePackageEvent coverageEvent = getBaseCoveragePackageEvent(CoverageEventType.Modified); save(transaction, coverageEvent); transaction.execute(); - CoverageEventManager.getInstance().sendRemoteEvent(coverageEvent); + CoverageEventManager.instance.sendRemoteEvent(coverageEvent); } catch (OseeCoreException ex) { OseeLog.log(Activator.class, OseeLevel.SEVERE_POPUP, ex); return new Result("Save Failed: " + ex.getLocalizedMessage()); @@ -81,7 +81,7 @@ public abstract class OseeCoverageStore extends CoverageStore { CoveragePackageEvent coverageEvent = getBaseCoveragePackageEvent(CoverageEventType.Deleted); delete(transaction, coverageEvent, purge); transaction.execute(); - CoverageEventManager.getInstance().sendRemoteEvent(coverageEvent); + CoverageEventManager.instance.sendRemoteEvent(coverageEvent); } public abstract CoveragePackageEvent getBaseCoveragePackageEvent(CoverageEventType coverageEventType); diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/CoverageUtil.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/CoverageUtil.java index 094638217a1..d510b3762bb 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/CoverageUtil.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/CoverageUtil.java @@ -177,28 +177,36 @@ public class CoverageUtil { /** * Returns string of all parent ICoverage items up the tree */ + public static String getFullPath(ICoverage coverage, boolean includePackageName) { + StringBuffer sb = new StringBuffer(); + getFullPathRecurse(coverage.getParent(), includePackageName, sb); + return sb.toString(); + } + public static String getFullPath(ICoverage coverage) { StringBuffer sb = new StringBuffer(); - getFullPathRecurse(coverage.getParent(), sb); + getFullPathRecurse(coverage.getParent(), true, sb); return sb.toString(); } - public static String getFullPathWithName(ICoverage coverage) { + public static String getFullPathWithName(ICoverage coverage, boolean includePackageName) { StringBuffer sb = new StringBuffer(); - getFullPathRecurse(coverage.getParent(), sb); + getFullPathRecurse(coverage.getParent(), includePackageName, sb); sb.append("[" + coverage.getName() + "]"); return sb.toString(); } - public static void getFullPathRecurse(ICoverage coverage, StringBuffer sb) { + public static void getFullPathRecurse(ICoverage coverage, boolean includePackageName, StringBuffer sb) { if (coverage == null) { return; } - getFullPathRecurse(coverage.getParent(), sb); - if (coverage instanceof CoverageImport) { + getFullPathRecurse(coverage.getParent(), includePackageName, sb); + if (coverage instanceof CoverageImport && includePackageName) { sb.append("[Import]"); } else { - sb.append("[" + coverage.getName() + "]"); + if (!(coverage instanceof CoveragePackageBase) || includePackageName) { + sb.append("[" + coverage.getName() + "]"); + } } } @@ -207,7 +215,7 @@ public class CoverageUtil { MatchItem item = MergeManager.getPackageCoverageItem(coveragePackage, importItem); if (!item.isMatch()) { System.out.println(String.format("No Match for item [%s] path [%s]", importItem, - CoverageUtil.getFullPath(importItem))); + CoverageUtil.getFullPath(importItem, false))); } } } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/dialog/CoveragePackageArtifactListDialog.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/dialog/CoveragePackageArtifactListDialog.java index 71c8757842d..3affd1fb810 100644 --- a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/dialog/CoveragePackageArtifactListDialog.java +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/util/dialog/CoveragePackageArtifactListDialog.java @@ -15,7 +15,10 @@ import org.eclipse.jface.viewers.IStructuredContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.Viewer; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.ui.skynet.util.ArtifactNameSorter; import org.eclipse.osee.framework.ui.swt.Displays; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; /** * @author Donald G. Dunne @@ -53,4 +56,12 @@ public class CoveragePackageArtifactListDialog extends org.eclipse.ui.dialogs.Li }); } + + @Override + protected Control createDialogArea(Composite container) { + Control control = super.createDialogArea(container); + getTableViewer().setSorter(new ArtifactNameSorter()); + return control; + } + } diff --git a/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/validate/CoveragePackageOrderValidator.java b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/validate/CoveragePackageOrderValidator.java new file mode 100644 index 00000000000..797562a8532 --- /dev/null +++ b/plugins/org.eclipse.osee.coverage/src/org/eclipse/osee/coverage/validate/CoveragePackageOrderValidator.java @@ -0,0 +1,102 @@ +/* + * Created on Apr 6, 2011 + * + * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE + */ +package org.eclipse.osee.coverage.validate; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.eclipse.osee.coverage.model.CoverageItem; +import org.eclipse.osee.coverage.model.CoveragePackageBase; +import org.eclipse.osee.coverage.model.CoverageUnit; +import org.eclipse.osee.coverage.model.ICoverage; +import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.ui.skynet.results.XResultData; + +/** + * Validate that all coverage objects valid order numbers. Not duplicates and no missing numbers. Add error to list that + * will be showed on overview. + * + * @author Donald G. Dunne + */ +public class CoveragePackageOrderValidator { + + private final CoveragePackageBase coveragePackageBase; + private final XResultData rd; + + public CoveragePackageOrderValidator(CoveragePackageBase coveragePackageBase, XResultData rd) { + super(); + this.coveragePackageBase = coveragePackageBase; + this.rd = rd; + } + + public void run() { + List<String> orderErrors = new ArrayList<String>(); + validateCoverageOrderNums(orderErrors, coveragePackageBase.getCoverageUnits()); + if (orderErrors.size() == 0) { + rd.log(AHTML.newline() + AHTML.bold("Validation: ") + "Ok"); + } else { + rd.log(AHTML.newline() + AHTML.bold("Validation: ") + AHTML.newline()); + for (String str : orderErrors) { + rd.logError(str); + } + } + } + + private void validateCoverageOrderNums(List<String> orderErrors, List<CoverageUnit> coverageUnits) { + for (CoverageUnit coverageUnit : coverageUnits) { + + // validate coverage units + List<String> orderNums = new ArrayList<String>(); + for (CoverageUnit unit : coverageUnit.getCoverageUnits()) { + if (Strings.isValid(unit.getOrderNumber())) { + orderNums.add(unit.getOrderNumber()); + } + } + if (!orderNums.isEmpty()) { + validateNumbers("child units", orderErrors, orderNums, coverageUnit); + } + // validate coverage items + orderNums.clear(); + for (CoverageItem item : coverageUnit.getCoverageItems()) { + if (Strings.isValid(item.getOrderNumber())) { + orderNums.add(item.getOrderNumber()); + } + } + if (!orderNums.isEmpty()) { + validateNumbers("child items", orderErrors, orderNums, coverageUnit); + } + + // process children coverage units + for (CoverageUnit unit : coverageUnit.getCoverageUnits()) { + validateCoverageOrderNums(orderErrors, unit.getCoverageUnits()); + } + } + } + + private void validateNumbers(String name, List<String> orderErrors, List<String> orderNums, ICoverage coverage) { + int maxNum = 0; + Map<Integer, Boolean> maxNumToFound = new HashMap<Integer, Boolean>(); + for (String number : orderNums) { + int orderNum = new Integer(number); + if (orderNum > maxNum) { + maxNum = orderNum; + } + if (maxNumToFound.containsKey(orderNum)) { + orderErrors.add(String.format("Found duplicate [%s] order num [%s] for %s", name, orderNum, + coverage.toStringNoPackage())); + } + maxNumToFound.put(orderNum, true); + } + for (int x = 1; x <= orderNums.size(); x++) { + if (!maxNumToFound.containsKey(x)) { + orderErrors.add(String.format("[%s] order num [%s] not found for %s", name, x, coverage.toStringNoPackage())); + } + } + } + +} |