diff options
author | ddunne | 2008-05-02 00:20:56 +0000 |
---|---|---|
committer | ddunne | 2008-05-02 00:20:56 +0000 |
commit | 74ab2f3d24e45223a621280b36bc5c53c10e8c87 (patch) | |
tree | 80ce7c6666ba2f110708fe6d16ba341e0ca93397 | |
parent | 6cad848e823795ef5e0a8df23b3e77ff4ce995db (diff) | |
download | org.eclipse.osee-74ab2f3d24e45223a621280b36bc5c53c10e8c87.tar.gz org.eclipse.osee-74ab2f3d24e45223a621280b36bc5c53c10e8c87.tar.xz org.eclipse.osee-74ab2f3d24e45223a621280b36bc5c53c10e8c87.zip |
Change Report Improvements
7 files changed, 278 insertions, 1 deletions
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/ServicesArea.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/ServicesArea.java index a9dfdd45627..d946527140a 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/ServicesArea.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/ServicesArea.java @@ -26,7 +26,9 @@ import org.eclipse.osee.ats.editor.service.branch.CommitWorkingBranchService; import org.eclipse.osee.ats.editor.service.branch.CreateWorkingBranchService; import org.eclipse.osee.ats.editor.service.branch.DeleteWorkingBranch; import org.eclipse.osee.ats.editor.service.branch.ShowChangeReportService; +import org.eclipse.osee.ats.editor.service.branch.ShowChangeReportServiceNew; import org.eclipse.osee.ats.editor.service.branch.ShowChangeReportToolbarService; +import org.eclipse.osee.ats.editor.service.branch.ShowChangeReportToolbarServiceNew; import org.eclipse.osee.ats.editor.service.branch.ShowWorkingBranchService; import org.eclipse.osee.ats.workflow.AtsWorkPage; import org.eclipse.osee.framework.ui.skynet.XFormToolkit; @@ -77,6 +79,7 @@ public class ServicesArea { services.add(new AddPeerToPeerReviewService(smaMgr)); services.add(new BlockingReview(smaMgr)); // Toolbar Services + services.add(new ShowChangeReportToolbarServiceNew(smaMgr)); services.add(new ShowChangeReportToolbarService(smaMgr)); services.add(new OpenParent(smaMgr)); services.add(new EmailActionService(smaMgr)); @@ -93,6 +96,7 @@ public class ServicesArea { if (page.isAllowCreateBranch()) services.add(new CreateWorkingBranchService(smaMgr)); services.add(new ShowWorkingBranchService(smaMgr)); services.add(new ShowChangeReportService(smaMgr)); + services.add(new ShowChangeReportServiceNew(smaMgr)); if (page.isAllowCommitBranch()) services.add(new CommitWorkingBranchService(smaMgr, false)); if (AtsPlugin.isAtsAdmin()) services.add(new CommitWorkingBranchService(smaMgr, true)); services.add(new DeleteWorkingBranch(smaMgr)); diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/branch/ShowChangeReportServiceNew.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/branch/ShowChangeReportServiceNew.java new file mode 100644 index 00000000000..371b1c29b9c --- /dev/null +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/branch/ShowChangeReportServiceNew.java @@ -0,0 +1,149 @@ +/******************************************************************************* + * 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.editor.service.branch; + +import java.sql.SQLException; +import org.eclipse.osee.ats.editor.SMAManager; +import org.eclipse.osee.ats.editor.SMAWorkFlowSection; +import org.eclipse.osee.ats.editor.service.WorkPageService; +import org.eclipse.osee.ats.editor.stateItem.BranchableStateItem; +import org.eclipse.osee.ats.workflow.AtsWorkPage; +import org.eclipse.osee.framework.jdk.core.type.Pair; +import org.eclipse.osee.framework.skynet.core.event.LocalBranchEvent; +import org.eclipse.osee.framework.skynet.core.event.LocalBranchToArtifactCacheUpdateEvent; +import org.eclipse.osee.framework.skynet.core.event.LocalTransactionEvent; +import org.eclipse.osee.framework.skynet.core.event.RemoteBranchEvent; +import org.eclipse.osee.framework.skynet.core.event.RemoteTransactionEvent; +import org.eclipse.osee.framework.skynet.core.event.SkynetEventManager; +import org.eclipse.osee.framework.skynet.core.transaction.TransactionId; +import org.eclipse.osee.framework.skynet.core.transaction.TransactionIdManager; +import org.eclipse.osee.framework.ui.plugin.event.Event; +import org.eclipse.osee.framework.ui.plugin.event.IEventReceiver; +import org.eclipse.osee.framework.ui.skynet.XFormToolkit; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Group; +import org.eclipse.ui.forms.events.HyperlinkEvent; +import org.eclipse.ui.forms.events.IHyperlinkListener; +import org.eclipse.ui.forms.widgets.Hyperlink; + +/** + * @author Donald G. Dunne + */ +public class ShowChangeReportServiceNew extends WorkPageService implements IEventReceiver { + private static final TransactionIdManager transactionIdManager = TransactionIdManager.getInstance(); + + private Hyperlink link; + + // Since this service is only going to be added for the Implement state, Location.AllState will + // work + public ShowChangeReportServiceNew(SMAManager smaMgr) { + super(smaMgr); + } + + /* (non-Javadoc) + * @see org.eclipse.osee.ats.editor.service.WorkPageService#isShowSidebarService(org.eclipse.osee.ats.workflow.AtsWorkPage) + */ + @Override + public boolean isShowSidebarService(AtsWorkPage page) { + return isCurrentState(page) || page.getId().contains("Implement"); + } + + /* (non-Javadoc) + * @see org.eclipse.osee.ats.editor.service.WorkPageService#createSidebarService(org.eclipse.swt.widgets.Group, org.eclipse.osee.ats.workflow.AtsWorkPage, org.eclipse.osee.framework.ui.skynet.XFormToolkit, org.eclipse.osee.ats.editor.SMAWorkFlowSection) + */ + @Override + public void createSidebarService(Group workGroup, AtsWorkPage page, XFormToolkit toolkit, SMAWorkFlowSection section) { + link = toolkit.createHyperlink(workGroup, getName(), SWT.NONE); + link.addHyperlinkListener(new IHyperlinkListener() { + + public void linkEntered(HyperlinkEvent e) { + } + + public void linkExited(HyperlinkEvent e) { + } + + public void linkActivated(HyperlinkEvent e) { + performService(); + } + }); + SkynetEventManager.getInstance().register(LocalTransactionEvent.class, this); + SkynetEventManager.getInstance().register(RemoteTransactionEvent.class, this); + SkynetEventManager.getInstance().register(LocalBranchEvent.class, this); + SkynetEventManager.getInstance().register(RemoteBranchEvent.class, this); + SkynetEventManager.getInstance().register(LocalBranchToArtifactCacheUpdateEvent.class, this); + refresh(); + } + + /* (non-Javadoc) + * @see org.eclipse.osee.ats.editor.service.WorkPageService#getName() + */ + @Override + public String getName() { + return "Show Change Report (New)"; + } + + /* (non-Javadoc) + * @see org.eclipse.osee.ats.editor.service.WorkPageService#getSidebarCategory() + */ + @Override + public String getSidebarCategory() { + return BranchableStateItem.BRANCH_CATEGORY; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.osee.ats.editor.statistic.WorkPageStatistic#refresh() + */ + @Override + public void refresh() { + if (link != null && !link.isDisposed()) { + boolean enabled = isEnabled(); + link.setText(enabled ? "Show Change Report (New)" : "Show Change Report (New)\n(no changes)"); + link.setEnabled(enabled); + link.setUnderlined(enabled); + } + } + + private boolean isEnabled() { + boolean enabled = false; + try { + if (smaMgr.getBranchMgr().isWorkingBranch()) { + Pair<TransactionId, TransactionId> transactionToFrom = + transactionIdManager.getStartEndPoint(smaMgr.getBranchMgr().getWorkingBranch()); + enabled = !transactionToFrom.getKey().equals(transactionToFrom.getValue()); + } else { + enabled = smaMgr.getBranchMgr().getTransactionId() != null; + } + } catch (SQLException ex) { + // do nothing + } + return enabled; + } + + public void onEvent(Event event) { + refresh(); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.osee.framework.jdk.core.event.IEventReceiver#runOnEventInDisplayThread() + */ + public boolean runOnEventInDisplayThread() { + return true; + } + + private void performService() { + smaMgr.getBranchMgr().showChangeReportNew(); + } + +} diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/branch/ShowChangeReportToolbarServiceNew.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/branch/ShowChangeReportToolbarServiceNew.java new file mode 100644 index 00000000000..8b933e54f83 --- /dev/null +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/service/branch/ShowChangeReportToolbarServiceNew.java @@ -0,0 +1,98 @@ +/******************************************************************************* + * 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.editor.service.branch; + +import org.eclipse.jface.action.Action; +import org.eclipse.osee.ats.editor.SMAManager; +import org.eclipse.osee.ats.editor.service.WorkPageService; +import org.eclipse.osee.framework.skynet.core.event.LocalBranchEvent; +import org.eclipse.osee.framework.skynet.core.event.LocalBranchToArtifactCacheUpdateEvent; +import org.eclipse.osee.framework.skynet.core.event.RemoteBranchEvent; +import org.eclipse.osee.framework.skynet.core.event.SkynetEventManager; +import org.eclipse.osee.framework.ui.plugin.event.Event; +import org.eclipse.osee.framework.ui.plugin.event.IEventReceiver; +import org.eclipse.osee.framework.ui.skynet.SkynetGuiPlugin; + +/** + * @author Donald G. Dunne + */ +public class ShowChangeReportToolbarServiceNew extends WorkPageService implements IEventReceiver { + private Action action; + + // Since this service is only going to be added for the Implement state, Location.AllState will + // work + public ShowChangeReportToolbarServiceNew(SMAManager smaMgr) { + super(smaMgr); + } + + /* (non-Javadoc) + * @see org.eclipse.osee.ats.editor.service.WorkPageService#createToolbarService() + */ + @Override + public Action createToolbarService() { + if (!isEnabled()) return null; + action = new Action(getName(), Action.AS_PUSH_BUTTON) { + public void run() { + performService(); + } + }; + action.setToolTipText(getName()); + action.setImageDescriptor(SkynetGuiPlugin.getInstance().getImageDescriptor("branch_change.gif")); + SkynetEventManager.getInstance().register(LocalBranchEvent.class, this); + SkynetEventManager.getInstance().register(RemoteBranchEvent.class, this); + SkynetEventManager.getInstance().register(LocalBranchToArtifactCacheUpdateEvent.class, this); + return action; + } + + /* (non-Javadoc) + * @see org.eclipse.osee.ats.editor.service.WorkPageService#getName() + */ + @Override + public String getName() { + return "Show Change Report (New)"; + } + + private boolean isEnabled() { + boolean enabled = false; + try { + enabled = smaMgr.getBranchMgr().isCommittedBranch() || smaMgr.getBranchMgr().isWorkingBranch(); + } catch (Exception ex) { + // do nothing + } + return enabled; + } + + /* (non-Javadoc) + * @see org.eclipse.osee.ats.editor.service.WorkPageService#refresh() + */ + @Override + public void refresh() { + super.refresh(); + if (action != null) action.setEnabled(isEnabled()); + } + + public void onEvent(Event event) { + refresh(); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.osee.framework.jdk.core.event.IEventReceiver#runOnEventInDisplayThread() + */ + public boolean runOnEventInDisplayThread() { + return true; + } + + private void performService() { + smaMgr.getBranchMgr().showChangeReportNew(); + } +}
\ No newline at end of file diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/BranchableStateItem.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/BranchableStateItem.java index 63653b2e0b5..2c1e800e513 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/BranchableStateItem.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/editor/stateItem/BranchableStateItem.java @@ -22,6 +22,7 @@ import org.eclipse.osee.ats.editor.service.branch.CommitWorkingBranchService; import org.eclipse.osee.ats.editor.service.branch.CreateWorkingBranchService; import org.eclipse.osee.ats.editor.service.branch.DeleteWorkingBranch; import org.eclipse.osee.ats.editor.service.branch.ShowChangeReportService; +import org.eclipse.osee.ats.editor.service.branch.ShowChangeReportServiceNew; import org.eclipse.osee.ats.editor.service.branch.ShowWorkingBranchService; import org.eclipse.osee.framework.skynet.core.User; import org.eclipse.osee.framework.ui.plugin.util.Result; @@ -49,6 +50,7 @@ public abstract class BranchableStateItem extends AtsStateItem { services.add(new CommitManagerService(smaMgr)); services.add(new ShowWorkingBranchService(smaMgr)); services.add(new ShowChangeReportService(smaMgr)); + services.add(new ShowChangeReportServiceNew(smaMgr)); services.add(new CommitWorkingBranchService(smaMgr, false)); if (AtsPlugin.isAtsAdmin()) services.add(new CommitWorkingBranchService(smaMgr, true)); services.add(new DeleteWorkingBranch(smaMgr)); diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/BranchManager.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/BranchManager.java index 924fa0bdc14..55efb570b03 100644 --- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/BranchManager.java +++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/util/BranchManager.java @@ -38,6 +38,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.ArtifactPersistenceManage import org.eclipse.osee.framework.skynet.core.artifact.Branch; import org.eclipse.osee.framework.skynet.core.artifact.BranchPersistenceManager; import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactInTransactionSearch; +import org.eclipse.osee.framework.skynet.core.change.Change; import org.eclipse.osee.framework.skynet.core.change.ModificationType; import org.eclipse.osee.framework.skynet.core.revision.ArtifactChange; import org.eclipse.osee.framework.skynet.core.revision.ChangeReportInput; @@ -56,6 +57,7 @@ import org.eclipse.osee.framework.ui.skynet.changeReport.ChangeReportView; import org.eclipse.osee.framework.ui.skynet.util.OSEELog; import org.eclipse.osee.framework.ui.skynet.widgets.IBranchArtifact; import org.eclipse.osee.framework.ui.skynet.widgets.dialog.CheckBoxDialog; +import org.eclipse.osee.framework.ui.skynet.widgets.xchange.ChangeView; import org.eclipse.osee.framework.ui.skynet.widgets.xcommit.CommitManagerView; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.PlatformUI; @@ -160,6 +162,25 @@ public class BranchManager { /** * Display change report associated with the branch, if exists, or transaction, if branch has been committed. */ + public void showChangeReportNew() { + try { + if (isWorkingBranch()) { + Change[] changes = new Change[0]; + ChangeView.openViewUpon(RevisionManager.getInstance().getChangesPerBranch(getWorkingBranch()).toArray( + changes)); + } else if (isCommittedBranch()) { + AWorkbench.popup("ERROR", "not implemented yet."); + } else { + AWorkbench.popup("ERROR", "No Branch or Committed Transaction Found."); + } + } catch (Exception ex) { + OSEELog.logException(AtsPlugin.class, "Can't show change report.", ex, true); + } + } + + /** + * Display change report associated with the branch, if exists, or transaction, if branch has been committed. + */ public void showCommitManager() { try { if (smaMgr.getBranchMgr().getWorkingBranch() == null) { diff --git a/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF b/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF index b180b72da34..f1392b16cfe 100644 --- a/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF +++ b/org.eclipse.osee.framework.ui.skynet/META-INF/MANIFEST.MF @@ -73,7 +73,9 @@ Export-Package: org.eclipse.osee.framework.ui.skynet, org.eclipse.osee.framework.ui.skynet.widgets.cellEditor, org.eclipse.osee.framework.ui.skynet.widgets.dialog, org.eclipse.osee.framework.ui.skynet.widgets.workflow, + org.eclipse.osee.framework.ui.skynet.widgets.xchange, org.eclipse.osee.framework.ui.skynet.widgets.xcommit, + org.eclipse.osee.framework.ui.skynet.widgets.xmerge, org.eclipse.osee.framework.ui.skynet.widgets.xnavigate, org.eclipse.osee.framework.ui.skynet.widgets.xresults, org.eclipse.osee.framework.ui.skynet.widgets.xviewer, diff --git a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/ChangeColumn.java b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/ChangeColumn.java index 0bf18ff2e2b..0151d1dc66c 100644 --- a/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/ChangeColumn.java +++ b/org.eclipse.osee.framework.ui.skynet/src/org/eclipse/osee/framework/ui/skynet/widgets/xchange/ChangeColumn.java @@ -21,7 +21,8 @@ import org.eclipse.swt.SWT; */ public enum ChangeColumn { - Name("Artifact name(s)", 350, SWT.LEFT, true, SortDataType.String, false), + Empty("", 0, SWT.LEFT, true, SortDataType.String, false), + Name("Artifact name(s)", 250, SWT.LEFT, true, SortDataType.String, false), Item_Type("Item Type", 150, SWT.LEFT, true, SortDataType.String, false), Item_Kind("Item Kind", 80, SWT.LEFT, true, SortDataType.String, false), Change_Type("Change Type", 80, SWT.LEFT, true, SortDataType.String, false), |