From bf1e08e01210e6d1919aa485ab12796d83ec3ba0 Mon Sep 17 00:00:00 2001 From: rbrooks Date: Fri, 18 Dec 2009 00:33:37 +0000 Subject: --- .../ats/actions/ExportChangeReportsAction.java | 84 ++++++++++++++++++++++ .../eclipse/osee/ats/util/AtsBranchManager.java | 2 +- .../eclipse/osee/ats/world/AtsWorldEditorItem.java | 6 +- 3 files changed, 89 insertions(+), 3 deletions(-) create mode 100644 org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/ExportChangeReportsAction.java (limited to 'org.eclipse.osee.ats') diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/ExportChangeReportsAction.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/ExportChangeReportsAction.java new file mode 100644 index 00000000000..dc3baa8fcc2 --- /dev/null +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/actions/ExportChangeReportsAction.java @@ -0,0 +1,84 @@ +/******************************************************************************* + * 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.ats.actions; + +import java.util.Collection; +import java.util.Set; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.osee.ats.AtsPlugin; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.util.AtsBranchManager; +import org.eclipse.osee.ats.world.WorldEditor; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.Branch; +import org.eclipse.osee.framework.core.model.TransactionRecord; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.change.Change; +import org.eclipse.osee.framework.skynet.core.revision.ChangeManager; +import org.eclipse.osee.framework.ui.skynet.FrameworkImage; +import org.eclipse.osee.framework.ui.skynet.ImageManager; +import org.eclipse.osee.framework.ui.skynet.commandHandlers.ViewWordChangeReportHandler; + +/** + * @author Donald G. Dunne + */ +public class ExportChangeReportsAction extends Action { + private final WorldEditor worldEditor; + + public ExportChangeReportsAction(WorldEditor worldEditor) { + setText("Export Change Reports(s)"); + setImageDescriptor(getImageDescriptor()); + this.worldEditor = worldEditor; + } + + public Set getWorkflows() { + return worldEditor.getWorldComposite().getXViewer().getSelectedTeamWorkflowArtifacts(); + } + + @Override + public void run() { + ViewWordChangeReportHandler handler = new ViewWordChangeReportHandler(); + try { + for (TeamWorkFlowArtifact teamArt : getWorkflows()) { + AtsBranchManager atsBranchMgr = teamArt.getSmaMgr().getBranchMgr(); + IProgressMonitor monitor = new NullProgressMonitor(); + Collection changes = null; + if (atsBranchMgr.isCommittedBranchExists()) { + TransactionRecord transaction = atsBranchMgr.getTransactionIdOrPopupChoose("Show Change Report", false); + changes = ChangeManager.getChangesPerTransaction(transaction, monitor); + } else { + Branch branch = atsBranchMgr.getWorkingBranch(); + if (branch != null) { + changes = ChangeManager.getChangesPerBranch(branch, monitor); + } + } + if (changes != null) { + handler.viewWordChangeReport(changes); + } + } + } catch (OseeCoreException ex) { + OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); + } + } + + @Override + public ImageDescriptor getImageDescriptor() { + return ImageManager.getImageDescriptor(FrameworkImage.EXPORT_DATA); + } + + public void updateEnablement() { + setEnabled(getWorkflows().size() > 0); + } +} diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchManager.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchManager.java index c005378f669..20f015a5537 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchManager.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/AtsBranchManager.java @@ -306,7 +306,7 @@ public class AtsBranchManager { * @return * @throws OseeCoreException */ - private TransactionRecord getTransactionIdOrPopupChoose(String title, boolean showMergeManager) throws OseeCoreException { + public TransactionRecord getTransactionIdOrPopupChoose(String title, boolean showMergeManager) throws OseeCoreException { Collection transactionIds = new HashSet(); for (TransactionRecord id : getTransactionIds(showMergeManager)) { // ignore working branches that have been committed diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsWorldEditorItem.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsWorldEditorItem.java index 9dbdd6331f1..25c037f617a 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsWorldEditorItem.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/world/AtsWorldEditorItem.java @@ -14,6 +14,7 @@ import java.util.Arrays; import java.util.List; import org.eclipse.jface.action.Action; import org.eclipse.osee.ats.actions.DuplicateWorkflowViaWorldEditorAction; +import org.eclipse.osee.ats.actions.ExportChangeReportsAction; import org.eclipse.osee.ats.export.AtsExportManager; import org.eclipse.osee.ats.operation.CancelMultipleWorkflows; import org.eclipse.osee.ats.operation.CompleteMultipleWorkflows; @@ -26,7 +27,8 @@ public class AtsWorldEditorItem extends AtsWorldEditorItemBase { @Override public List getWorldEditorMenuActions(IWorldEditorProvider worldEditorProvider, WorldEditor worldEditor) throws OseeCoreException { - return Arrays.asList(new AtsExportManager(worldEditor), new DuplicateWorkflowViaWorldEditorAction(worldEditor), - new CompleteMultipleWorkflows(worldEditor), new CancelMultipleWorkflows(worldEditor)); + return Arrays.asList(new AtsExportManager(worldEditor), new ExportChangeReportsAction(worldEditor), + new DuplicateWorkflowViaWorldEditorAction(worldEditor), new CompleteMultipleWorkflows(worldEditor), + new CancelMultipleWorkflows(worldEditor)); } } -- cgit v1.2.3