diff options
author | rbrooks | 2010-08-29 08:19:34 +0000 |
---|---|---|
committer | rbrooks | 2010-08-29 08:19:34 +0000 |
commit | 59f9aeec1800ce305d6075446f99269385af9c9b (patch) | |
tree | 2f1a2b4b28561e7afc90fd9501e056a4edf43cd8 /plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate | |
parent | d8dfd93647951a8fd2dfe74bf6fadb2697f08543 (diff) | |
parent | 9279bf9b85bf1ceb07098e922625e00996c085de (diff) | |
download | org.eclipse.osee-3a10f0673e85566766647d2b18ea2307d3c878fc.tar.gz org.eclipse.osee-3a10f0673e85566766647d2b18ea2307d3c878fc.tar.xz org.eclipse.osee-3a10f0673e85566766647d2b18ea2307d3c878fc.zip |
0.9.5 Branch Creation0.9.5.v201008280938
Diffstat (limited to 'plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate')
23 files changed, 2694 insertions, 2708 deletions
diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ArtifactImpactToActionSearchItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ArtifactImpactToActionSearchItem.java index f4a52ea6e4e..b6218a1d721 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ArtifactImpactToActionSearchItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ArtifactImpactToActionSearchItem.java @@ -1,179 +1,182 @@ -/*******************************************************************************
- * 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.navigate;
-
-import static org.eclipse.osee.framework.skynet.core.artifact.DeletionFlag.INCLUDE_DELETED;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.logging.Level;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.framework.core.data.SystemUser;
-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.jdk.core.type.HashCollection;
-import org.eclipse.osee.framework.jdk.core.util.AHTML;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.UserManager;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.BranchManager;
-import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-import org.eclipse.osee.framework.skynet.core.revision.ChangeManager;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
-import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
-import org.eclipse.osee.framework.ui.skynet.results.XResultData;
-import org.eclipse.osee.framework.ui.skynet.widgets.dialog.ArtifactCheckTreeDialog;
-import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialogWithBranchSelect;
-import org.eclipse.osee.framework.ui.swt.Displays;
-
-/**
- * @author Donald G. Dunne
- */
-public class ArtifactImpactToActionSearchItem extends XNavigateItemAction {
-
- private static String TITLE = "Search Artifact Impact to Action";
-
- /**
- * @param parent
- */
- public ArtifactImpactToActionSearchItem(XNavigateItem parent) {
- super(parent, TITLE, FrameworkImage.FLASHLIGHT);
- }
-
- @Override
- public void run(TableLoadOption... tableLoadOptions) {
- EntryDialogWithBranchSelect ed =
- new EntryDialogWithBranchSelect(getName(), "Enter Artifact Name (or string) to search (no wildcards)");
- if (ed.open() == 0) {
- ActionToArtifactImpactJob job = new ActionToArtifactImpactJob(ed.getEntry(), ed.getBranch());
- job.setUser(true);
- job.setPriority(Job.LONG);
- job.schedule();
- }
- }
-
- public static class ActionToArtifactImpactJob extends Job {
- private IProgressMonitor monitor;
- private final String artifactName;
- private final XResultData rd = new XResultData();
- private final Branch branch;
-
- public ActionToArtifactImpactJob(String artifactName, Branch branch) {
- super("Searching \"" + artifactName + "\"...");
- this.artifactName = artifactName;
- this.branch = branch;
- }
-
- @Override
- public IStatus run(IProgressMonitor monitor) {
- this.monitor = monitor;
- try {
- getMatrixItems();
- rd.report(TITLE + " - \"" + artifactName + "\"");
- return Status.OK_STATUS;
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.getMessage(), ex);
- }
- }
-
- private void getMatrixItems() throws OseeCoreException {
- final Collection<Artifact> srchArts =
- ArtifactQuery.getArtifactListFromName("%" + artifactName + "%", branch, INCLUDE_DELETED);
- final Set<Artifact> processArts = new HashSet<Artifact>();
- if (srchArts.isEmpty()) {
- return;
- }
- if (srchArts.size() > 1) {
- Displays.pendInDisplayThread(new Runnable() {
- @Override
- public void run() {
- ArtifactCheckTreeDialog dialog = new ArtifactCheckTreeDialog(srchArts);
- dialog.setTitle(TITLE);
- dialog.setMessage("Select Artifacts to Search");
- if (dialog.open() == 0) {
- processArts.addAll(dialog.getSelection());
- }
- }
- });
-
- } else {
- processArts.addAll(srchArts);
- }
- int x = 1;
- rd.log("Artifact Impact to Action for artifact(s) on branch \"" + branch.getShortName() + "\"");
-
- HashCollection<Artifact, TransactionRecord> transactionMap =
- ChangeManager.getModifingTransactions(processArts);
- HashCollection<Artifact, Branch> branchMap = ChangeManager.getModifingBranches(processArts);
- for (Artifact srchArt : processArts) {
- String str = String.format("Processing %d/%d - %s ", x++, processArts.size(), srchArt.getName());
- System.out.println(str);
- rd.log("\n" + AHTML.bold(srchArt.getName()));
- monitor.subTask(str);
- int y = 1;
- rd.addRaw(AHTML.beginMultiColumnTable(95, 1));
- rd.addRaw(AHTML.addHeaderRowMultiColumnTable(new String[] {"Type", "Status", "HRID", "Title"}));
-
- // Check for changes on working branches
- boolean workingBranchesFound = false;
-
- Collection<Branch> branches = branchMap.getValues(srchArt);
- if (branches != null) {
- for (Branch branch : branches) {
- Artifact assocArt = BranchManager.getAssociatedArtifact(branch);
- if (assocArt != null && !assocArt.equals(UserManager.getUser(SystemUser.OseeSystem))) {
- rd.addRaw(AHTML.addRowMultiColumnTable(new String[] {assocArt.getArtifactTypeName(), "Working",
- XResultData.getHyperlink(assocArt), assocArt.getName()}));
- } else {
- rd.addRaw(AHTML.addRowMultiColumnTable(new String[] {"Branch", "", branch.getName()}));
- }
- workingBranchesFound = true;
- }
- }
- if (!workingBranchesFound) {
- rd.addRaw(AHTML.addRowSpanMultiColumnTable("No Impacting Working Branches Found", 3));
- }
- // Add committed changes
- boolean committedChanges = false;
- Collection<TransactionRecord> transactions = transactionMap.getValues(srchArt);
- if (transactions != null) {
- for (TransactionRecord transactionId : transactions) {
- String transStr = String.format("Tranaction %d/%d", y++, transactions.size());
- System.out.println(transStr);
- monitor.subTask(transStr);
- if (transactionId.getCommit() > 0) {
- Artifact assocArt =
- ArtifactQuery.getArtifactFromId(transactionId.getCommit(), BranchManager.getCommonBranch());
- if (assocArt instanceof TeamWorkFlowArtifact) {
- rd.addRaw(AHTML.addRowMultiColumnTable(new String[] {assocArt.getArtifactTypeName(),
- "Committed", assocArt.getHumanReadableId(), assocArt.getName()}));
- committedChanges = true;
- }
- }
- }
- }
- if (!committedChanges) {
- rd.addRaw(AHTML.addRowSpanMultiColumnTable("No Impacting Actions Found", 3));
- }
- rd.addRaw(AHTML.endMultiColumnTable());
- }
- }
- }
-}
+/******************************************************************************* + * 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.navigate; + +import static org.eclipse.osee.framework.skynet.core.artifact.DeletionFlag.INCLUDE_DELETED; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; +import java.util.logging.Level; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.framework.core.data.SystemUser; +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.jdk.core.type.HashCollection; +import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.UserManager; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.artifact.BranchManager; +import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; +import org.eclipse.osee.framework.skynet.core.revision.ChangeManager; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; +import org.eclipse.osee.framework.ui.skynet.FrameworkImage; +import org.eclipse.osee.framework.ui.skynet.results.XResultData; +import org.eclipse.osee.framework.ui.skynet.widgets.dialog.ArtifactCheckTreeDialog; +import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialogWithBranchSelect; +import org.eclipse.osee.framework.ui.swt.Displays; + +/** + * @author Donald G. Dunne + */ +public class ArtifactImpactToActionSearchItem extends XNavigateItemAction { + + private static String TITLE = "Search Artifact Impact to Action"; + + public ArtifactImpactToActionSearchItem(XNavigateItem parent) { + super(parent, TITLE, FrameworkImage.FLASHLIGHT); + } + + @Override + public void run(TableLoadOption... tableLoadOptions) { + EntryDialogWithBranchSelect ed = + new EntryDialogWithBranchSelect(getName(), "Enter Artifact Name (or string) to search (no wildcards)"); + if (ed.open() == 0) { + ActionToArtifactImpactJob job = new ActionToArtifactImpactJob(ed.getEntry(), ed.getBranch()); + job.setUser(true); + job.setPriority(Job.LONG); + job.schedule(); + } + } + + public static class ActionToArtifactImpactJob extends Job { + private IProgressMonitor monitor; + private final String artifactName; + private final XResultData rd = new XResultData(); + private final Branch branch; + + public ActionToArtifactImpactJob(String artifactName, Branch branch) { + super("Searching \"" + artifactName + "\"..."); + this.artifactName = artifactName; + this.branch = branch; + } + + @Override + public IStatus run(IProgressMonitor monitor) { + this.monitor = monitor; + try { + getMatrixItems(); + rd.report(TITLE + " - \"" + artifactName + "\""); + return Status.OK_STATUS; + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.getMessage(), ex); + } + } + + private void getMatrixItems() throws OseeCoreException { + final Collection<Artifact> srchArts = + ArtifactQuery.getArtifactListFromName("%" + artifactName + "%", branch, INCLUDE_DELETED); + final Set<Artifact> processArts = new HashSet<Artifact>(); + if (srchArts.isEmpty()) { + return; + } + if (srchArts.size() > 1) { + Displays.pendInDisplayThread(new Runnable() { + @Override + public void run() { + ArtifactCheckTreeDialog dialog = new ArtifactCheckTreeDialog(srchArts); + dialog.setTitle(TITLE); + dialog.setMessage("Select Artifacts to Search"); + if (dialog.open() == 0) { + processArts.addAll(dialog.getSelection()); + } + } + }); + + } else { + processArts.addAll(srchArts); + } + int x = 1; + rd.log("Artifact Impact to Action for artifact(s) on branch \"" + branch.getShortName() + "\""); + + HashCollection<Artifact, TransactionRecord> transactionMap = + ChangeManager.getModifingTransactions(processArts); + HashCollection<Artifact, Branch> branchMap = ChangeManager.getModifingBranches(processArts); + for (Artifact srchArt : processArts) { + String str = String.format("Processing %d/%d - %s ", x++, processArts.size(), srchArt.getName()); + System.out.println(str); + rd.log("\n" + AHTML.bold(srchArt.getName())); + monitor.subTask(str); + int y = 1; + rd.addRaw(AHTML.beginMultiColumnTable(95, 1)); + rd.addRaw(AHTML.addHeaderRowMultiColumnTable(new String[] {"Type", "Status", "HRID", "Title"})); + + // Check for changes on working branches + boolean workingBranchesFound = false; + + Collection<Branch> branches = branchMap.getValues(srchArt); + if (branches != null) { + for (Branch branch : branches) { + Artifact assocArt = BranchManager.getAssociatedArtifact(branch); + if (assocArt != null && !assocArt.equals(UserManager.getUser(SystemUser.OseeSystem))) { + rd.addRaw(AHTML.addRowMultiColumnTable(new String[] { + assocArt.getArtifactTypeName(), + "Working", + XResultData.getHyperlink(assocArt), + assocArt.getName()})); + } else { + rd.addRaw(AHTML.addRowMultiColumnTable(new String[] {"Branch", "", branch.getName()})); + } + workingBranchesFound = true; + } + } + if (!workingBranchesFound) { + rd.addRaw(AHTML.addRowSpanMultiColumnTable("No Impacting Working Branches Found", 3)); + } + // Add committed changes + boolean committedChanges = false; + Collection<TransactionRecord> transactions = transactionMap.getValues(srchArt); + if (transactions != null) { + for (TransactionRecord transactionId : transactions) { + String transStr = String.format("Tranaction %d/%d", y++, transactions.size()); + System.out.println(transStr); + monitor.subTask(transStr); + if (transactionId.getCommit() > 0) { + Artifact assocArt = + ArtifactQuery.getArtifactFromId(transactionId.getCommit(), BranchManager.getCommonBranch()); + if (assocArt instanceof TeamWorkFlowArtifact) { + rd.addRaw(AHTML.addRowMultiColumnTable(new String[] { + assocArt.getArtifactTypeName(), + "Committed", + assocArt.getHumanReadableId(), + assocArt.getName()})); + committedChanges = true; + } + } + } + } + if (!committedChanges) { + rd.addRaw(AHTML.addRowSpanMultiColumnTable("No Impacting Actions Found", 3)); + } + rd.addRaw(AHTML.endMultiColumnTable()); + } + } + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateComposite.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateComposite.java index ee6d1e7ba4f..66c00f866a9 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateComposite.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateComposite.java @@ -1,69 +1,69 @@ -/*******************************************************************************
- * 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.navigate;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.ats.util.AtsUtil;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.ui.plugin.OseeUiActivator;
-import org.eclipse.osee.framework.ui.plugin.util.Result;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateViewItems;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-
-/**
- * @author Donald G. Dunne
- */
-public class AtsNavigateComposite extends XNavigateComposite {
-
- public AtsNavigateComposite(XNavigateViewItems navigateViewItems, Composite parent, int style) {
- super(navigateViewItems, parent, style);
- Result result = OseeUiActivator.areOSEEServicesAvailable();
- if (result.isFalse()) {
- new Label(parent, SWT.NONE).setText(result.getText());
- return;
- }
- }
-
- @Override
- protected void handleDoubleClick() throws OseeCoreException {
- IStructuredSelection sel = (IStructuredSelection) filteredTree.getViewer().getSelection();
- if (!sel.iterator().hasNext()) {
- return;
- }
- XNavigateItem item = (XNavigateItem) sel.iterator().next();
- handleDoubleClick(item);
- }
-
- @Override
- protected void handleDoubleClick(XNavigateItem item, TableLoadOption... tableLoadOptions) throws OseeCoreException {
- super.disposeTooltip();
- if (item.getChildren().size() > 0) {
- filteredTree.getViewer().setExpandedState(item, true);
- }
- AtsXNavigateItemLauncher.handleDoubleClick(item, tableLoadOptions);
- }
-
- @Override
- public void refresh() {
- super.refresh();
- if (AtsUtil.isAtsAdmin()) {
- for (XNavigateItem item : getItems()) {
- if (item.getName().equals("Admin")) {
- filteredTree.getViewer().expandToLevel(item, 1);
- }
- }
- }
- }
-}
+/******************************************************************************* + * 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.navigate; + +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.ui.plugin.OseeUiActivator; +import org.eclipse.osee.framework.ui.plugin.util.Result; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateViewItems; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; + +/** + * @author Donald G. Dunne + */ +public class AtsNavigateComposite extends XNavigateComposite { + + public AtsNavigateComposite(XNavigateViewItems navigateViewItems, Composite parent, int style) { + super(navigateViewItems, parent, style); + Result result = OseeUiActivator.areOSEEServicesAvailable(); + if (result.isFalse()) { + new Label(parent, SWT.NONE).setText(result.getText()); + return; + } + } + + @Override + protected void handleDoubleClick() throws OseeCoreException { + IStructuredSelection sel = (IStructuredSelection) filteredTree.getViewer().getSelection(); + if (!sel.iterator().hasNext()) { + return; + } + XNavigateItem item = (XNavigateItem) sel.iterator().next(); + handleDoubleClick(item); + } + + @Override + protected void handleDoubleClick(XNavigateItem item, TableLoadOption... tableLoadOptions) throws OseeCoreException { + super.disposeTooltip(); + if (item.getChildren().size() > 0) { + filteredTree.getViewer().setExpandedState(item, true); + } + AtsXNavigateItemLauncher.handleDoubleClick(item, tableLoadOptions); + } + + @Override + public void refresh() { + super.refresh(); + if (AtsUtil.isAtsAdmin()) { + for (XNavigateItem item : getItems()) { + if (item.getName().equals("Admin")) { + filteredTree.getViewer().expandToLevel(item, 1); + } + } + } + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java index ffe80fd508e..3da099f744d 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java @@ -1,367 +1,367 @@ -/*******************************************************************************
- * 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.navigate;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.logging.Level;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.osee.ats.AtsImage;
-import org.eclipse.osee.ats.actions.NewAction;
-import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
-import org.eclipse.osee.ats.health.ValidateAtsDatabase;
-import org.eclipse.osee.ats.health.ValidateChangeReportByHrid;
-import org.eclipse.osee.ats.health.ValidateChangeReports;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.navigate.EmailTeamsItem.MemberType;
-import org.eclipse.osee.ats.notify.AtsNotificationNavigateItem;
-import org.eclipse.osee.ats.util.AtsArtifactTypes;
-import org.eclipse.osee.ats.util.AtsEditor;
-import org.eclipse.osee.ats.util.AtsUtil;
-import org.eclipse.osee.ats.util.DoesNotWorkItemAts;
-import org.eclipse.osee.ats.world.search.ActionableItemWorldSearchItem;
-import org.eclipse.osee.ats.world.search.ArtifactTypeSearchItem;
-import org.eclipse.osee.ats.world.search.ArtifactTypeWithInheritenceSearchItem;
-import org.eclipse.osee.ats.world.search.GoalSearchItem;
-import org.eclipse.osee.ats.world.search.GroupWorldSearchItem;
-import org.eclipse.osee.ats.world.search.MultipleHridSearchData;
-import org.eclipse.osee.ats.world.search.MultipleHridSearchOperation;
-import org.eclipse.osee.ats.world.search.MyFavoritesGoalsSearchItem;
-import org.eclipse.osee.ats.world.search.MyFavoritesSearchItem;
-import org.eclipse.osee.ats.world.search.MyGoalWorkflowItem;
-import org.eclipse.osee.ats.world.search.MyGoalWorkflowItem.GoalSearchState;
-import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem;
-import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem.ReviewState;
-import org.eclipse.osee.ats.world.search.MySubscribedSearchItem;
-import org.eclipse.osee.ats.world.search.MyWorldSearchItem;
-import org.eclipse.osee.ats.world.search.NextVersionSearchItem;
-import org.eclipse.osee.ats.world.search.ShowOpenWorkflowsByArtifactType;
-import org.eclipse.osee.ats.world.search.StateWorldSearchItem;
-import org.eclipse.osee.ats.world.search.TaskSearchWorldSearchItem;
-import org.eclipse.osee.ats.world.search.UserCommunitySearchItem;
-import org.eclipse.osee.ats.world.search.UserRelatedToAtsObjectSearch;
-import org.eclipse.osee.ats.world.search.VersionTargetedForTeamSearchItem;
-import org.eclipse.osee.ats.world.search.WorldSearchItem.LoadView;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.model.Branch;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.logging.OseeLevel;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.User;
-import org.eclipse.osee.framework.skynet.core.UserManager;
-import org.eclipse.osee.framework.ui.plugin.OseeUiActivator;
-import org.eclipse.osee.framework.ui.plugin.PluginUiImage;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.IOperationFactory;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateContributionManager;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateExtensionPointData;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemFolder;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemOperation;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateViewItems;
-import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
-import org.eclipse.osee.framework.ui.skynet.action.CompareTwoStringsAction;
-import org.eclipse.osee.framework.ui.skynet.artifact.MassEditDirtyArtifactOperation;
-import org.eclipse.osee.framework.ui.skynet.blam.BlamContributionManager;
-import org.eclipse.osee.framework.ui.skynet.results.example.ResultsEditorExample;
-import org.eclipse.osee.framework.ui.skynet.results.example.XResultDataExample;
-import org.eclipse.osee.framework.ui.skynet.results.example.XViewerExample;
-import org.eclipse.osee.framework.ui.skynet.util.email.EmailUserGroups;
-import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryCheckDialog;
-import org.osgi.framework.Bundle;
-
-/**
- * @author Donald G. Dunne
- */
-public class AtsNavigateViewItems extends XNavigateViewItems {
- private static AtsNavigateViewItems navigateItems = new AtsNavigateViewItems();
- private List<XNavigateItem> items;
-
- public AtsNavigateViewItems() {
- super();
- }
-
- public static AtsNavigateViewItems getInstance() {
- return navigateItems;
- }
-
- @Override
- public List<XNavigateItem> getSearchNavigateItems() {
- if (items == null) {
- items = getItems();
- }
- return items;
- }
-
- private List<XNavigateItem> getItems() {
- List<XNavigateItem> items = new ArrayList<XNavigateItem>();
-
- if (OseeUiActivator.areOSEEServicesAvailable().isFalse()) {
- return items;
- }
-
- try {
- User user = UserManager.getUser();
-
- items.add(new SearchNavigateItem(null, new MyWorldSearchItem("My World", user)));
- items.add(new SearchNavigateItem(null, new MyFavoritesSearchItem("My Favorites", user)));
- items.add(new SearchNavigateItem(null, new MySubscribedSearchItem("My Subscribed", user)));
- items.add(new SearchNavigateItem(null, new MyGoalWorkflowItem("My Goals", user, GoalSearchState.InWork)));
- items.add(new SearchNavigateItem(null, new MyReviewWorkflowItem("My Reviews", user, ReviewState.InWork)));
- items.add(new VisitedItems(null));
- items.add(new XNavigateItemAction(null, new NewAction(), AtsImage.NEW_ACTION));
- items.add(new SearchNavigateItem(null, new MyWorldSearchItem("User's World")));
-
- items.add(new SearchNavigateItem(null, new UserSearchWorkflowSearchItem()));
- items.add(new SearchNavigateItem(null, new TaskSearchWorldSearchItem()));
- items.add(new SearchNavigateItem(null, new GroupWorldSearchItem((Branch) null)));
- items.add(new SearchNavigateItem(null, new TeamWorkflowSearchWorkflowSearchItem()));
- items.add(new SearchNavigateItem(null, new UserCommunitySearchItem()));
- items.add(new SearchNavigateItem(null, new ActionableItemWorldSearchItem(null, "Actionable Item Search",
- false, false, false)));
-
- createGoalsSection(items);
- createVersionsSection(items);
- addExtensionPointItems(items);
- createReviewsSection(items);
-
- XNavigateItem stateItems = new XNavigateItem(null, "States", AtsImage.STATE);
- new SearchNavigateItem(stateItems, new StateWorldSearchItem());
- new SearchNavigateItem(stateItems, new StateWorldSearchItem("Search for Authorize Actions", "Authorize"));
- items.add(stateItems);
-
- // Search Items
- items.add(new XNavigateItemOperation(null, FrameworkImage.BRANCH_CHANGE, "Open Change Report(s) by ID(s)",
- new MultipleHridSearchOperationFactory("Open Change Report(s) by ID(s)", AtsEditor.ChangeReport)));
- items.add(new XNavigateItemOperation(null, AtsImage.OPEN_BY_ID, "Search by ID(s) - Open World Editor",
- new MultipleHridSearchOperationFactory("Search by ID(s) - Open World Editor", AtsEditor.WorldEditor)));
- items.add(new XNavigateItemOperation(null, AtsImage.WORKFLOW_CONFIG, "Search by ID(s) - Open Workflow Editor",
- new MultipleHridSearchOperationFactory("Search by ID(s) - Open Workflow Editor", AtsEditor.WorkflowEditor)));
- items.add(new XNavigateItemOperation(null, AtsImage.GLOBE, "Quick Search", new IOperationFactory() {
-
- @Override
- public IOperation createOperation() {
- EntryCheckDialog dialog =
- new EntryCheckDialog("Search by Strings", "Enter search strings",
- "Include Completed/Cancelled Workflows");
- if (dialog.open() == 0) {
- return new AtsQuickSearchOperation(new AtsQuickSearchData("Search by Strings", dialog.getEntry(),
- dialog.isChecked()));
- }
- return null;
- }
- }));
-
- items.add(new ArtifactImpactToActionSearchItem(null));
-
- XNavigateItem reportItems = new XNavigateItem(null, "Reports", AtsImage.REPORT);
- new FirstTimeQualityMetricReportItem(reportItems);
- new XNavigateItem(reportItems, "ATS World Reports - Input from Actions in ATS World", AtsImage.REPORT);
- new BarChartExample(reportItems);
- new ResultsEditorExample(reportItems);
- new CompareEditorExample(reportItems);
- new XViewerExample(reportItems);
- new XResultDataExample(reportItems);
- // new ExtendedStatusReportItem(atsReportItems, "ATS World Extended Status Report");
-
- XNavigateItem emailItems = new XNavigateItem(null, "Email & Notifications", FrameworkImage.EMAIL);
- new EmailTeamsItem(emailItems, null, MemberType.Both);
- new EmailTeamsItem(emailItems, null, MemberType.Leads);
- new EmailTeamsItem(emailItems, null, MemberType.Members);
- new EmailUserGroups(emailItems);
- new SubscribeByActionableItem(emailItems);
- new SubscribeByTeamDefinition(emailItems);
- items.add(emailItems);
-
- items.add(reportItems);
-
- XNavigateItem utilItems = new XNavigateItem(null, "Util", FrameworkImage.GEAR);
- new ImportActionsViaSpreadsheet(utilItems);
- new XNavigateItemAction(utilItems, new CompareTwoStringsAction(), FrameworkImage.EDIT);
- new GenerateGuid(utilItems);
- new XNavigateItemOperation(utilItems, FrameworkImage.GEAR, MassEditDirtyArtifactOperation.NAME,
- new MassEditDirtyArtifactOperation());
-
- items.add(utilItems);
-
- BlamContributionManager.addBlamOperationsToNavigator(items);
-
- if (AtsUtil.isAtsAdmin()) {
- XNavigateItem adminItems = new XNavigateItem(null, "Admin", PluginUiImage.ADMIN);
-
- new AtsNotificationNavigateItem(adminItems);
- new AtsNotificationNavigateItem(adminItems, true);
- new UpdateAtsWorkItemDefinitions(adminItems);
- new DisplayCurrentOseeEventListeners(adminItems);
- new AtsRemoteEventTestItem(adminItems);
-
- new SearchNavigateItem(adminItems, new UserRelatedToAtsObjectSearch(
- "User's All Related Objects - Admin Only", null, false, LoadView.WorldEditor));
- new SearchNavigateItem(adminItems, new UserRelatedToAtsObjectSearch(
- "User's All Active Related Objects - Admin Only", null, true, LoadView.WorldEditor));
-
- new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Actions", AtsArtifactTypes.Action));
- new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Decision Review",
- AtsArtifactTypes.DecisionReview));
- new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all PeerToPeer Review",
- AtsArtifactTypes.PeerToPeerReview));
- new SearchNavigateItem(adminItems, new ArtifactTypeWithInheritenceSearchItem("Show all Team Workflows",
- AtsArtifactTypes.TeamWorkflow));
- new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Tasks", AtsArtifactTypes.Task));
- new CreateGoalTestArtifacts(adminItems);
-
- new DoesNotWorkItemAts(adminItems);
-
- XNavigateItem healthItems = new XNavigateItemFolder(adminItems, "Health");
- new ValidateAtsDatabase(healthItems);
- new ValidateChangeReports(healthItems);
- new ValidateChangeReportByHrid(healthItems);
-
- // new ActionNavigateItem(adminItems, new XViewerViewAction());
- // new ActionNavigateItem(adminItems, new OpenEditorAction());
- // new CreateBugFixesItem(adminItems);
-
- XNavigateItem extra = new XNavigateItemFolder(adminItems, "Other");
- Set<XNavigateExtensionPointData> extraItems =
- XNavigateContributionManager.getNavigateItems(NavigateView.VIEW_ID);
- for (XNavigateExtensionPointData extraItem : extraItems) {
- for (XNavigateItem navigateItem : extraItem.getNavigateItems()) {
- extra.addChild(navigateItem);
- }
- }
-
- items.add(adminItems);
- }
- } catch (OseeCoreException ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- return items;
- }
-
- return items;
- }
-
- public void createReviewsSection(List<XNavigateItem> items) {
- try {
- XNavigateItem reviewItem = new XNavigateItem(null, "Reviews", AtsImage.REVIEW);
- new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType(
- "Show Open " + AtsArtifactTypes.DecisionReview.getName() + "s", AtsArtifactTypes.DecisionReview, false,
- false, AtsImage.REVIEW));
- new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType(
- "Show Workflows Waiting " + AtsArtifactTypes.DecisionReview.getName() + "s",
- AtsArtifactTypes.DecisionReview, false, true, AtsImage.REVIEW));
- new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType(
- "Show Open " + AtsArtifactTypes.PeerToPeerReview.getName() + "s", AtsArtifactTypes.PeerToPeerReview, false,
- false, AtsImage.REVIEW));
- new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType(
- "Show Workflows Waiting " + AtsArtifactTypes.PeerToPeerReview.getName() + "s",
- AtsArtifactTypes.PeerToPeerReview, false, true, AtsImage.REVIEW));
- new NewPeerToPeerReviewItem(reviewItem);
- new GenerateReviewParticipationReport(reviewItem);
- items.add(reviewItem);
- } catch (OseeCoreException ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, "Can't create Goals section");
- }
- }
-
- public void createVersionsSection(List<XNavigateItem> items) {
- try {
- XNavigateItem releaseItems = new XNavigateItem(null, "Versions", FrameworkImage.VERSION);
- new MassEditTeamVersionItem("Team Versions", releaseItems, (TeamDefinitionArtifact) null,
- FrameworkImage.VERSION);
- new SearchNavigateItem(releaseItems, new VersionTargetedForTeamSearchItem(null, null, false,
- LoadView.WorldEditor));
- new SearchNavigateItem(releaseItems, new NextVersionSearchItem(null, LoadView.WorldEditor));
- new ReleaseVersionItem(releaseItems, null);
- new CreateNewVersionItem(releaseItems, null);
- new GenerateVersionReportItem(releaseItems);
- new GenerateFullVersionReportItem(releaseItems);
- items.add(releaseItems);
- } catch (OseeCoreException ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, "Can't create Goals section");
- }
- }
-
- public void createGoalsSection(List<XNavigateItem> items) {
- try {
- XNavigateItem goalItem = new XNavigateItem(null, "Goals", AtsImage.GOAL);
- new SearchNavigateItem(goalItem, new GoalSearchItem("InWork Goals", new ArrayList<TeamDefinitionArtifact>(),
- false, null));
- new SearchNavigateItem(goalItem, new GoalSearchWorkflowSearchItem());
- new SearchNavigateItem(goalItem, new MyFavoritesGoalsSearchItem("Favorites", UserManager.getUser()));
- items.add(goalItem);
- } catch (OseeCoreException ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, "Can't create Goals section");
- }
- }
-
- public void addExtensionPointItems(List<XNavigateItem> items) {
- IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint("org.eclipse.osee.ats.AtsNavigateItem");
- if (point == null) {
- OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Can't access AtsNavigateItem extension point");
- return;
- }
- IExtension[] extensions = point.getExtensions();
- Map<String, XNavigateItem> nameToNavItem = new HashMap<String, XNavigateItem>();
- for (IExtension extension : extensions) {
- IConfigurationElement[] elements = extension.getConfigurationElements();
- String classname = null;
- String bundleName = null;
- for (IConfigurationElement el : elements) {
- if (el.getName().equals("AtsNavigateItem")) {
- classname = el.getAttribute("classname");
- bundleName = el.getContributor().getName();
- }
- }
- if (classname != null && bundleName != null) {
- Bundle bundle = Platform.getBundle(bundleName);
- try {
- Object obj = bundle.loadClass(classname).newInstance();
- IAtsNavigateItem task = (IAtsNavigateItem) obj;
- for (XNavigateItem navItem : task.getNavigateItems()) {
- nameToNavItem.put(navItem.getName(), navItem);
- }
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, "Error loading AtsNavigateItem extension", ex);
- }
- }
- }
- // Put in alpha order
- String[] names = nameToNavItem.keySet().toArray(new String[nameToNavItem.size()]);
- Arrays.sort(names);
- for (String name : names) {
- items.add(nameToNavItem.get(name));
- }
- }
-
- private static final class MultipleHridSearchOperationFactory implements IOperationFactory {
-
- private final AtsEditor atsEditor;
- private final String operationName;
-
- public MultipleHridSearchOperationFactory(String operationName, AtsEditor atsEditor) {
- this.operationName = operationName;
- this.atsEditor = atsEditor;
- }
-
- @Override
- public IOperation createOperation() {
- return new MultipleHridSearchOperation(new MultipleHridSearchData(operationName, atsEditor));
- }
- }
-}
+/******************************************************************************* + * 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.navigate; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.logging.Level; +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IExtension; +import org.eclipse.core.runtime.IExtensionPoint; +import org.eclipse.core.runtime.Platform; +import org.eclipse.osee.ats.AtsImage; +import org.eclipse.osee.ats.actions.NewAction; +import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; +import org.eclipse.osee.ats.health.ValidateAtsDatabase; +import org.eclipse.osee.ats.health.ValidateChangeReportByHrid; +import org.eclipse.osee.ats.health.ValidateChangeReports; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.navigate.EmailTeamsItem.MemberType; +import org.eclipse.osee.ats.notify.AtsNotificationNavigateItem; +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.util.AtsEditor; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.util.DoesNotWorkItemAts; +import org.eclipse.osee.ats.world.search.ActionableItemWorldSearchItem; +import org.eclipse.osee.ats.world.search.ArtifactTypeSearchItem; +import org.eclipse.osee.ats.world.search.ArtifactTypeWithInheritenceSearchItem; +import org.eclipse.osee.ats.world.search.GoalSearchItem; +import org.eclipse.osee.ats.world.search.GroupWorldSearchItem; +import org.eclipse.osee.ats.world.search.MultipleHridSearchData; +import org.eclipse.osee.ats.world.search.MultipleHridSearchOperation; +import org.eclipse.osee.ats.world.search.MyFavoritesGoalsSearchItem; +import org.eclipse.osee.ats.world.search.MyFavoritesSearchItem; +import org.eclipse.osee.ats.world.search.MyGoalWorkflowItem; +import org.eclipse.osee.ats.world.search.MyGoalWorkflowItem.GoalSearchState; +import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem; +import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem.ReviewState; +import org.eclipse.osee.ats.world.search.MySubscribedSearchItem; +import org.eclipse.osee.ats.world.search.MyWorldSearchItem; +import org.eclipse.osee.ats.world.search.NextVersionSearchItem; +import org.eclipse.osee.ats.world.search.ShowOpenWorkflowsByArtifactType; +import org.eclipse.osee.ats.world.search.StateWorldSearchItem; +import org.eclipse.osee.ats.world.search.TaskSearchWorldSearchItem; +import org.eclipse.osee.ats.world.search.UserCommunitySearchItem; +import org.eclipse.osee.ats.world.search.UserRelatedToAtsObjectSearch; +import org.eclipse.osee.ats.world.search.VersionTargetedForTeamSearchItem; +import org.eclipse.osee.ats.world.search.WorldSearchItem.LoadView; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.Branch; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.User; +import org.eclipse.osee.framework.skynet.core.UserManager; +import org.eclipse.osee.framework.ui.plugin.OseeUiActivator; +import org.eclipse.osee.framework.ui.plugin.PluginUiImage; +import org.eclipse.osee.framework.ui.plugin.xnavigate.IOperationFactory; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateContributionManager; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateExtensionPointData; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemFolder; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemOperation; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateViewItems; +import org.eclipse.osee.framework.ui.skynet.FrameworkImage; +import org.eclipse.osee.framework.ui.skynet.action.CompareTwoStringsAction; +import org.eclipse.osee.framework.ui.skynet.artifact.MassEditDirtyArtifactOperation; +import org.eclipse.osee.framework.ui.skynet.blam.BlamContributionManager; +import org.eclipse.osee.framework.ui.skynet.results.example.ResultsEditorExample; +import org.eclipse.osee.framework.ui.skynet.results.example.XResultDataExample; +import org.eclipse.osee.framework.ui.skynet.results.example.XViewerExample; +import org.eclipse.osee.framework.ui.skynet.util.email.EmailUserGroups; +import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryCheckDialog; +import org.osgi.framework.Bundle; + +/** + * @author Donald G. Dunne + */ +public class AtsNavigateViewItems extends XNavigateViewItems { + private static AtsNavigateViewItems navigateItems = new AtsNavigateViewItems(); + private List<XNavigateItem> items; + + public AtsNavigateViewItems() { + super(); + } + + public static AtsNavigateViewItems getInstance() { + return navigateItems; + } + + @Override + public List<XNavigateItem> getSearchNavigateItems() { + if (items == null) { + items = getItems(); + } + return items; + } + + private List<XNavigateItem> getItems() { + List<XNavigateItem> items = new ArrayList<XNavigateItem>(); + + if (OseeUiActivator.areOSEEServicesAvailable().isFalse()) { + return items; + } + + try { + User user = UserManager.getUser(); + + items.add(new SearchNavigateItem(null, new MyWorldSearchItem("My World", user))); + items.add(new SearchNavigateItem(null, new MyFavoritesSearchItem("My Favorites", user))); + items.add(new SearchNavigateItem(null, new MySubscribedSearchItem("My Subscribed", user))); + items.add(new SearchNavigateItem(null, new MyGoalWorkflowItem("My Goals", user, GoalSearchState.InWork))); + items.add(new SearchNavigateItem(null, new MyReviewWorkflowItem("My Reviews", user, ReviewState.InWork))); + items.add(new VisitedItems(null)); + items.add(new XNavigateItemAction(null, new NewAction(), AtsImage.NEW_ACTION)); + items.add(new SearchNavigateItem(null, new MyWorldSearchItem("User's World"))); + + items.add(new SearchNavigateItem(null, new UserSearchWorkflowSearchItem())); + items.add(new SearchNavigateItem(null, new TaskSearchWorldSearchItem())); + items.add(new SearchNavigateItem(null, new GroupWorldSearchItem((Branch) null))); + items.add(new SearchNavigateItem(null, new TeamWorkflowSearchWorkflowSearchItem())); + items.add(new SearchNavigateItem(null, new UserCommunitySearchItem())); + items.add(new SearchNavigateItem(null, new ActionableItemWorldSearchItem(null, "Actionable Item Search", + false, false, false))); + + createGoalsSection(items); + createVersionsSection(items); + addExtensionPointItems(items); + createReviewsSection(items); + + XNavigateItem stateItems = new XNavigateItem(null, "States", AtsImage.STATE); + new SearchNavigateItem(stateItems, new StateWorldSearchItem()); + new SearchNavigateItem(stateItems, new StateWorldSearchItem("Search for Authorize Actions", "Authorize")); + items.add(stateItems); + + // Search Items + items.add(new XNavigateItemOperation(null, FrameworkImage.BRANCH_CHANGE, "Open Change Report(s) by ID(s)", + new MultipleHridSearchOperationFactory("Open Change Report(s) by ID(s)", AtsEditor.ChangeReport))); + items.add(new XNavigateItemOperation(null, AtsImage.OPEN_BY_ID, "Search by ID(s) - Open World Editor", + new MultipleHridSearchOperationFactory("Search by ID(s) - Open World Editor", AtsEditor.WorldEditor))); + items.add(new XNavigateItemOperation(null, AtsImage.WORKFLOW_CONFIG, "Search by ID(s) - Open Workflow Editor", + new MultipleHridSearchOperationFactory("Search by ID(s) - Open Workflow Editor", AtsEditor.WorkflowEditor))); + items.add(new XNavigateItemOperation(null, AtsImage.GLOBE, "Quick Search", new IOperationFactory() { + + @Override + public IOperation createOperation() { + EntryCheckDialog dialog = + new EntryCheckDialog("Search by Strings", "Enter search strings", + "Include Completed/Cancelled Workflows"); + if (dialog.open() == 0) { + return new AtsQuickSearchOperation(new AtsQuickSearchData("Search by Strings", dialog.getEntry(), + dialog.isChecked())); + } + return null; + } + })); + + items.add(new ArtifactImpactToActionSearchItem(null)); + + XNavigateItem reportItems = new XNavigateItem(null, "Reports", AtsImage.REPORT); + new FirstTimeQualityMetricReportItem(reportItems); + new XNavigateItem(reportItems, "ATS World Reports - Input from Actions in ATS World", AtsImage.REPORT); + new BarChartExample(reportItems); + new ResultsEditorExample(reportItems); + new CompareEditorExample(reportItems); + new XViewerExample(reportItems); + new XResultDataExample(reportItems); + // new ExtendedStatusReportItem(atsReportItems, "ATS World Extended Status Report"); + + XNavigateItem emailItems = new XNavigateItem(null, "Email & Notifications", FrameworkImage.EMAIL); + new EmailTeamsItem(emailItems, null, MemberType.Both); + new EmailTeamsItem(emailItems, null, MemberType.Leads); + new EmailTeamsItem(emailItems, null, MemberType.Members); + new EmailUserGroups(emailItems); + new SubscribeByActionableItem(emailItems); + new SubscribeByTeamDefinition(emailItems); + items.add(emailItems); + + items.add(reportItems); + + XNavigateItem utilItems = new XNavigateItem(null, "Util", FrameworkImage.GEAR); + new ImportActionsViaSpreadsheet(utilItems); + new XNavigateItemAction(utilItems, new CompareTwoStringsAction(), FrameworkImage.EDIT); + new GenerateGuid(utilItems); + new XNavigateItemOperation(utilItems, FrameworkImage.GEAR, MassEditDirtyArtifactOperation.NAME, + new MassEditDirtyArtifactOperation()); + + items.add(utilItems); + + BlamContributionManager.addBlamOperationsToNavigator(items); + + if (AtsUtil.isAtsAdmin()) { + XNavigateItem adminItems = new XNavigateItem(null, "Admin", PluginUiImage.ADMIN); + + new AtsNotificationNavigateItem(adminItems); + new AtsNotificationNavigateItem(adminItems, true); + new UpdateAtsWorkItemDefinitions(adminItems); + new DisplayCurrentOseeEventListeners(adminItems); + new AtsRemoteEventTestItem(adminItems); + + new SearchNavigateItem(adminItems, new UserRelatedToAtsObjectSearch( + "User's All Related Objects - Admin Only", null, false, LoadView.WorldEditor)); + new SearchNavigateItem(adminItems, new UserRelatedToAtsObjectSearch( + "User's All Active Related Objects - Admin Only", null, true, LoadView.WorldEditor)); + + new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Actions", AtsArtifactTypes.Action)); + new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Decision Review", + AtsArtifactTypes.DecisionReview)); + new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all PeerToPeer Review", + AtsArtifactTypes.PeerToPeerReview)); + new SearchNavigateItem(adminItems, new ArtifactTypeWithInheritenceSearchItem("Show all Team Workflows", + AtsArtifactTypes.TeamWorkflow)); + new SearchNavigateItem(adminItems, new ArtifactTypeSearchItem("Show all Tasks", AtsArtifactTypes.Task)); + new CreateGoalTestArtifacts(adminItems); + + new DoesNotWorkItemAts(adminItems); + + XNavigateItem healthItems = new XNavigateItemFolder(adminItems, "Health"); + new ValidateAtsDatabase(healthItems); + new ValidateChangeReports(healthItems); + new ValidateChangeReportByHrid(healthItems); + + // new ActionNavigateItem(adminItems, new XViewerViewAction()); + // new ActionNavigateItem(adminItems, new OpenEditorAction()); + // new CreateBugFixesItem(adminItems); + + XNavigateItem extra = new XNavigateItemFolder(adminItems, "Other"); + Set<XNavigateExtensionPointData> extraItems = + XNavigateContributionManager.getNavigateItems(NavigateView.VIEW_ID); + for (XNavigateExtensionPointData extraItem : extraItems) { + for (XNavigateItem navigateItem : extraItem.getNavigateItems()) { + extra.addChild(navigateItem); + } + } + + items.add(adminItems); + } + } catch (OseeCoreException ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + return items; + } + + return items; + } + + public void createReviewsSection(List<XNavigateItem> items) { + try { + XNavigateItem reviewItem = new XNavigateItem(null, "Reviews", AtsImage.REVIEW); + new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType( + "Show Open " + AtsArtifactTypes.DecisionReview.getName() + "s", AtsArtifactTypes.DecisionReview, false, + false, AtsImage.REVIEW)); + new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType( + "Show Workflows Waiting " + AtsArtifactTypes.DecisionReview.getName() + "s", + AtsArtifactTypes.DecisionReview, false, true, AtsImage.REVIEW)); + new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType( + "Show Open " + AtsArtifactTypes.PeerToPeerReview.getName() + "s", AtsArtifactTypes.PeerToPeerReview, false, + false, AtsImage.REVIEW)); + new SearchNavigateItem(reviewItem, new ShowOpenWorkflowsByArtifactType( + "Show Workflows Waiting " + AtsArtifactTypes.PeerToPeerReview.getName() + "s", + AtsArtifactTypes.PeerToPeerReview, false, true, AtsImage.REVIEW)); + new NewPeerToPeerReviewItem(reviewItem); + new GenerateReviewParticipationReport(reviewItem); + items.add(reviewItem); + } catch (OseeCoreException ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, "Can't create Goals section"); + } + } + + public void createVersionsSection(List<XNavigateItem> items) { + try { + XNavigateItem releaseItems = new XNavigateItem(null, "Versions", FrameworkImage.VERSION); + new MassEditTeamVersionItem("Team Versions", releaseItems, (TeamDefinitionArtifact) null, + FrameworkImage.VERSION); + new SearchNavigateItem(releaseItems, new VersionTargetedForTeamSearchItem(null, null, false, + LoadView.WorldEditor)); + new SearchNavigateItem(releaseItems, new NextVersionSearchItem(null, LoadView.WorldEditor)); + new ReleaseVersionItem(releaseItems, null); + new CreateNewVersionItem(releaseItems, null); + new GenerateVersionReportItem(releaseItems); + new GenerateFullVersionReportItem(releaseItems); + items.add(releaseItems); + } catch (OseeCoreException ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, "Can't create Goals section"); + } + } + + public void createGoalsSection(List<XNavigateItem> items) { + try { + XNavigateItem goalItem = new XNavigateItem(null, "Goals", AtsImage.GOAL); + new SearchNavigateItem(goalItem, new GoalSearchItem("InWork Goals", new ArrayList<TeamDefinitionArtifact>(), + false, null)); + new SearchNavigateItem(goalItem, new GoalSearchWorkflowSearchItem()); + new SearchNavigateItem(goalItem, new MyFavoritesGoalsSearchItem("Favorites", UserManager.getUser())); + items.add(goalItem); + } catch (OseeCoreException ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, "Can't create Goals section"); + } + } + + public void addExtensionPointItems(List<XNavigateItem> items) { + IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint("org.eclipse.osee.ats.AtsNavigateItem"); + if (point == null) { + OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, "Can't access AtsNavigateItem extension point"); + return; + } + IExtension[] extensions = point.getExtensions(); + Map<String, XNavigateItem> nameToNavItem = new HashMap<String, XNavigateItem>(); + for (IExtension extension : extensions) { + IConfigurationElement[] elements = extension.getConfigurationElements(); + String classname = null; + String bundleName = null; + for (IConfigurationElement el : elements) { + if (el.getName().equals("AtsNavigateItem")) { + classname = el.getAttribute("classname"); + bundleName = el.getContributor().getName(); + } + } + if (classname != null && bundleName != null) { + Bundle bundle = Platform.getBundle(bundleName); + try { + Object obj = bundle.loadClass(classname).newInstance(); + IAtsNavigateItem task = (IAtsNavigateItem) obj; + for (XNavigateItem navItem : task.getNavigateItems()) { + nameToNavItem.put(navItem.getName(), navItem); + } + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, "Error loading AtsNavigateItem extension", ex); + } + } + } + // Put in alpha order + String[] names = nameToNavItem.keySet().toArray(new String[nameToNavItem.size()]); + Arrays.sort(names); + for (String name : names) { + items.add(nameToNavItem.get(name)); + } + } + + private static final class MultipleHridSearchOperationFactory implements IOperationFactory { + + private final AtsEditor atsEditor; + private final String operationName; + + public MultipleHridSearchOperationFactory(String operationName, AtsEditor atsEditor) { + this.operationName = operationName; + this.atsEditor = atsEditor; + } + + @Override + public IOperation createOperation() { + return new MultipleHridSearchOperation(new MultipleHridSearchData(operationName, atsEditor)); + } + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsQuickSearchData.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsQuickSearchData.java index 1e26d01f0f0..15d275ef5ec 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsQuickSearchData.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsQuickSearchData.java @@ -1,44 +1,44 @@ -/*******************************************************************************
- * 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.navigate;
-
-/**
- * @author Donald G. Dunne
- */
-public class AtsQuickSearchData {
- private final String searchStr;
- private boolean includeCompleteCancelled = false;
- private final String name;
-
- public AtsQuickSearchData(String name, String searchStr, boolean includeCompleteCancelled) {
- this.name = name;
- this.searchStr = searchStr;
- this.includeCompleteCancelled = includeCompleteCancelled;
- }
-
- public boolean isIncludeCompleteCancelled() {
- return includeCompleteCancelled;
- }
-
- public void setIncludeCompleteCancelled(boolean includeCompleteCancelled) {
- this.includeCompleteCancelled = includeCompleteCancelled;
- }
-
- public String getSearchStr() {
- return searchStr;
- }
-
- @Override
- public String toString() {
- return String.format("%s - [%s]%s", name, searchStr,
- includeCompleteCancelled ? " - Include Completed/Cancelled" : "");
- }
-}
+/******************************************************************************* + * 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.navigate; + +/** + * @author Donald G. Dunne + */ +public class AtsQuickSearchData { + private final String searchStr; + private boolean includeCompleteCancelled = false; + private final String name; + + public AtsQuickSearchData(String name, String searchStr, boolean includeCompleteCancelled) { + this.name = name; + this.searchStr = searchStr; + this.includeCompleteCancelled = includeCompleteCancelled; + } + + public boolean isIncludeCompleteCancelled() { + return includeCompleteCancelled; + } + + public void setIncludeCompleteCancelled(boolean includeCompleteCancelled) { + this.includeCompleteCancelled = includeCompleteCancelled; + } + + public String getSearchStr() { + return searchStr; + } + + @Override + public String toString() { + return String.format("%s - [%s]%s", name, searchStr, + includeCompleteCancelled ? " - Include Completed/Cancelled" : ""); + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsQuickSearchOperation.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsQuickSearchOperation.java index 37962035aee..378d6ac7a9d 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsQuickSearchOperation.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsQuickSearchOperation.java @@ -1,109 +1,109 @@ -/*******************************************************************************
- * 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.navigate;
-
-import static org.eclipse.osee.framework.skynet.core.artifact.DeletionFlag.EXCLUDE_DELETED;
-import java.util.HashSet;
-import java.util.Set;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.ats.artifact.StateMachineArtifact;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.AtsUtil;
-import org.eclipse.osee.ats.world.IWorldEditorConsumer;
-import org.eclipse.osee.ats.world.WorldEditor;
-import org.eclipse.osee.ats.world.WorldEditorOperationProvider;
-import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.operation.AbstractOperation;
-import org.eclipse.osee.framework.jdk.core.util.HumanReadableId;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
-
-/**
- * @author Donald G. Dunne
- */
-public class AtsQuickSearchOperation extends AbstractOperation implements IWorldEditorConsumer {
- Set<Artifact> allArtifacts = new HashSet<Artifact>();
- private final AtsQuickSearchData data;
- private WorldEditor worldEditor;
-
- public AtsQuickSearchOperation(AtsQuickSearchData data) {
- super(data.toString(), AtsPlugin.PLUGIN_ID);
- this.data = data;
- }
-
- @Override
- protected void doWork(IProgressMonitor monitor) throws OseeCoreException {
- if (!Strings.isValid(data.getSearchStr())) {
- AWorkbench.popup("Must Enter Search String");
- return;
- }
- if (worldEditor == null) {
- WorldEditor.open(new WorldEditorOperationProvider(new AtsQuickSearchOperation(data)));
- return;
- }
- for (String str : data.getSearchStr().split(", ")) {
- if (HumanReadableId.isValid(str)) {
- try {
- Artifact art = ArtifactQuery.getArtifactFromId(str, AtsUtil.getAtsBranch());
- if (art != null) {
- allArtifacts.add(art);
- }
- } catch (ArtifactDoesNotExist ex) {
- // do nothing
- }
- }
- }
- for (Artifact art : ArtifactQuery.getArtifactListFromAttributeKeywords(AtsUtil.getAtsBranch(),
- data.getSearchStr(), false, EXCLUDE_DELETED, false)) {
- // only ATS Artifacts
- if (art instanceof StateMachineArtifact) {
- StateMachineArtifact sma = (StateMachineArtifact) art;
- // default excludes canceled/completed
- if (data.isIncludeCompleteCancelled() == false) {
- if (!sma.isCancelledOrCompleted()) {
- allArtifacts.add(art);
- }
- } else {
- allArtifacts.add(art);
- }
- }
- }
- if (allArtifacts.isEmpty()) {
- AWorkbench.popup(getName(), getName() + "\n\nNo Results Found");
- } else if (worldEditor != null) {
- worldEditor.getWorldComposite().load(getName(), allArtifacts, TableLoadOption.None);
- }
- }
-
- @Override
- public String getName() {
- return data.toString();
- }
-
- public Set<Artifact> getAllArtifacts() {
- return allArtifacts;
- }
-
- @Override
- public WorldEditor getWorldEditor() {
- return worldEditor;
- }
-
- @Override
- public void setWorldEditor(WorldEditor worldEditor) {
- this.worldEditor = worldEditor;
- }
-
-}
+/******************************************************************************* + * 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.navigate; + +import static org.eclipse.osee.framework.skynet.core.artifact.DeletionFlag.EXCLUDE_DELETED; +import java.util.HashSet; +import java.util.Set; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.ats.artifact.StateMachineArtifact; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.world.IWorldEditorConsumer; +import org.eclipse.osee.ats.world.WorldEditor; +import org.eclipse.osee.ats.world.WorldEditorOperationProvider; +import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.operation.AbstractOperation; +import org.eclipse.osee.framework.jdk.core.util.HumanReadableId; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; +import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; + +/** + * @author Donald G. Dunne + */ +public class AtsQuickSearchOperation extends AbstractOperation implements IWorldEditorConsumer { + Set<Artifact> allArtifacts = new HashSet<Artifact>(); + private final AtsQuickSearchData data; + private WorldEditor worldEditor; + + public AtsQuickSearchOperation(AtsQuickSearchData data) { + super(data.toString(), AtsPlugin.PLUGIN_ID); + this.data = data; + } + + @Override + protected void doWork(IProgressMonitor monitor) throws OseeCoreException { + if (!Strings.isValid(data.getSearchStr())) { + AWorkbench.popup("Must Enter Search String"); + return; + } + if (worldEditor == null) { + WorldEditor.open(new WorldEditorOperationProvider(new AtsQuickSearchOperation(data))); + return; + } + for (String str : data.getSearchStr().split(", ")) { + if (HumanReadableId.isValid(str)) { + try { + Artifact art = ArtifactQuery.getArtifactFromId(str, AtsUtil.getAtsBranch()); + if (art != null) { + allArtifacts.add(art); + } + } catch (ArtifactDoesNotExist ex) { + // do nothing + } + } + } + for (Artifact art : ArtifactQuery.getArtifactListFromAttributeKeywords(AtsUtil.getAtsBranch(), + data.getSearchStr(), false, EXCLUDE_DELETED, false)) { + // only ATS Artifacts + if (art instanceof StateMachineArtifact) { + StateMachineArtifact sma = (StateMachineArtifact) art; + // default excludes canceled/completed + if (data.isIncludeCompleteCancelled() == false) { + if (!sma.isCancelledOrCompleted()) { + allArtifacts.add(art); + } + } else { + allArtifacts.add(art); + } + } + } + if (allArtifacts.isEmpty()) { + AWorkbench.popup(getName(), getName() + "\n\nNo Results Found"); + } else if (worldEditor != null) { + worldEditor.getWorldComposite().load(getName(), allArtifacts, TableLoadOption.None); + } + } + + @Override + public String getName() { + return data.toString(); + } + + public Set<Artifact> getAllArtifacts() { + return allArtifacts; + } + + @Override + public WorldEditor getWorldEditor() { + return worldEditor; + } + + @Override + public void setWorldEditor(WorldEditor worldEditor) { + this.worldEditor = worldEditor; + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsRemoteEventTestItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsRemoteEventTestItem.java index 0480abe0a87..f5941874e28 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsRemoteEventTestItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsRemoteEventTestItem.java @@ -1,285 +1,288 @@ -/*******************************************************************************
- * 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.navigate;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.logging.Level;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osee.ats.AtsOpenOption;
-import org.eclipse.osee.ats.actions.wizard.NewActionJob;
-import org.eclipse.osee.ats.artifact.ActionArtifact;
-import org.eclipse.osee.ats.artifact.ActionableItemArtifact;
-import org.eclipse.osee.ats.artifact.AtsAttributeTypes;
-import org.eclipse.osee.ats.artifact.StateMachineArtifact.TransitionOption;
-import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact.DefaultTeamState;
-import org.eclipse.osee.ats.artifact.VersionArtifact;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.AtsArtifactTypes;
-import org.eclipse.osee.ats.util.AtsPriority.PriorityType;
-import org.eclipse.osee.ats.util.AtsRelationTypes;
-import org.eclipse.osee.ats.util.AtsUtil;
-import org.eclipse.osee.ats.world.WorldXNavigateItemAction;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.UserManager;
-import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery;
-import org.eclipse.osee.framework.skynet.core.event.OseeEventManager;
-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.xnavigate.XNavigateComposite.TableLoadOption;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.skynet.results.XResultData;
-import org.eclipse.osee.framework.ui.skynet.util.ChangeType;
-import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialog;
-import org.eclipse.osee.framework.ui.swt.Displays;
-
-/**
- * @author Donald G. Dunne
- */
-public class AtsRemoteEventTestItem extends WorldXNavigateItemAction {
-
- XResultData resultData;
-
- public AtsRemoteEventTestItem(XNavigateItem parent) {
- super(parent, "ATS Remote Event Test");
- }
-
- @Override
- public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException {
- if (AtsUtil.isProductionDb()) {
- AWorkbench.popup("ERROR", "This should not to be run on production DB");
- return;
- }
- MessageDialog dialog =
- new MessageDialog(Displays.getActiveShell(), getName(), null,
- getName() + "\n\nSelect Source or Destination Client", MessageDialog.QUESTION, new String[] {
- "Source Client", "Destination Client - Start", "Destination Client - End", "Cancel"}, 2);
- int result = dialog.open();
- resultData = new XResultData();
- if (result == 0) {
- runClientTest();
- } else if (result == 1) {
- EntryDialog diag = new EntryDialog(getName(), "Enter tt number of Source Client created Action");
- if (diag.open() == 0) {
- runDestinationTestStart(diag.getEntry());
- }
- } else if (result == 2) {
- EntryDialog diag = new EntryDialog(getName(), "Enter tt number of Source Client created Action");
- if (diag.open() == 0) {
- runDestinationTestEnd(diag.getEntry());
- }
- }
- }
-
- private void runClientTest() throws OseeCoreException {
- String title = getName() + " - Destination Client Test";
- resultData.log("Running " + title);
- NewActionJob job = null;
- job =
- new NewActionJob("tt", "description", ChangeType.Improvement, PriorityType.Priority_1, null, false,
- ActionableItemArtifact.getActionableItems(Arrays.asList("ATS")), null);
- job.setUser(true);
- job.setPriority(Job.LONG);
- job.schedule();
- try {
- job.join();
- } catch (InterruptedException ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
-
- ActionArtifact actionArt = job.getActionArt();
- resultData.log("Created Action " + actionArt);
- TeamWorkFlowArtifact teamArt = actionArt.getTeamWorkFlowArtifacts().iterator().next();
-
- // Make current user assignee for convenience to developer
- teamArt.getStateMgr().addAssignee(UserManager.getUser());
- teamArt.persist();
-
- validateActionAtStart(actionArt);
-
- // Wait for destination client to start
- if (!MessageDialog.openConfirm(
- Displays.getActiveShell(),
- getName(),
- "Launch \"Destination Client - Start\" test, enter \"" + actionArt.getName().replaceFirst("tt ", "") + "\" and press Ok")) {
- return;
- }
-
- // Make changes and persist
- SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Remote Event Test");
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.Description, "description 2");
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.ChangeType, ChangeType.Problem.name());
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.PriorityType, PriorityType.Priority_2.getShortName());
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.ValidationRequired, "yes");
- teamArt.addRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, getVersion256());
- teamArt.persist(transaction);
- transaction.execute();
-
- // Make changes and persist
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.Description, "description 3");
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.ProposedResolution, "this is resolution");
- teamArt.persist();
-
- // Make changes and persist
- teamArt.deleteRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, getVersion256());
- teamArt.addRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, getVersion257());
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.ValidationRequired, "no");
- teamArt.persist();
-
- // Make changes and persist
- transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Remote Event Test");
- teamArt.deleteAttributes(AtsAttributeTypes.ValidationRequired);
- teamArt.deleteAttributes(AtsAttributeTypes.Resolution);
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.Description, "description 4");
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.ChangeType, ChangeType.Support.name());
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.PriorityType, PriorityType.Priority_3.getShortName());
- teamArt.setRelations(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version,
- Collections.singleton(getVersion258()));
- teamArt.persist(transaction);
- transaction.execute();
-
- // Make changes and persist
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.ValidationRequired, "yes");
- teamArt.persist();
-
- // Make changes and transition
- transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Remote Event Test");
- teamArt.setRelations(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version,
- Collections.singleton(getVersion257()));
- teamArt.setSoleAttributeFromString(AtsAttributeTypes.ValidationRequired, "no");
- teamArt.persist(transaction);
- transaction.execute();
-
- transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Remote Event Test");
- teamArt.transition(DefaultTeamState.Analyze.name(), Collections.singleton(UserManager.getUser()), transaction,
- TransitionOption.Persist);
- teamArt.persist(transaction);
- transaction.execute();
-
- validateActionAtEnd(actionArt);
-
- // Wait for destination client to end
- if (!MessageDialog.openConfirm(
- Displays.getActiveShell(),
- getName(),
- "Launch \"Destination Client - End\" test, enter \"" + actionArt.getName().replaceFirst("tt ", "") + "\" and press Ok")) {
- return;
- }
-
- resultData.report(title);
- }
-
- private VersionArtifact getVersion256() throws OseeCoreException {
- return (VersionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, "2.5.6",
- AtsUtil.getAtsBranch());
- }
-
- private VersionArtifact getVersion257() throws OseeCoreException {
- return (VersionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, "2.5.7",
- AtsUtil.getAtsBranch());
- }
-
- private VersionArtifact getVersion258() throws OseeCoreException {
- return (VersionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, "2.5.8",
- AtsUtil.getAtsBranch());
- }
-
- private void validateActionAtStart(ActionArtifact actionArt) throws OseeCoreException {
- resultData.log("\nValidating Start...");
- // Ensure event service is connected
- if (!OseeEventManager.isEventManagerConnected()) {
- resultData.logError("Remote Event Service is not connected");
- return;
- }
- resultData.log("Remote Event Service connected");
-
- // Validate values
- TeamWorkFlowArtifact teamArt = actionArt.getTeamWorkFlowArtifacts().iterator().next();
- testEquals("Description", "description", teamArt.getSoleAttributeValue(AtsAttributeTypes.Description, null));
- testEquals("Change Type", ChangeType.Improvement.name(),
- teamArt.getSoleAttributeValue(AtsAttributeTypes.ChangeType, null));
- testEquals("Priority", PriorityType.Priority_1.getShortName(),
- teamArt.getSoleAttributeValue(AtsAttributeTypes.PriorityType, null));
- }
-
- private void validateActionAtEnd(ActionArtifact actionArt) throws OseeCoreException {
- resultData.log("\nValidating End...");
- // Ensure event service is connected
- if (!OseeEventManager.isEventManagerConnected()) {
- resultData.logError("Remote Event Service is not connected");
- return;
- }
- resultData.log("Remote Event Service connected");
-
- // Validate values
- TeamWorkFlowArtifact teamArt = actionArt.getTeamWorkFlowArtifacts().iterator().next();
- testEquals("Description", "description 4", teamArt.getSoleAttributeValue(AtsAttributeTypes.Description, null));
- testEquals("Change Type", ChangeType.Support.name(),
- teamArt.getSoleAttributeValue(AtsAttributeTypes.ChangeType, null));
- testEquals("Priority", PriorityType.Priority_3.getShortName(),
- teamArt.getSoleAttributeValue(AtsAttributeTypes.PriorityType, null));
- testEquals("Validation Required", "false",
- String.valueOf(teamArt.getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, null)));
- testEquals("Targeted Version",
- (teamArt.getTargetedForVersion() != null ? teamArt.getTargetedForVersion().toString() : "not set"), "2.5.7");
- testEquals("State", DefaultTeamState.Analyze.name(), teamArt.getStateMgr().getCurrentStateName());
- }
-
- private void testEquals(String name, Object expected, Object actual) {
- if (!expected.equals(actual)) {
- resultData.logError(String.format("Error: [%s] - expected [%s] actual[%s]", name, expected, actual));
- } else {
- resultData.log(String.format("Valid: [%s] - expected [%s] actual[%s]", name, expected, actual));
- }
- }
-
- private void runDestinationTestStart(String ttNum) throws OseeCoreException {
- String title = getName() + " - Destination Client Test - Start";
- String actionTitle = "tt " + ttNum;
- resultData.log("Running " + title);
-
- ActionArtifact actionArt =
- (ActionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Action, actionTitle,
- AtsUtil.getAtsBranch());
-
- if (actionArt == null) {
- resultData.logError(String.format("Couldn't load Action named [%s]", actionTitle));
- } else {
- resultData.log("Loaded Action " + actionArt);
- AtsUtil.openATSAction(actionArt, AtsOpenOption.OpenOneOrPopupSelect);
- }
- validateActionAtStart(actionArt);
- resultData.report(title);
- }
-
- private void runDestinationTestEnd(String ttNum) throws OseeCoreException {
- String title = getName() + " - Destination Client Test - End";
- String actionTitle = "tt " + ttNum;
- resultData.log("Running " + title);
-
- ActionArtifact actionArt =
- (ActionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Action, actionTitle,
- AtsUtil.getAtsBranch());
-
- if (actionArt == null) {
- resultData.logError(String.format("Couldn't load Action named [%s]", actionTitle));
- } else {
- resultData.log("Loaded Action " + actionArt);
- AtsUtil.openATSAction(actionArt, AtsOpenOption.OpenOneOrPopupSelect);
- }
- validateActionAtEnd(actionArt);
- resultData.report(title);
- }
-
-}
+/******************************************************************************* + * 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.navigate; + +import java.util.Arrays; +import java.util.Collections; +import java.util.logging.Level; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.osee.ats.AtsOpenOption; +import org.eclipse.osee.ats.actions.wizard.NewActionJob; +import org.eclipse.osee.ats.artifact.ActionArtifact; +import org.eclipse.osee.ats.artifact.ActionableItemArtifact; +import org.eclipse.osee.ats.artifact.AtsAttributeTypes; +import org.eclipse.osee.ats.artifact.StateMachineArtifact.TransitionOption; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact.DefaultTeamState; +import org.eclipse.osee.ats.artifact.VersionArtifact; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.util.AtsPriority.PriorityType; +import org.eclipse.osee.ats.util.AtsRelationTypes; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.world.WorldXNavigateItemAction; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.UserManager; +import org.eclipse.osee.framework.skynet.core.artifact.search.ArtifactQuery; +import org.eclipse.osee.framework.skynet.core.event.OseeEventManager; +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.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.skynet.results.XResultData; +import org.eclipse.osee.framework.ui.skynet.util.ChangeType; +import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialog; +import org.eclipse.osee.framework.ui.swt.Displays; + +/** + * @author Donald G. Dunne + */ +public class AtsRemoteEventTestItem extends WorldXNavigateItemAction { + + XResultData resultData; + + public AtsRemoteEventTestItem(XNavigateItem parent) { + super(parent, "ATS Remote Event Test"); + } + + @Override + public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException { + if (AtsUtil.isProductionDb()) { + AWorkbench.popup("ERROR", "This should not to be run on production DB"); + return; + } + MessageDialog dialog = + new MessageDialog(Displays.getActiveShell(), getName(), null, + getName() + "\n\nSelect Source or Destination Client", MessageDialog.QUESTION, new String[] { + "Source Client", + "Destination Client - Start", + "Destination Client - End", + "Cancel"}, 2); + int result = dialog.open(); + resultData = new XResultData(); + if (result == 0) { + runClientTest(); + } else if (result == 1) { + EntryDialog diag = new EntryDialog(getName(), "Enter tt number of Source Client created Action"); + if (diag.open() == 0) { + runDestinationTestStart(diag.getEntry()); + } + } else if (result == 2) { + EntryDialog diag = new EntryDialog(getName(), "Enter tt number of Source Client created Action"); + if (diag.open() == 0) { + runDestinationTestEnd(diag.getEntry()); + } + } + } + + private void runClientTest() throws OseeCoreException { + String title = getName() + " - Destination Client Test"; + resultData.log("Running " + title); + NewActionJob job = null; + job = + new NewActionJob("tt", "description", ChangeType.Improvement, PriorityType.Priority_1, null, false, + ActionableItemArtifact.getActionableItems(Arrays.asList("ATS")), null); + job.setUser(true); + job.setPriority(Job.LONG); + job.schedule(); + try { + job.join(); + } catch (InterruptedException ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + } + + ActionArtifact actionArt = job.getActionArt(); + resultData.log("Created Action " + actionArt); + TeamWorkFlowArtifact teamArt = actionArt.getTeamWorkFlowArtifacts().iterator().next(); + + // Make current user assignee for convenience to developer + teamArt.getStateMgr().addAssignee(UserManager.getUser()); + teamArt.persist(); + + validateActionAtStart(actionArt); + + // Wait for destination client to start + if (!MessageDialog.openConfirm( + Displays.getActiveShell(), + getName(), + "Launch \"Destination Client - Start\" test, enter \"" + actionArt.getName().replaceFirst("tt ", "") + "\" and press Ok")) { + return; + } + + // Make changes and persist + SkynetTransaction transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Remote Event Test"); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.Description, "description 2"); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.ChangeType, ChangeType.Problem.name()); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.PriorityType, PriorityType.Priority_2.getShortName()); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.ValidationRequired, "yes"); + teamArt.addRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, getVersion256()); + teamArt.persist(transaction); + transaction.execute(); + + // Make changes and persist + teamArt.setSoleAttributeFromString(AtsAttributeTypes.Description, "description 3"); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.ProposedResolution, "this is resolution"); + teamArt.persist(); + + // Make changes and persist + teamArt.deleteRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, getVersion256()); + teamArt.addRelation(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, getVersion257()); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.ValidationRequired, "no"); + teamArt.persist(); + + // Make changes and persist + transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Remote Event Test"); + teamArt.deleteAttributes(AtsAttributeTypes.ValidationRequired); + teamArt.deleteAttributes(AtsAttributeTypes.Resolution); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.Description, "description 4"); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.ChangeType, ChangeType.Support.name()); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.PriorityType, PriorityType.Priority_3.getShortName()); + teamArt.setRelations(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, + Collections.singleton(getVersion258())); + teamArt.persist(transaction); + transaction.execute(); + + // Make changes and persist + teamArt.setSoleAttributeFromString(AtsAttributeTypes.ValidationRequired, "yes"); + teamArt.persist(); + + // Make changes and transition + transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Remote Event Test"); + teamArt.setRelations(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version, + Collections.singleton(getVersion257())); + teamArt.setSoleAttributeFromString(AtsAttributeTypes.ValidationRequired, "no"); + teamArt.persist(transaction); + transaction.execute(); + + transaction = new SkynetTransaction(AtsUtil.getAtsBranch(), "Remote Event Test"); + teamArt.transition(DefaultTeamState.Analyze.name(), Collections.singleton(UserManager.getUser()), transaction, + TransitionOption.Persist); + teamArt.persist(transaction); + transaction.execute(); + + validateActionAtEnd(actionArt); + + // Wait for destination client to end + if (!MessageDialog.openConfirm( + Displays.getActiveShell(), + getName(), + "Launch \"Destination Client - End\" test, enter \"" + actionArt.getName().replaceFirst("tt ", "") + "\" and press Ok")) { + return; + } + + resultData.report(title); + } + + private VersionArtifact getVersion256() throws OseeCoreException { + return (VersionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, "2.5.6", + AtsUtil.getAtsBranch()); + } + + private VersionArtifact getVersion257() throws OseeCoreException { + return (VersionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, "2.5.7", + AtsUtil.getAtsBranch()); + } + + private VersionArtifact getVersion258() throws OseeCoreException { + return (VersionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Version, "2.5.8", + AtsUtil.getAtsBranch()); + } + + private void validateActionAtStart(ActionArtifact actionArt) throws OseeCoreException { + resultData.log("\nValidating Start..."); + // Ensure event service is connected + if (!OseeEventManager.isEventManagerConnected()) { + resultData.logError("Remote Event Service is not connected"); + return; + } + resultData.log("Remote Event Service connected"); + + // Validate values + TeamWorkFlowArtifact teamArt = actionArt.getTeamWorkFlowArtifacts().iterator().next(); + testEquals("Description", "description", teamArt.getSoleAttributeValue(AtsAttributeTypes.Description, null)); + testEquals("Change Type", ChangeType.Improvement.name(), + teamArt.getSoleAttributeValue(AtsAttributeTypes.ChangeType, null)); + testEquals("Priority", PriorityType.Priority_1.getShortName(), + teamArt.getSoleAttributeValue(AtsAttributeTypes.PriorityType, null)); + } + + private void validateActionAtEnd(ActionArtifact actionArt) throws OseeCoreException { + resultData.log("\nValidating End..."); + // Ensure event service is connected + if (!OseeEventManager.isEventManagerConnected()) { + resultData.logError("Remote Event Service is not connected"); + return; + } + resultData.log("Remote Event Service connected"); + + // Validate values + TeamWorkFlowArtifact teamArt = actionArt.getTeamWorkFlowArtifacts().iterator().next(); + testEquals("Description", "description 4", teamArt.getSoleAttributeValue(AtsAttributeTypes.Description, null)); + testEquals("Change Type", ChangeType.Support.name(), + teamArt.getSoleAttributeValue(AtsAttributeTypes.ChangeType, null)); + testEquals("Priority", PriorityType.Priority_3.getShortName(), + teamArt.getSoleAttributeValue(AtsAttributeTypes.PriorityType, null)); + testEquals("Validation Required", "false", + String.valueOf(teamArt.getSoleAttributeValue(AtsAttributeTypes.ValidationRequired, null))); + testEquals("Targeted Version", + (teamArt.getTargetedForVersion() != null ? teamArt.getTargetedForVersion().toString() : "not set"), "2.5.7"); + testEquals("State", DefaultTeamState.Analyze.name(), teamArt.getStateMgr().getCurrentStateName()); + } + + private void testEquals(String name, Object expected, Object actual) { + if (!expected.equals(actual)) { + resultData.logError(String.format("Error: [%s] - expected [%s] actual[%s]", name, expected, actual)); + } else { + resultData.log(String.format("Valid: [%s] - expected [%s] actual[%s]", name, expected, actual)); + } + } + + private void runDestinationTestStart(String ttNum) throws OseeCoreException { + String title = getName() + " - Destination Client Test - Start"; + String actionTitle = "tt " + ttNum; + resultData.log("Running " + title); + + ActionArtifact actionArt = + (ActionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Action, actionTitle, + AtsUtil.getAtsBranch()); + + if (actionArt == null) { + resultData.logError(String.format("Couldn't load Action named [%s]", actionTitle)); + } else { + resultData.log("Loaded Action " + actionArt); + AtsUtil.openATSAction(actionArt, AtsOpenOption.OpenOneOrPopupSelect); + } + validateActionAtStart(actionArt); + resultData.report(title); + } + + private void runDestinationTestEnd(String ttNum) throws OseeCoreException { + String title = getName() + " - Destination Client Test - End"; + String actionTitle = "tt " + ttNum; + resultData.log("Running " + title); + + ActionArtifact actionArt = + (ActionArtifact) ArtifactQuery.getArtifactFromTypeAndName(AtsArtifactTypes.Action, actionTitle, + AtsUtil.getAtsBranch()); + + if (actionArt == null) { + resultData.logError(String.format("Couldn't load Action named [%s]", actionTitle)); + } else { + resultData.log("Loaded Action " + actionArt); + AtsUtil.openATSAction(actionArt, AtsOpenOption.OpenOneOrPopupSelect); + } + validateActionAtEnd(actionArt); + resultData.report(title); + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/BarChartExample.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/BarChartExample.java index 1a7b502fae5..6b40fca82dc 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/BarChartExample.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/BarChartExample.java @@ -1,168 +1,164 @@ -/*******************************************************************************
- * 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.navigate;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.birt.chart.model.Chart;
-import org.eclipse.birt.chart.model.ChartWithAxes;
-import org.eclipse.birt.chart.model.attribute.Anchor;
-import org.eclipse.birt.chart.model.attribute.AxisType;
-import org.eclipse.birt.chart.model.attribute.ChartDimension;
-import org.eclipse.birt.chart.model.attribute.IntersectionType;
-import org.eclipse.birt.chart.model.attribute.Position;
-import org.eclipse.birt.chart.model.attribute.TickStyle;
-import org.eclipse.birt.chart.model.attribute.impl.ColorDefinitionImpl;
-import org.eclipse.birt.chart.model.component.Axis;
-import org.eclipse.birt.chart.model.component.Series;
-import org.eclipse.birt.chart.model.component.impl.SeriesImpl;
-import org.eclipse.birt.chart.model.data.NumberDataSet;
-import org.eclipse.birt.chart.model.data.SeriesDefinition;
-import org.eclipse.birt.chart.model.data.TextDataSet;
-import org.eclipse.birt.chart.model.data.impl.NumberDataSetImpl;
-import org.eclipse.birt.chart.model.data.impl.SeriesDefinitionImpl;
-import org.eclipse.birt.chart.model.data.impl.TextDataSetImpl;
-import org.eclipse.birt.chart.model.impl.ChartWithAxesImpl;
-import org.eclipse.birt.chart.model.layout.Legend;
-import org.eclipse.birt.chart.model.layout.Plot;
-import org.eclipse.birt.chart.model.type.BarSeries;
-import org.eclipse.birt.chart.model.type.impl.BarSeriesImpl;
-import org.eclipse.osee.ats.AtsImage;
-import org.eclipse.osee.framework.jdk.core.util.AHTML;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
-import org.eclipse.osee.framework.ui.skynet.results.IResultsEditorProvider;
-import org.eclipse.osee.framework.ui.skynet.results.IResultsEditorTab;
-import org.eclipse.osee.framework.ui.skynet.results.ResultsEditor;
-import org.eclipse.osee.framework.ui.skynet.results.chart.ResultsEditorChartTab;
-import org.eclipse.osee.framework.ui.skynet.results.html.ResultsEditorHtmlTab;
-
-public class BarChartExample extends XNavigateItemAction {
-
- /**
- * @param parent
- * @param action
- */
- public BarChartExample(XNavigateItem parent) {
- super(parent, "Bar Chart Example", AtsImage.REPORT);
- }
-
- @Override
- public void run(TableLoadOption... tableLoadOptions) throws Exception {
- ResultsEditor.open(new IResultsEditorProvider() {
-
- @Override
- public String getEditorName() {
- return "Example Bar Chart";
- }
-
- @Override
- public List<IResultsEditorTab> getResultsEditorTabs() {
- List<IResultsEditorTab> tabs = new ArrayList<IResultsEditorTab>();
- tabs.add(new ResultsEditorChartTab("Chart", createMyChart()));
- tabs.add(getReportHtmlTab());
- return tabs;
- }
-
- });
- }
-
- private IResultsEditorTab getReportHtmlTab() {
- StringBuffer sb = new StringBuffer();
- sb.append("Example Bar Chart Data");
- sb.append(AHTML.beginMultiColumnTable(95, 1));
- sb.append(AHTML.addHeaderRowMultiColumnTable(new String[] {"Type", "Title", "Status"}));
- for (int x = 0; x < 3; x++) {
- sb.append(AHTML.addRowMultiColumnTable(new String[] {"Type " + x, "Title " + x, x + ""}));
- }
- sb.append(AHTML.endMultiColumnTable());
- return new ResultsEditorHtmlTab("Example Bar Chart Data", "Report", AHTML.simplePage(sb.toString()));
- }
-
- @SuppressWarnings({"deprecation"})
- public static Chart createMyChart() {
- // bart charts are based on charts that contain axes
- ChartWithAxes cwaBar = ChartWithAxesImpl.create();
- cwaBar.getBlock().setBackground(ColorDefinitionImpl.WHITE());
- cwaBar.getBlock().getOutline().setVisible(true);
- cwaBar.setDimension(ChartDimension.TWO_DIMENSIONAL_WITH_DEPTH_LITERAL);
-
- // customize the plot
- Plot p = cwaBar.getPlot();
- p.getClientArea().setBackground(ColorDefinitionImpl.create(255, 255, 225));
- p.getOutline().setVisible(false);
-
- cwaBar.getTitle().getLabel().getCaption().setValue("Example Bar Chart");
-
- // customize the legend
- Legend lg = cwaBar.getLegend();
- lg.getText().getFont().setSize(16);
- lg.getInsets().set(10, 5, 0, 0);
- lg.setAnchor(Anchor.NORTH_LITERAL);
-
- // customize the X-axis
- Axis xAxisPrimary = cwaBar.getPrimaryBaseAxes()[0];
- xAxisPrimary.setType(AxisType.TEXT_LITERAL);
- xAxisPrimary.getMajorGrid().setTickStyle(TickStyle.BELOW_LITERAL);
- xAxisPrimary.getOrigin().setType(IntersectionType.VALUE_LITERAL);
- xAxisPrimary.getTitle().setVisible(false);
-
- // customize the Y-axis
- Axis yAxisPrimary = cwaBar.getPrimaryOrthogonalAxis(xAxisPrimary);
- yAxisPrimary.getMajorGrid().setTickStyle(TickStyle.LEFT_LITERAL);
- yAxisPrimary.setType(AxisType.LINEAR_LITERAL);
- yAxisPrimary.getLabel().getCaption().getFont().setRotation(90);
-
- // initialize a collection with the X-series data
- java.util.Vector<String> vs = new java.util.Vector<String>();
- vs.add("zero");
- vs.add("one");
- vs.add("two");
-
- TextDataSet categoryValues = TextDataSetImpl.create(vs);
-
- // initialize a collection with the Y-series data
- ArrayList<Double> vn1 = new ArrayList<Double>();
- vn1.add(new Double(25));
- vn1.add(new Double(35));
- vn1.add(new Double(-45));
-
- NumberDataSet orthoValues1 = NumberDataSetImpl.create(vn1);
-
- // create the category base series
- Series seCategory = SeriesImpl.create();
- seCategory.setDataSet(categoryValues);
-
- // create the value orthogonal series
- BarSeries bs1 = (BarSeries) BarSeriesImpl.create();
- bs1.setSeriesIdentifier("My Bar Series");
- bs1.setDataSet(orthoValues1);
- bs1.setRiserOutline(null);
- bs1.getLabel().setVisible(true);
- bs1.setLabelPosition(Position.INSIDE_LITERAL);
-
- // wrap the base series in the X-axis series definition
- SeriesDefinition sdX = SeriesDefinitionImpl.create();
- sdX.getSeriesPalette().update(0); // set the colors in the palette
- xAxisPrimary.getSeriesDefinitions().add(sdX);
- sdX.getSeries().add(seCategory);
-
- // wrap the orthogonal series in the X-axis series definition
- SeriesDefinition sdY = SeriesDefinitionImpl.create();
- sdY.getSeriesPalette().update(1); // set the color in the palette
- yAxisPrimary.getSeriesDefinitions().add(sdY);
- sdY.getSeries().add(bs1);
-
- return cwaBar;
- }
-
-}
+/******************************************************************************* + * 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.navigate; + +import java.util.ArrayList; +import java.util.List; +import org.eclipse.birt.chart.model.Chart; +import org.eclipse.birt.chart.model.ChartWithAxes; +import org.eclipse.birt.chart.model.attribute.Anchor; +import org.eclipse.birt.chart.model.attribute.AxisType; +import org.eclipse.birt.chart.model.attribute.ChartDimension; +import org.eclipse.birt.chart.model.attribute.IntersectionType; +import org.eclipse.birt.chart.model.attribute.Position; +import org.eclipse.birt.chart.model.attribute.TickStyle; +import org.eclipse.birt.chart.model.attribute.impl.ColorDefinitionImpl; +import org.eclipse.birt.chart.model.component.Axis; +import org.eclipse.birt.chart.model.component.Series; +import org.eclipse.birt.chart.model.component.impl.SeriesImpl; +import org.eclipse.birt.chart.model.data.NumberDataSet; +import org.eclipse.birt.chart.model.data.SeriesDefinition; +import org.eclipse.birt.chart.model.data.TextDataSet; +import org.eclipse.birt.chart.model.data.impl.NumberDataSetImpl; +import org.eclipse.birt.chart.model.data.impl.SeriesDefinitionImpl; +import org.eclipse.birt.chart.model.data.impl.TextDataSetImpl; +import org.eclipse.birt.chart.model.impl.ChartWithAxesImpl; +import org.eclipse.birt.chart.model.layout.Legend; +import org.eclipse.birt.chart.model.layout.Plot; +import org.eclipse.birt.chart.model.type.BarSeries; +import org.eclipse.birt.chart.model.type.impl.BarSeriesImpl; +import org.eclipse.osee.ats.AtsImage; +import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; +import org.eclipse.osee.framework.ui.skynet.results.IResultsEditorProvider; +import org.eclipse.osee.framework.ui.skynet.results.IResultsEditorTab; +import org.eclipse.osee.framework.ui.skynet.results.ResultsEditor; +import org.eclipse.osee.framework.ui.skynet.results.chart.ResultsEditorChartTab; +import org.eclipse.osee.framework.ui.skynet.results.html.ResultsEditorHtmlTab; + +public class BarChartExample extends XNavigateItemAction { + + public BarChartExample(XNavigateItem parent) { + super(parent, "Bar Chart Example", AtsImage.REPORT); + } + + @Override + public void run(TableLoadOption... tableLoadOptions) throws Exception { + ResultsEditor.open(new IResultsEditorProvider() { + + @Override + public String getEditorName() { + return "Example Bar Chart"; + } + + @Override + public List<IResultsEditorTab> getResultsEditorTabs() { + List<IResultsEditorTab> tabs = new ArrayList<IResultsEditorTab>(); + tabs.add(new ResultsEditorChartTab("Chart", createMyChart())); + tabs.add(getReportHtmlTab()); + return tabs; + } + + }); + } + + private IResultsEditorTab getReportHtmlTab() { + StringBuffer sb = new StringBuffer(); + sb.append("Example Bar Chart Data"); + sb.append(AHTML.beginMultiColumnTable(95, 1)); + sb.append(AHTML.addHeaderRowMultiColumnTable(new String[] {"Type", "Title", "Status"})); + for (int x = 0; x < 3; x++) { + sb.append(AHTML.addRowMultiColumnTable(new String[] {"Type " + x, "Title " + x, x + ""})); + } + sb.append(AHTML.endMultiColumnTable()); + return new ResultsEditorHtmlTab("Example Bar Chart Data", "Report", AHTML.simplePage(sb.toString())); + } + + @SuppressWarnings({"deprecation"}) + public static Chart createMyChart() { + // bart charts are based on charts that contain axes + ChartWithAxes cwaBar = ChartWithAxesImpl.create(); + cwaBar.getBlock().setBackground(ColorDefinitionImpl.WHITE()); + cwaBar.getBlock().getOutline().setVisible(true); + cwaBar.setDimension(ChartDimension.TWO_DIMENSIONAL_WITH_DEPTH_LITERAL); + + // customize the plot + Plot p = cwaBar.getPlot(); + p.getClientArea().setBackground(ColorDefinitionImpl.create(255, 255, 225)); + p.getOutline().setVisible(false); + + cwaBar.getTitle().getLabel().getCaption().setValue("Example Bar Chart"); + + // customize the legend + Legend lg = cwaBar.getLegend(); + lg.getText().getFont().setSize(16); + lg.getInsets().set(10, 5, 0, 0); + lg.setAnchor(Anchor.NORTH_LITERAL); + + // customize the X-axis + Axis xAxisPrimary = cwaBar.getPrimaryBaseAxes()[0]; + xAxisPrimary.setType(AxisType.TEXT_LITERAL); + xAxisPrimary.getMajorGrid().setTickStyle(TickStyle.BELOW_LITERAL); + xAxisPrimary.getOrigin().setType(IntersectionType.VALUE_LITERAL); + xAxisPrimary.getTitle().setVisible(false); + + // customize the Y-axis + Axis yAxisPrimary = cwaBar.getPrimaryOrthogonalAxis(xAxisPrimary); + yAxisPrimary.getMajorGrid().setTickStyle(TickStyle.LEFT_LITERAL); + yAxisPrimary.setType(AxisType.LINEAR_LITERAL); + yAxisPrimary.getLabel().getCaption().getFont().setRotation(90); + + // initialize a collection with the X-series data + java.util.Vector<String> vs = new java.util.Vector<String>(); + vs.add("zero"); + vs.add("one"); + vs.add("two"); + + TextDataSet categoryValues = TextDataSetImpl.create(vs); + + // initialize a collection with the Y-series data + ArrayList<Double> vn1 = new ArrayList<Double>(); + vn1.add(new Double(25)); + vn1.add(new Double(35)); + vn1.add(new Double(-45)); + + NumberDataSet orthoValues1 = NumberDataSetImpl.create(vn1); + + // create the category base series + Series seCategory = SeriesImpl.create(); + seCategory.setDataSet(categoryValues); + + // create the value orthogonal series + BarSeries bs1 = (BarSeries) BarSeriesImpl.create(); + bs1.setSeriesIdentifier("My Bar Series"); + bs1.setDataSet(orthoValues1); + bs1.setRiserOutline(null); + bs1.getLabel().setVisible(true); + bs1.setLabelPosition(Position.INSIDE_LITERAL); + + // wrap the base series in the X-axis series definition + SeriesDefinition sdX = SeriesDefinitionImpl.create(); + sdX.getSeriesPalette().update(0); // set the colors in the palette + xAxisPrimary.getSeriesDefinitions().add(sdX); + sdX.getSeries().add(seCategory); + + // wrap the orthogonal series in the X-axis series definition + SeriesDefinition sdY = SeriesDefinitionImpl.create(); + sdY.getSeriesPalette().update(1); // set the color in the palette + yAxisPrimary.getSeriesDefinitions().add(sdY); + sdY.getSeries().add(bs1); + + return cwaBar; + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/CreateNewVersionItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/CreateNewVersionItem.java index 3450b159ad6..829a222d696 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/CreateNewVersionItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/CreateNewVersionItem.java @@ -43,7 +43,6 @@ public class CreateNewVersionItem extends XNavigateItemAction { private final TeamDefinitionArtifact teamDefHoldingVersions; /** - * @param parent * @param teamDefHoldingVersions Team Definition Artifact that is related to versions or null for popup selection */ public CreateNewVersionItem(XNavigateItem parent, TeamDefinitionArtifact teamDefHoldingVersions) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/DisplayCurrentOseeEventListeners.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/DisplayCurrentOseeEventListeners.java index f04b972394b..1ba6ee172c9 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/DisplayCurrentOseeEventListeners.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/DisplayCurrentOseeEventListeners.java @@ -24,9 +24,6 @@ import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage; */ public class DisplayCurrentOseeEventListeners extends XNavigateItemAction { - /** - * @param parent - */ public DisplayCurrentOseeEventListeners(XNavigateItem parent) { super(parent, "Display Current OSEE Event Listeners", PluginUiImage.ADMIN); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/EmailTeamsItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/EmailTeamsItem.java index 59828cb0cec..42aebd52e34 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/EmailTeamsItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/EmailTeamsItem.java @@ -43,7 +43,6 @@ public class EmailTeamsItem extends XNavigateItemAction { }; /** - * @param parent * @param teamDefHoldingVersions Team Definition Artifact that is related to versions or null for popup selection */ public EmailTeamsItem(XNavigateItem parent, TeamDefinitionArtifact teamDef, MemberType... memberType) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/FirstTimeQualityMetricReportItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/FirstTimeQualityMetricReportItem.java index 4820e8e75f0..2d9637c3026 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/FirstTimeQualityMetricReportItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/FirstTimeQualityMetricReportItem.java @@ -1,195 +1,197 @@ -/*******************************************************************************
- * 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.navigate;
-
-import java.util.Collection;
-import java.util.Date;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osee.ats.AtsImage;
-import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
-import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.config.AtsCacheManager;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.AtsArtifactTypes;
-import org.eclipse.osee.ats.util.AtsPriority.PriorityType;
-import org.eclipse.osee.ats.util.AtsUtil;
-import org.eclipse.osee.ats.util.VersionMetrics;
-import org.eclipse.osee.ats.util.VersionTeamMetrics;
-import org.eclipse.osee.ats.util.widgets.dialog.TeamDefinitionDialog;
-import org.eclipse.osee.framework.core.enums.Active;
-import org.eclipse.osee.framework.core.exception.MultipleAttributesExist;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.AHTML;
-import org.eclipse.osee.framework.logging.OseeLevel;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
-import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
-import org.eclipse.osee.framework.ui.skynet.results.XResultData;
-import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations;
-import org.eclipse.osee.framework.ui.skynet.util.ChangeType;
-import org.eclipse.osee.framework.ui.skynet.widgets.XDate;
-import org.eclipse.osee.framework.ui.swt.Displays;
-
-/**
- * @author Donald G. Dunne
- */
-public class FirstTimeQualityMetricReportItem extends XNavigateItemAction {
-
- private final TeamDefinitionArtifact teamDef;
- private final String teamDefName;
-
- public FirstTimeQualityMetricReportItem(XNavigateItem parent, String name, String teamDefName) {
- super(parent, name, AtsImage.REPORT);
- this.teamDefName = teamDefName;
- this.teamDef = null;
- }
-
- public FirstTimeQualityMetricReportItem(XNavigateItem parent) {
- this(parent, "First Time Quality Metric Report", null);
- }
-
- @Override
- public String getDescription() {
- return "This report will genereate a metric comprised of:\n\n# of priority 1 and 2 OSEE problem actions orginated between release\n__________________________________\n# of non-support actions in that released";
- }
-
- @Override
- public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException {
- TeamDefinitionArtifact useTeamDef = teamDef;
- if (useTeamDef == null && teamDefName != null) {
- useTeamDef =
- (TeamDefinitionArtifact) AtsCacheManager.getSoleArtifactByName(
- ArtifactTypeManager.getType(AtsArtifactTypes.TeamDefinition), teamDefName);
- }
- if (useTeamDef == null) {
- TeamDefinitionDialog ld = new TeamDefinitionDialog("Select Team", "Select Team");
- ld.setTitle(getName());
- try {
- ld.setInput(TeamDefinitionArtifact.getTeamReleaseableDefinitions(Active.Both));
- } catch (MultipleAttributesExist ex) {
- OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
- }
- int result = ld.open();
- if (result == 0) {
- if (ld.getResult().length == 0) {
- AWorkbench.popup("ERROR", "You must select a team to operate against.");
- return;
- }
- useTeamDef = (TeamDefinitionArtifact) ld.getResult()[0];
- } else {
- return;
- }
- } else if (!MessageDialog.openConfirm(Displays.getActiveShell(), getName(), getName())) {
- return;
- }
-
- ReportJob job = new ReportJob(getName(), useTeamDef);
- job.setUser(true);
- job.setPriority(Job.LONG);
- job.schedule();
- }
-
- private static class ReportJob extends Job {
-
- private final TeamDefinitionArtifact teamDef;
-
- public ReportJob(String title, TeamDefinitionArtifact teamDef) {
- super(title);
- this.teamDef = teamDef;
- }
-
- @Override
- public IStatus run(IProgressMonitor monitor) {
- try {
- XResultData resultData = new XResultData();
- String html = getTeamWorkflowReport(getName(), teamDef, monitor);
- resultData.addRaw(html);
- resultData.report(getName(), Manipulations.RAW_HTML);
- } catch (Exception ex) {
- return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.toString(), ex);
- }
- monitor.done();
- return Status.OK_STATUS;
- }
- }
-
- private static String[] HEADER_STRINGS =
- new String[] {"Version", "StartDate", "RelDate", "Num 1 + 2 Orig During Next Release Cycle",
- "Num Non-Support Released", "Ratio Orig 1 and 2 Bugs/Number Released"};
-
- /**
- * Ratio of # of priority 1 and 2 OSEE problem actions (non-cancelled) that were orginated between a release and the
- * next release / # of non-support actions released in that release
- *
- * @param teamDef
- * @param monitor
- * @return report
- */
- public static String getTeamWorkflowReport(String title, TeamDefinitionArtifact teamDef, IProgressMonitor monitor) throws OseeCoreException {
- StringBuilder sb = new StringBuilder();
- sb.append(AHTML.heading(3, title));
- sb.append(AHTML.beginMultiColumnTable(100, 1));
- sb.append(AHTML.addRowSpanMultiColumnTable(
- "This report shows the ratio of 1+2 problem workflows created during next release cycle due to current release over the total non-support workflows during this release.",
- HEADER_STRINGS.length));
- sb.append(AHTML.addHeaderRowMultiColumnTable(HEADER_STRINGS));
- VersionTeamMetrics teamMet = new VersionTeamMetrics(teamDef);
- Collection<VersionMetrics> verMets = teamMet.getReleasedOrderedVersions();
- monitor.beginTask("Processing Versions", verMets.size());
- for (VersionMetrics verMet : verMets) {
- Date thisReleaseStartDate = verMet.getReleaseStartDate();
- Date thisReleaseEndDate = verMet.getVerArt().getReleaseDate();
- Date nextReleaseStartDate = null;
- Date nextReleaseEndDate = null;
- VersionMetrics nextVerMet = verMet.getNextVerMetViaReleaseDate();
- if (nextVerMet != null) {
- nextReleaseStartDate = nextVerMet.getReleaseStartDate();
- nextReleaseEndDate = nextVerMet.getVerArt().getReleaseDate();
- }
- Integer numOrigDurningNextReleaseCycle = 0;
- if (nextReleaseStartDate != null && nextReleaseEndDate != null) {
- Collection<TeamWorkFlowArtifact> arts =
- teamMet.getWorkflowsOriginatedBetween(nextReleaseStartDate, nextReleaseEndDate);
- for (TeamWorkFlowArtifact team : arts) {
- if (!team.isCancelled() && team.getChangeType() == ChangeType.Problem && (team.getPriority() == PriorityType.Priority_1 || team.getPriority() == PriorityType.Priority_2)) {
- numOrigDurningNextReleaseCycle++;
- }
- }
- }
- Integer numNonSupportReleased = null;
- if (thisReleaseEndDate != null) {
- numNonSupportReleased = 0;
- for (TeamWorkFlowArtifact team : verMet.getTeamWorkFlows(ChangeType.Problem, ChangeType.Improvement)) {
- if (!team.isCancelled()) {
- numNonSupportReleased++;
- }
- }
- }
- sb.append(AHTML.addRowMultiColumnTable(new String[] {
- verMet.getVerArt().getName(),
- XDate.getDateStr(thisReleaseStartDate, XDate.MMDDYY),
- XDate.getDateStr(thisReleaseEndDate, XDate.MMDDYY),
- numOrigDurningNextReleaseCycle == 0 ? "N/A" : String.valueOf(numOrigDurningNextReleaseCycle),
- numNonSupportReleased == null ? "N/A" : String.valueOf(numNonSupportReleased),
- numOrigDurningNextReleaseCycle == 0 || numNonSupportReleased == null || numNonSupportReleased == 0 ? "N/A" : AtsUtil.doubleToI18nString((double) numOrigDurningNextReleaseCycle / (double) numNonSupportReleased)}));
- monitor.worked(1);
- }
- sb.append(AHTML.endMultiColumnTable());
- return sb.toString();
- }
-}
+/******************************************************************************* + * 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.navigate; + +import java.util.Collection; +import java.util.Date; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.osee.ats.AtsImage; +import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.config.AtsCacheManager; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.util.AtsPriority.PriorityType; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.ats.util.VersionMetrics; +import org.eclipse.osee.ats.util.VersionTeamMetrics; +import org.eclipse.osee.ats.util.widgets.dialog.TeamDefinitionDialog; +import org.eclipse.osee.framework.core.enums.Active; +import org.eclipse.osee.framework.core.exception.MultipleAttributesExist; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; +import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; +import org.eclipse.osee.framework.ui.skynet.results.XResultData; +import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations; +import org.eclipse.osee.framework.ui.skynet.util.ChangeType; +import org.eclipse.osee.framework.ui.skynet.widgets.XDate; +import org.eclipse.osee.framework.ui.swt.Displays; + +/** + * @author Donald G. Dunne + */ +public class FirstTimeQualityMetricReportItem extends XNavigateItemAction { + + private final TeamDefinitionArtifact teamDef; + private final String teamDefName; + + public FirstTimeQualityMetricReportItem(XNavigateItem parent, String name, String teamDefName) { + super(parent, name, AtsImage.REPORT); + this.teamDefName = teamDefName; + this.teamDef = null; + } + + public FirstTimeQualityMetricReportItem(XNavigateItem parent) { + this(parent, "First Time Quality Metric Report", null); + } + + @Override + public String getDescription() { + return "This report will genereate a metric comprised of:\n\n# of priority 1 and 2 OSEE problem actions orginated between release\n__________________________________\n# of non-support actions in that released"; + } + + @Override + public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException { + TeamDefinitionArtifact useTeamDef = teamDef; + if (useTeamDef == null && teamDefName != null) { + useTeamDef = + (TeamDefinitionArtifact) AtsCacheManager.getSoleArtifactByName( + ArtifactTypeManager.getType(AtsArtifactTypes.TeamDefinition), teamDefName); + } + if (useTeamDef == null) { + TeamDefinitionDialog ld = new TeamDefinitionDialog("Select Team", "Select Team"); + ld.setTitle(getName()); + try { + ld.setInput(TeamDefinitionArtifact.getTeamReleaseableDefinitions(Active.Both)); + } catch (MultipleAttributesExist ex) { + OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); + } + int result = ld.open(); + if (result == 0) { + if (ld.getResult().length == 0) { + AWorkbench.popup("ERROR", "You must select a team to operate against."); + return; + } + useTeamDef = (TeamDefinitionArtifact) ld.getResult()[0]; + } else { + return; + } + } else if (!MessageDialog.openConfirm(Displays.getActiveShell(), getName(), getName())) { + return; + } + + ReportJob job = new ReportJob(getName(), useTeamDef); + job.setUser(true); + job.setPriority(Job.LONG); + job.schedule(); + } + + private static class ReportJob extends Job { + + private final TeamDefinitionArtifact teamDef; + + public ReportJob(String title, TeamDefinitionArtifact teamDef) { + super(title); + this.teamDef = teamDef; + } + + @Override + public IStatus run(IProgressMonitor monitor) { + try { + XResultData resultData = new XResultData(); + String html = getTeamWorkflowReport(getName(), teamDef, monitor); + resultData.addRaw(html); + resultData.report(getName(), Manipulations.RAW_HTML); + } catch (Exception ex) { + return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.toString(), ex); + } + monitor.done(); + return Status.OK_STATUS; + } + } + + private static String[] HEADER_STRINGS = new String[] { + "Version", + "StartDate", + "RelDate", + "Num 1 + 2 Orig During Next Release Cycle", + "Num Non-Support Released", + "Ratio Orig 1 and 2 Bugs/Number Released"}; + + /** + * Ratio of # of priority 1 and 2 OSEE problem actions (non-cancelled) that were orginated between a release and the + * next release / # of non-support actions released in that release + * + * @return report + */ + public static String getTeamWorkflowReport(String title, TeamDefinitionArtifact teamDef, IProgressMonitor monitor) throws OseeCoreException { + StringBuilder sb = new StringBuilder(); + sb.append(AHTML.heading(3, title)); + sb.append(AHTML.beginMultiColumnTable(100, 1)); + sb.append(AHTML.addRowSpanMultiColumnTable( + "This report shows the ratio of 1+2 problem workflows created during next release cycle due to current release over the total non-support workflows during this release.", + HEADER_STRINGS.length)); + sb.append(AHTML.addHeaderRowMultiColumnTable(HEADER_STRINGS)); + VersionTeamMetrics teamMet = new VersionTeamMetrics(teamDef); + Collection<VersionMetrics> verMets = teamMet.getReleasedOrderedVersions(); + monitor.beginTask("Processing Versions", verMets.size()); + for (VersionMetrics verMet : verMets) { + Date thisReleaseStartDate = verMet.getReleaseStartDate(); + Date thisReleaseEndDate = verMet.getVerArt().getReleaseDate(); + Date nextReleaseStartDate = null; + Date nextReleaseEndDate = null; + VersionMetrics nextVerMet = verMet.getNextVerMetViaReleaseDate(); + if (nextVerMet != null) { + nextReleaseStartDate = nextVerMet.getReleaseStartDate(); + nextReleaseEndDate = nextVerMet.getVerArt().getReleaseDate(); + } + Integer numOrigDurningNextReleaseCycle = 0; + if (nextReleaseStartDate != null && nextReleaseEndDate != null) { + Collection<TeamWorkFlowArtifact> arts = + teamMet.getWorkflowsOriginatedBetween(nextReleaseStartDate, nextReleaseEndDate); + for (TeamWorkFlowArtifact team : arts) { + if (!team.isCancelled() && team.getChangeType() == ChangeType.Problem && (team.getPriority() == PriorityType.Priority_1 || team.getPriority() == PriorityType.Priority_2)) { + numOrigDurningNextReleaseCycle++; + } + } + } + Integer numNonSupportReleased = null; + if (thisReleaseEndDate != null) { + numNonSupportReleased = 0; + for (TeamWorkFlowArtifact team : verMet.getTeamWorkFlows(ChangeType.Problem, ChangeType.Improvement)) { + if (!team.isCancelled()) { + numNonSupportReleased++; + } + } + } + sb.append(AHTML.addRowMultiColumnTable(new String[] { + verMet.getVerArt().getName(), + XDate.getDateStr(thisReleaseStartDate, XDate.MMDDYY), + XDate.getDateStr(thisReleaseEndDate, XDate.MMDDYY), + numOrigDurningNextReleaseCycle == 0 ? "N/A" : String.valueOf(numOrigDurningNextReleaseCycle), + numNonSupportReleased == null ? "N/A" : String.valueOf(numNonSupportReleased), + numOrigDurningNextReleaseCycle == 0 || numNonSupportReleased == null || numNonSupportReleased == 0 ? "N/A" : AtsUtil.doubleToI18nString((double) numOrigDurningNextReleaseCycle / (double) numNonSupportReleased)})); + monitor.worked(1); + } + sb.append(AHTML.endMultiColumnTable()); + return sb.toString(); + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateFullVersionReportItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateFullVersionReportItem.java index 62142aa7d29..c3a3c314407 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateFullVersionReportItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateFullVersionReportItem.java @@ -1,138 +1,138 @@ -/*******************************************************************************
- * 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.navigate;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
-import org.eclipse.osee.ats.config.AtsCacheManager;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.AtsArtifactTypes;
-import org.eclipse.osee.ats.util.VersionReportJob;
-import org.eclipse.osee.ats.util.widgets.dialog.TeamDefinitionDialog;
-import org.eclipse.osee.framework.core.enums.Active;
-import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist;
-import org.eclipse.osee.framework.core.exception.MultipleAttributesExist;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLevel;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
-import org.eclipse.osee.framework.ui.skynet.FrameworkImage;
-import org.eclipse.osee.framework.ui.skynet.results.XResultData;
-import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations;
-import org.eclipse.osee.framework.ui.skynet.widgets.XDate;
-import org.eclipse.osee.framework.ui.swt.Displays;
-
-/**
- * @author Donald G. Dunne
- */
-public class GenerateFullVersionReportItem extends XNavigateItemAction {
-
- private final TeamDefinitionArtifact teamDef;
- private final String teamDefName;
-
- public GenerateFullVersionReportItem(XNavigateItem parent) {
- super(parent, "Generate Full Version Report", FrameworkImage.VERSION);
- this.teamDefName = null;
- this.teamDef = null;
- }
-
- public GenerateFullVersionReportItem(XNavigateItem parent, TeamDefinitionArtifact teamDef) {
- super(parent, "Generate Full Version Report", FrameworkImage.VERSION);
- this.teamDefName = null;
- this.teamDef = teamDef;
- }
-
- public GenerateFullVersionReportItem(XNavigateItem parent, String teamDefName) {
- super(parent, "Generate Full Version Report", FrameworkImage.VERSION);
- this.teamDefName = teamDefName;
- this.teamDef = null;
- }
-
- @Override
- public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException {
- TeamDefinitionArtifact teamDef = getTeamDefinition();
- if (teamDef == null) {
- return;
- }
- if (!MessageDialog.openConfirm(Displays.getActiveShell(), getName(), getName())) {
- return;
- }
- PublishReportJob job = new PublishReportJob(teamDef);
- job.setUser(true);
- job.setPriority(Job.LONG);
- job.schedule();
- }
-
- public TeamDefinitionArtifact getTeamDefinition() throws OseeCoreException {
- if (teamDef != null) {
- return teamDef;
- }
- if (Strings.isValid(teamDefName)) {
- try {
- TeamDefinitionArtifact teamDef =
- (TeamDefinitionArtifact) AtsCacheManager.getSoleArtifactByName(
- ArtifactTypeManager.getType(AtsArtifactTypes.TeamDefinition), teamDefName);
-
- if (teamDef != null) {
- return teamDef;
- }
- } catch (ArtifactDoesNotExist ex) {
- // do nothing, going to get team below
- }
- }
- TeamDefinitionDialog ld = new TeamDefinitionDialog("Select Team", "Select Team");
- try {
- ld.setInput(TeamDefinitionArtifact.getTeamReleaseableDefinitions(Active.Active));
- } catch (MultipleAttributesExist ex) {
- OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
- }
- int result = ld.open();
- if (result == 0) {
- return (TeamDefinitionArtifact) ld.getResult()[0];
- }
- return null;
- }
-
- private static class PublishReportJob extends Job {
-
- private final TeamDefinitionArtifact teamDef;
-
- public PublishReportJob(TeamDefinitionArtifact teamDef) {
- super(teamDef.getName() + " as of " + XDate.getDateNow());
- this.teamDef = teamDef;
- }
-
- @Override
- public IStatus run(IProgressMonitor monitor) {
- try {
- String html = VersionReportJob.getFullReleaseReport(teamDef, monitor);
- XResultData rd = new XResultData();
- rd.addRaw(html);
- rd.report(getName(), Manipulations.RAW_HTML);
- } catch (Exception ex) {
- return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.toString(), ex);
- }
-
- monitor.done();
- return Status.OK_STATUS;
- }
- }
-
-}
+/******************************************************************************* + * 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.navigate; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; +import org.eclipse.osee.ats.config.AtsCacheManager; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.util.VersionReportJob; +import org.eclipse.osee.ats.util.widgets.dialog.TeamDefinitionDialog; +import org.eclipse.osee.framework.core.enums.Active; +import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; +import org.eclipse.osee.framework.core.exception.MultipleAttributesExist; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; +import org.eclipse.osee.framework.ui.skynet.FrameworkImage; +import org.eclipse.osee.framework.ui.skynet.results.XResultData; +import org.eclipse.osee.framework.ui.skynet.results.html.XResultPage.Manipulations; +import org.eclipse.osee.framework.ui.skynet.widgets.XDate; +import org.eclipse.osee.framework.ui.swt.Displays; + +/** + * @author Donald G. Dunne + */ +public class GenerateFullVersionReportItem extends XNavigateItemAction { + + private final TeamDefinitionArtifact teamDef; + private final String teamDefName; + + public GenerateFullVersionReportItem(XNavigateItem parent) { + super(parent, "Generate Full Version Report", FrameworkImage.VERSION); + this.teamDefName = null; + this.teamDef = null; + } + + public GenerateFullVersionReportItem(XNavigateItem parent, TeamDefinitionArtifact teamDef) { + super(parent, "Generate Full Version Report", FrameworkImage.VERSION); + this.teamDefName = null; + this.teamDef = teamDef; + } + + public GenerateFullVersionReportItem(XNavigateItem parent, String teamDefName) { + super(parent, "Generate Full Version Report", FrameworkImage.VERSION); + this.teamDefName = teamDefName; + this.teamDef = null; + } + + @Override + public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException { + TeamDefinitionArtifact teamDef = getTeamDefinition(); + if (teamDef == null) { + return; + } + if (!MessageDialog.openConfirm(Displays.getActiveShell(), getName(), getName())) { + return; + } + PublishReportJob job = new PublishReportJob(teamDef); + job.setUser(true); + job.setPriority(Job.LONG); + job.schedule(); + } + + public TeamDefinitionArtifact getTeamDefinition() throws OseeCoreException { + if (teamDef != null) { + return teamDef; + } + if (Strings.isValid(teamDefName)) { + try { + TeamDefinitionArtifact teamDef = + (TeamDefinitionArtifact) AtsCacheManager.getSoleArtifactByName( + ArtifactTypeManager.getType(AtsArtifactTypes.TeamDefinition), teamDefName); + + if (teamDef != null) { + return teamDef; + } + } catch (ArtifactDoesNotExist ex) { + // do nothing, going to get team below + } + } + TeamDefinitionDialog ld = new TeamDefinitionDialog("Select Team", "Select Team"); + try { + ld.setInput(TeamDefinitionArtifact.getTeamReleaseableDefinitions(Active.Active)); + } catch (MultipleAttributesExist ex) { + OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); + } + int result = ld.open(); + if (result == 0) { + return (TeamDefinitionArtifact) ld.getResult()[0]; + } + return null; + } + + private static class PublishReportJob extends Job { + + private final TeamDefinitionArtifact teamDef; + + public PublishReportJob(TeamDefinitionArtifact teamDef) { + super(teamDef.getName() + " as of " + XDate.getDateNow()); + this.teamDef = teamDef; + } + + @Override + public IStatus run(IProgressMonitor monitor) { + try { + String html = VersionReportJob.getFullReleaseReport(teamDef, monitor); + XResultData rd = new XResultData(); + rd.addRaw(html); + rd.report(getName(), Manipulations.RAW_HTML); + } catch (Exception ex) { + return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.toString(), ex); + } + + monitor.done(); + return Status.OK_STATUS; + } + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateGuid.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateGuid.java index 05b4902d3fd..58e95ea716d 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateGuid.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateGuid.java @@ -1,35 +1,35 @@ -/*******************************************************************************
- * 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.navigate;
-
-import org.eclipse.osee.ats.AtsImage;
-import org.eclipse.osee.framework.jdk.core.util.GUID;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
-import org.eclipse.osee.framework.ui.skynet.results.XResultData;
-
-public class GenerateGuid extends XNavigateItemAction {
-
- public GenerateGuid(XNavigateItem parent) {
- super(parent, "Generate Guid", AtsImage.REPORT);
- }
-
- @Override
- public void run(TableLoadOption... tableLoadOptions) throws Exception {
- XResultData resultData = new XResultData();
- for (int x = 0; x < 20; x++) {
- resultData.log(GUID.create());
- }
- resultData.report("GUIDs");
- }
-
-}
+/******************************************************************************* + * 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.navigate; + +import org.eclipse.osee.ats.AtsImage; +import org.eclipse.osee.framework.jdk.core.util.GUID; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; +import org.eclipse.osee.framework.ui.skynet.results.XResultData; + +public class GenerateGuid extends XNavigateItemAction { + + public GenerateGuid(XNavigateItem parent) { + super(parent, "Generate Guid", AtsImage.REPORT); + } + + @Override + public void run(TableLoadOption... tableLoadOptions) throws Exception { + XResultData resultData = new XResultData(); + for (int x = 0; x < 20; x++) { + resultData.log(GUID.create()); + } + resultData.report("GUIDs"); + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateReviewParticipationReport.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateReviewParticipationReport.java index fa6ee755330..9b209257a12 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateReviewParticipationReport.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GenerateReviewParticipationReport.java @@ -1,116 +1,116 @@ -/*******************************************************************************
- * 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.navigate;
-
-import java.util.Collection;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.osee.ats.AtsImage;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.xviewer.column.XViewerReviewRoleColumn;
-import org.eclipse.osee.ats.util.xviewer.column.XViewerSmaCompletedDateColumn;
-import org.eclipse.osee.ats.util.xviewer.column.XViewerSmaStateColumn;
-import org.eclipse.osee.ats.world.WorldXViewerFactory;
-import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem;
-import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem.ReviewState;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.skynet.core.User;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
-import org.eclipse.osee.framework.ui.skynet.artifact.massEditor.MassArtifactEditor;
-import org.eclipse.osee.framework.ui.skynet.artifact.massEditor.MassArtifactEditorInput;
-import org.eclipse.osee.framework.ui.skynet.widgets.XDate;
-import org.eclipse.osee.framework.ui.skynet.widgets.dialog.UserListDialog;
-import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.SkynetXViewerFactory;
-import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.XViewerArtifactNameColumn;
-import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.XViewerArtifactTypeColumn;
-import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.XViewerGuidColumn;
-import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.XViewerHridColumn;
-import org.eclipse.osee.framework.ui.swt.Displays;
-
-/**
- * Donald G. Dunne
- */
-public class GenerateReviewParticipationReport extends XNavigateItemAction {
-
- private static final String MASS_XVIEWER_CUSTOMIZE_NAMESPACE = "org.eclipse.osee.ats.ReviewParticipationReport";
-
- public GenerateReviewParticipationReport(XNavigateItem parent) {
- super(parent, "Generate Review Participation Report", AtsImage.REPORT);
- }
-
- @Override
- public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException {
- UserListDialog ld = new UserListDialog(Displays.getActiveShell());
- int result = ld.open();
- if (result == 0) {
- if (ld.getResult().length == 0) {
- AWorkbench.popup("ERROR", "Must select user");
- return;
- }
- User selectedUser = ld.getSelection();
- ParticipationReportJob job =
- new ParticipationReportJob("Review Participation Report - " + selectedUser, selectedUser);
- job.setUser(true);
- job.setPriority(Job.LONG);
- job.schedule();
- }
- }
-
- private static class ParticipationReportJob extends Job {
-
- private final User user;
-
- public ParticipationReportJob(String title, User user) {
- super(title);
- this.user = user;
- }
-
- @Override
- public IStatus run(IProgressMonitor monitor) {
- try {
- MyReviewWorkflowItem srch = new MyReviewWorkflowItem("", user, ReviewState.All);
- Collection<Artifact> reviewArts = srch.performSearchGetResults();
- MassArtifactEditorInput input =
- new MassArtifactEditorInput(getName() + " as of " + XDate.getDateNow(), reviewArts,
- new ReviewParticipationXViewerFactory(user));
- MassArtifactEditor.editArtifacts(input);
- } catch (Exception ex) {
- return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.toString(), ex);
- }
- monitor.done();
- return Status.OK_STATUS;
- }
- }
-
- public static class ReviewParticipationXViewerFactory extends SkynetXViewerFactory {
-
- public ReviewParticipationXViewerFactory(User user) {
- super(MASS_XVIEWER_CUSTOMIZE_NAMESPACE);
- registerColumns(new XViewerArtifactTypeColumn(true));
- registerColumns(new XViewerHridColumn());
- registerColumns(WorldXViewerFactory.Legacy_PCR_Col);
- registerColumns(new XViewerSmaStateColumn());
- registerColumns(new XViewerSmaCompletedDateColumn("Completed"));
- registerColumns(new XViewerReviewRoleColumn(user));
- registerColumns(WorldXViewerFactory.Related_To_State_Col);
- registerColumns(new XViewerArtifactNameColumn(true));
- registerColumns(new XViewerGuidColumn(true));
- registerAllAttributeColumns();
- }
-
- }
-}
+/******************************************************************************* + * 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.navigate; + +import java.util.Collection; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.osee.ats.AtsImage; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.xviewer.column.XViewerReviewRoleColumn; +import org.eclipse.osee.ats.util.xviewer.column.XViewerSmaCompletedDateColumn; +import org.eclipse.osee.ats.util.xviewer.column.XViewerSmaStateColumn; +import org.eclipse.osee.ats.world.WorldXViewerFactory; +import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem; +import org.eclipse.osee.ats.world.search.MyReviewWorkflowItem.ReviewState; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.skynet.core.User; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; +import org.eclipse.osee.framework.ui.skynet.artifact.massEditor.MassArtifactEditor; +import org.eclipse.osee.framework.ui.skynet.artifact.massEditor.MassArtifactEditorInput; +import org.eclipse.osee.framework.ui.skynet.widgets.XDate; +import org.eclipse.osee.framework.ui.skynet.widgets.dialog.UserListDialog; +import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.SkynetXViewerFactory; +import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.XViewerArtifactNameColumn; +import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.XViewerArtifactTypeColumn; +import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.XViewerGuidColumn; +import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.column.XViewerHridColumn; +import org.eclipse.osee.framework.ui.swt.Displays; + +/** + * Donald G. Dunne + */ +public class GenerateReviewParticipationReport extends XNavigateItemAction { + + private static final String MASS_XVIEWER_CUSTOMIZE_NAMESPACE = "org.eclipse.osee.ats.ReviewParticipationReport"; + + public GenerateReviewParticipationReport(XNavigateItem parent) { + super(parent, "Generate Review Participation Report", AtsImage.REPORT); + } + + @Override + public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException { + UserListDialog ld = new UserListDialog(Displays.getActiveShell()); + int result = ld.open(); + if (result == 0) { + if (ld.getResult().length == 0) { + AWorkbench.popup("ERROR", "Must select user"); + return; + } + User selectedUser = ld.getSelection(); + ParticipationReportJob job = + new ParticipationReportJob("Review Participation Report - " + selectedUser, selectedUser); + job.setUser(true); + job.setPriority(Job.LONG); + job.schedule(); + } + } + + private static class ParticipationReportJob extends Job { + + private final User user; + + public ParticipationReportJob(String title, User user) { + super(title); + this.user = user; + } + + @Override + public IStatus run(IProgressMonitor monitor) { + try { + MyReviewWorkflowItem srch = new MyReviewWorkflowItem("", user, ReviewState.All); + Collection<Artifact> reviewArts = srch.performSearchGetResults(); + MassArtifactEditorInput input = + new MassArtifactEditorInput(getName() + " as of " + XDate.getDateNow(), reviewArts, + new ReviewParticipationXViewerFactory(user)); + MassArtifactEditor.editArtifacts(input); + } catch (Exception ex) { + return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.toString(), ex); + } + monitor.done(); + return Status.OK_STATUS; + } + } + + public static class ReviewParticipationXViewerFactory extends SkynetXViewerFactory { + + public ReviewParticipationXViewerFactory(User user) { + super(MASS_XVIEWER_CUSTOMIZE_NAMESPACE); + registerColumns(new XViewerArtifactTypeColumn(true)); + registerColumns(new XViewerHridColumn()); + registerColumns(WorldXViewerFactory.Legacy_PCR_Col); + registerColumns(new XViewerSmaStateColumn()); + registerColumns(new XViewerSmaCompletedDateColumn("Completed")); + registerColumns(new XViewerReviewRoleColumn(user)); + registerColumns(WorldXViewerFactory.Related_To_State_Col); + registerColumns(new XViewerArtifactNameColumn(true)); + registerColumns(new XViewerGuidColumn(true)); + registerAllAttributeColumns(); + } + + } +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GoalSearchWorkflowSearchItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GoalSearchWorkflowSearchItem.java index e3d33a84ed9..35bea6bba66 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GoalSearchWorkflowSearchItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/GoalSearchWorkflowSearchItem.java @@ -1,192 +1,192 @@ -/*******************************************************************************
- * 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.navigate;
-
-import java.util.Collection;
-import java.util.logging.Level;
-import org.eclipse.osee.ats.AtsImage;
-import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
-import org.eclipse.osee.ats.artifact.VersionArtifact;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.widgets.XHyperlabelTeamDefinitionSelection;
-import org.eclipse.osee.ats.world.WorldEditor;
-import org.eclipse.osee.ats.world.WorldEditorParameterSearchItem;
-import org.eclipse.osee.ats.world.search.GoalSearchItem;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.User;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.ui.plugin.util.Result;
-import org.eclipse.osee.framework.ui.skynet.widgets.XCheckBox;
-import org.eclipse.osee.framework.ui.skynet.widgets.XMembersCombo;
-import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener;
-import org.eclipse.osee.framework.ui.skynet.widgets.XWidget;
-import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayout;
-import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayoutData;
-import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IDynamicWidgetLayoutListener;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Donald G. Dunne
- */
-public class GoalSearchWorkflowSearchItem extends WorldEditorParameterSearchItem {
-
- private XHyperlabelTeamDefinitionSelection teamCombo = null;
- private XMembersCombo assigneeCombo;
- private XCheckBox includeCompletedCancelledCheckbox;
-
- public GoalSearchWorkflowSearchItem(String name) {
- super(name, AtsImage.GOAL);
- }
-
- public GoalSearchWorkflowSearchItem() {
- this("Goal Search");
- }
-
- public GoalSearchWorkflowSearchItem(GoalSearchWorkflowSearchItem goalWorkflowSearchItem) {
- super(goalWorkflowSearchItem, AtsImage.GOAL);
- }
-
- @Override
- public GoalSearchWorkflowSearchItem copy() {
- return new GoalSearchWorkflowSearchItem(this);
- }
-
- @Override
- public GoalSearchWorkflowSearchItem copyProvider() {
- return new GoalSearchWorkflowSearchItem(this);
- }
-
- @Override
- public String getParameterXWidgetXml() {
- return "<xWidgets>" +
- //
- "<XWidget xwidgetType=\"XHyperlabelTeamDefinitionSelection\" displayName=\"Team Definitions(s)\" horizontalLabel=\"true\"/>" +
- //
- "<XWidget xwidgetType=\"XMembersCombo\" displayName=\"Assignee\" horizontalLabel=\"true\"/>" +
- //
- "<XWidget xwidgetType=\"XCheckBox\" displayName=\"Include Completed/Cancelled\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
- //
- "</xWidgets>";
- }
-
- @Override
- public Collection<? extends Artifact> performSearchGetResults(SearchType searchType) throws OseeCoreException {
- return new GoalSearchItem("", getSelectedTeamDefinitions(), isIncludeCompletedCancelledCheckbox(),
- getSelectedUser()).performSearchGetResults(false);
- }
-
- @Override
- public String getSelectedName(SearchType searchType) {
- StringBuffer sb = new StringBuffer();
- Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions();
- if (teamDefs.size() > 0) {
- sb.append(" - Teams: " + org.eclipse.osee.framework.jdk.core.util.Collections.toString(",", teamDefs));
- }
- if (getSelectedUser() != null) {
- sb.append(" - Assignee: " + getSelectedUser());
- }
- if (isIncludeCompletedCancelledCheckbox()) {
- sb.append(" - Include Completed/Cancelled");
- }
- return Strings.truncate("Goals" + sb.toString(), WorldEditor.TITLE_MAX_LENGTH, true);
- }
-
- @Override
- public void widgetCreated(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) {
- if (widget.getLabel().equals("Assignee")) {
- assigneeCombo = (XMembersCombo) widget;
- }
- if (widget.getLabel().equals("Include Completed/Cancelled")) {
- includeCompletedCancelledCheckbox = (XCheckBox) widget;
- }
- if (widget.getLabel().equals("Team Definitions(s)")) {
- teamCombo = (XHyperlabelTeamDefinitionSelection) widget;
- }
- }
-
- private User getSelectedUser() {
- if (assigneeCombo == null) {
- return null;
- }
- return assigneeCombo.getUser();
- }
-
- public void setSelectedUser(User user) {
- if (assigneeCombo != null) {
- assigneeCombo.set(user);
- }
- }
-
- private boolean isIncludeCompletedCancelledCheckbox() {
- if (includeCompletedCancelledCheckbox == null) {
- return false;
- }
- return includeCompletedCancelledCheckbox.isSelected();
- }
-
- public void includeCompletedCancelledCheckbox(boolean selected) {
- if (includeCompletedCancelledCheckbox != null) {
- includeCompletedCancelledCheckbox.set(selected);
- }
- }
-
- public Collection<TeamDefinitionArtifact> getSelectedTeamDefinitions() {
- if (teamCombo == null) {
- return java.util.Collections.emptyList();
- }
- return teamCombo.getSelectedTeamDefintions();
- }
-
- public void setSelectedTeamDefinitions(Collection<TeamDefinitionArtifact> selectedTeamDefs) {
- if (teamCombo != null) {
- teamCombo.setSelectedTeamDefs(selectedTeamDefs);
- teamCombo.notifyXModifiedListeners();
- }
- }
-
- @Override
- public void createXWidgetLayoutData(DynamicXWidgetLayoutData layoutData, XWidget widget, FormToolkit toolkit, Artifact art, XModifiedListener modListener, boolean isEditable) {
- // do nothing
- }
-
- @Override
- public void widgetCreating(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) {
- // do nothing
- }
-
- @Override
- public Result isParameterSelectionValid() {
- try {
- User user = getSelectedUser();
- boolean includeCompleted = isIncludeCompletedCancelledCheckbox();
- if (user != null && includeCompleted) {
- return new Result("Assignee and Include Completed are not compatible selections.");
- }
- return Result.TrueResult;
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- return new Result("Exception: " + ex.getLocalizedMessage());
- }
- }
-
- @Override
- public IDynamicWidgetLayoutListener getDynamicWidgetLayoutListener() {
- return null;
- }
-
- @Override
- public VersionArtifact getTargetedVersionArtifact() {
- return null;
- }
-
-}
+/******************************************************************************* + * 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.navigate; + +import java.util.Collection; +import java.util.logging.Level; +import org.eclipse.osee.ats.AtsImage; +import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; +import org.eclipse.osee.ats.artifact.VersionArtifact; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.widgets.XHyperlabelTeamDefinitionSelection; +import org.eclipse.osee.ats.world.WorldEditor; +import org.eclipse.osee.ats.world.WorldEditorParameterSearchItem; +import org.eclipse.osee.ats.world.search.GoalSearchItem; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.User; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.ui.plugin.util.Result; +import org.eclipse.osee.framework.ui.skynet.widgets.XCheckBox; +import org.eclipse.osee.framework.ui.skynet.widgets.XMembersCombo; +import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener; +import org.eclipse.osee.framework.ui.skynet.widgets.XWidget; +import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayout; +import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayoutData; +import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IDynamicWidgetLayoutListener; +import org.eclipse.ui.forms.widgets.FormToolkit; + +/** + * @author Donald G. Dunne + */ +public class GoalSearchWorkflowSearchItem extends WorldEditorParameterSearchItem { + + private XHyperlabelTeamDefinitionSelection teamCombo = null; + private XMembersCombo assigneeCombo; + private XCheckBox includeCompletedCancelledCheckbox; + + public GoalSearchWorkflowSearchItem(String name) { + super(name, AtsImage.GOAL); + } + + public GoalSearchWorkflowSearchItem() { + this("Goal Search"); + } + + public GoalSearchWorkflowSearchItem(GoalSearchWorkflowSearchItem goalWorkflowSearchItem) { + super(goalWorkflowSearchItem, AtsImage.GOAL); + } + + @Override + public GoalSearchWorkflowSearchItem copy() { + return new GoalSearchWorkflowSearchItem(this); + } + + @Override + public GoalSearchWorkflowSearchItem copyProvider() { + return new GoalSearchWorkflowSearchItem(this); + } + + @Override + public String getParameterXWidgetXml() { + return "<xWidgets>" + + // + "<XWidget xwidgetType=\"XHyperlabelTeamDefinitionSelection\" displayName=\"Team Definitions(s)\" horizontalLabel=\"true\"/>" + + // + "<XWidget xwidgetType=\"XMembersCombo\" displayName=\"Assignee\" horizontalLabel=\"true\"/>" + + // + "<XWidget xwidgetType=\"XCheckBox\" displayName=\"Include Completed/Cancelled\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\"/>" + + // + "</xWidgets>"; + } + + @Override + public Collection<? extends Artifact> performSearchGetResults(SearchType searchType) throws OseeCoreException { + return new GoalSearchItem("", getSelectedTeamDefinitions(), isIncludeCompletedCancelledCheckbox(), + getSelectedUser()).performSearchGetResults(false); + } + + @Override + public String getSelectedName(SearchType searchType) { + StringBuffer sb = new StringBuffer(); + Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions(); + if (teamDefs.size() > 0) { + sb.append(" - Teams: " + org.eclipse.osee.framework.jdk.core.util.Collections.toString(",", teamDefs)); + } + if (getSelectedUser() != null) { + sb.append(" - Assignee: " + getSelectedUser()); + } + if (isIncludeCompletedCancelledCheckbox()) { + sb.append(" - Include Completed/Cancelled"); + } + return Strings.truncate("Goals" + sb.toString(), WorldEditor.TITLE_MAX_LENGTH, true); + } + + @Override + public void widgetCreated(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) { + if (widget.getLabel().equals("Assignee")) { + assigneeCombo = (XMembersCombo) widget; + } + if (widget.getLabel().equals("Include Completed/Cancelled")) { + includeCompletedCancelledCheckbox = (XCheckBox) widget; + } + if (widget.getLabel().equals("Team Definitions(s)")) { + teamCombo = (XHyperlabelTeamDefinitionSelection) widget; + } + } + + private User getSelectedUser() { + if (assigneeCombo == null) { + return null; + } + return assigneeCombo.getUser(); + } + + public void setSelectedUser(User user) { + if (assigneeCombo != null) { + assigneeCombo.set(user); + } + } + + private boolean isIncludeCompletedCancelledCheckbox() { + if (includeCompletedCancelledCheckbox == null) { + return false; + } + return includeCompletedCancelledCheckbox.isSelected(); + } + + public void includeCompletedCancelledCheckbox(boolean selected) { + if (includeCompletedCancelledCheckbox != null) { + includeCompletedCancelledCheckbox.set(selected); + } + } + + public Collection<TeamDefinitionArtifact> getSelectedTeamDefinitions() { + if (teamCombo == null) { + return java.util.Collections.emptyList(); + } + return teamCombo.getSelectedTeamDefintions(); + } + + public void setSelectedTeamDefinitions(Collection<TeamDefinitionArtifact> selectedTeamDefs) { + if (teamCombo != null) { + teamCombo.setSelectedTeamDefs(selectedTeamDefs); + teamCombo.notifyXModifiedListeners(); + } + } + + @Override + public void createXWidgetLayoutData(DynamicXWidgetLayoutData layoutData, XWidget widget, FormToolkit toolkit, Artifact art, XModifiedListener modListener, boolean isEditable) { + // do nothing + } + + @Override + public void widgetCreating(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) { + // do nothing + } + + @Override + public Result isParameterSelectionValid() { + try { + User user = getSelectedUser(); + boolean includeCompleted = isIncludeCompletedCancelledCheckbox(); + if (user != null && includeCompleted) { + return new Result("Assignee and Include Completed are not compatible selections."); + } + return Result.TrueResult; + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + return new Result("Exception: " + ex.getLocalizedMessage()); + } + } + + @Override + public IDynamicWidgetLayoutListener getDynamicWidgetLayoutListener() { + return null; + } + + @Override + public VersionArtifact getTargetedVersionArtifact() { + return null; + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ImportActionsViaSpreadsheet.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ImportActionsViaSpreadsheet.java index c6257009a29..584140bf9ed 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ImportActionsViaSpreadsheet.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ImportActionsViaSpreadsheet.java @@ -25,9 +25,6 @@ public class ImportActionsViaSpreadsheet extends XNavigateItemAction { public static String strs[] = new String[] {}; - /** - * @param parent - */ public ImportActionsViaSpreadsheet(XNavigateItem parent) { super(parent, "Import Actions Via Spreadsheet", FrameworkImage.IMPORT); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/NavigateView.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/NavigateView.java index 7f29dab8591..970efdd09c3 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/NavigateView.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/NavigateView.java @@ -1,304 +1,304 @@ -/*******************************************************************************
- * 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.navigate;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IRegistryEventListener;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.IJobChangeEvent;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.JobChangeAdapter;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osee.ats.actions.MyFavoritesAction;
-import org.eclipse.osee.ats.actions.MyWorldAction;
-import org.eclipse.osee.ats.actions.NewAction;
-import org.eclipse.osee.ats.actions.NewGoal;
-import org.eclipse.osee.ats.actions.OpenChangeReportByIdAction;
-import org.eclipse.osee.ats.actions.OpenWorkflowByIdAction;
-import org.eclipse.osee.ats.actions.OpenWorldByIdAction;
-import org.eclipse.osee.ats.config.AtsBulkLoad;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.AtsUtil;
-import org.eclipse.osee.framework.core.client.ClientSessionManager;
-import org.eclipse.osee.framework.core.operation.CompositeOperation;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.core.operation.Operations;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.plugin.core.IActionable;
-import org.eclipse.osee.framework.skynet.core.UserManager;
-import org.eclipse.osee.framework.ui.plugin.OseeUiActions;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.skynet.OseeContributionItem;
-import org.eclipse.osee.framework.ui.skynet.action.CollapseAllAction;
-import org.eclipse.osee.framework.ui.skynet.action.ExpandAllAction;
-import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationManager;
-import org.eclipse.osee.framework.ui.skynet.util.DbConnectionExceptionComposite;
-import org.eclipse.osee.framework.ui.skynet.util.LoadingComposite;
-import org.eclipse.osee.framework.ui.swt.Displays;
-import org.eclipse.osee.framework.ui.swt.Widgets;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.progress.UIJob;
-
-/**
- * @author Donald G. Dunne
- */
-public class NavigateView extends ViewPart implements IActionable {
-
- public static final String VIEW_ID = "org.eclipse.osee.ats.navigate.NavigateView";
- public static final String HELP_CONTEXT_ID = "atsNavigator";
- private AtsNavigateComposite xNavComp;
- private final boolean includeCompleteCancelled = false;
- private Composite parent;
- private LoadingComposite loadingComposite;
-
- @Override
- public void createPartControl(Composite parent) {
- this.parent = parent;
- loadingComposite = new LoadingComposite(parent);
- refreshData();
- }
-
- public void refreshData() {
- List<IOperation> ops = new ArrayList<IOperation>();
- ops.add(AtsBulkLoad.getConfigLoadingOperation());
- ops.add(new AtsNavigateViewItemsOperation());
+/******************************************************************************* + * 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.navigate; + +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import org.eclipse.core.runtime.IExtension; +import org.eclipse.core.runtime.IExtensionPoint; +import org.eclipse.core.runtime.IExtensionRegistry; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IRegistryEventListener; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.IJobChangeEvent; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.core.runtime.jobs.JobChangeAdapter; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.osee.ats.actions.MyFavoritesAction; +import org.eclipse.osee.ats.actions.MyWorldAction; +import org.eclipse.osee.ats.actions.NewAction; +import org.eclipse.osee.ats.actions.NewGoal; +import org.eclipse.osee.ats.actions.OpenChangeReportByIdAction; +import org.eclipse.osee.ats.actions.OpenWorkflowByIdAction; +import org.eclipse.osee.ats.actions.OpenWorldByIdAction; +import org.eclipse.osee.ats.config.AtsBulkLoad; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.AtsUtil; +import org.eclipse.osee.framework.core.client.ClientSessionManager; +import org.eclipse.osee.framework.core.operation.CompositeOperation; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.operation.Operations; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.plugin.core.IActionable; +import org.eclipse.osee.framework.skynet.core.UserManager; +import org.eclipse.osee.framework.ui.plugin.OseeUiActions; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.skynet.OseeContributionItem; +import org.eclipse.osee.framework.ui.skynet.action.CollapseAllAction; +import org.eclipse.osee.framework.ui.skynet.action.ExpandAllAction; +import org.eclipse.osee.framework.ui.skynet.notify.OseeNotificationManager; +import org.eclipse.osee.framework.ui.skynet.util.DbConnectionExceptionComposite; +import org.eclipse.osee.framework.ui.skynet.util.LoadingComposite; +import org.eclipse.osee.framework.ui.swt.Displays; +import org.eclipse.osee.framework.ui.swt.Widgets; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.DisposeEvent; +import org.eclipse.swt.events.DisposeListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Label; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IMemento; +import org.eclipse.ui.IViewSite; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.part.ViewPart; +import org.eclipse.ui.progress.UIJob; + +/** + * @author Donald G. Dunne + */ +public class NavigateView extends ViewPart implements IActionable { + + public static final String VIEW_ID = "org.eclipse.osee.ats.navigate.NavigateView"; + public static final String HELP_CONTEXT_ID = "atsNavigator"; + private AtsNavigateComposite xNavComp; + private final boolean includeCompleteCancelled = false; + private Composite parent; + private LoadingComposite loadingComposite; + + @Override + public void createPartControl(Composite parent) { + this.parent = parent; + loadingComposite = new LoadingComposite(parent); + refreshData(); + } + + public void refreshData() { + List<IOperation> ops = new ArrayList<IOperation>(); + ops.add(AtsBulkLoad.getConfigLoadingOperation()); + ops.add(new AtsNavigateViewItemsOperation()); IOperation operation = new CompositeOperation("Load ATS Navigator", AtsPlugin.PLUGIN_ID, ops); - Operations.executeAsJob(operation, false, Job.LONG, new ReloadJobChangeAdapter(this));
- }
-
- private final class ReloadJobChangeAdapter extends JobChangeAdapter {
-
- private final NavigateView navView;
-
- private ReloadJobChangeAdapter(NavigateView navView) {
- this.navView = navView;
- }
-
- @Override
- public void scheduled(IJobChangeEvent event) {
- super.scheduled(event);
- }
-
- @Override
- public void aboutToRun(IJobChangeEvent event) {
- super.aboutToRun(event);
- }
-
- @Override
- public void done(IJobChangeEvent event) {
- super.done(event);
- Job job = new UIJob("Load ATS Navigator") {
-
- @Override
- public IStatus runInUIThread(IProgressMonitor monitor) {
- try {
- showBusy(false);
- if (!DbConnectionExceptionComposite.dbConnectionIsOk(parent)) {
- return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, "Navigate View - !dbConnectionIsOk");
- }
-
- if (Widgets.isAccessible(loadingComposite)) {
- loadingComposite.dispose();
- }
- xNavComp = new AtsNavigateComposite(AtsNavigateViewItems.getInstance(), parent, SWT.NONE);
-
- AtsPlugin.getInstance().setHelp(xNavComp, HELP_CONTEXT_ID, "org.eclipse.osee.ats.help.ui");
- createToolBar();
-
- // add search text box
- AtsQuickSearchComposite composite = new AtsQuickSearchComposite(xNavComp, SWT.NONE);
- composite.addDisposeListener(new DisposeListener() {
-
- @Override
- public void widgetDisposed(DisposeEvent e) {
- OseeNotificationManager.getInstance().sendNotifications();
- }
- });
-
- if (savedFilterStr != null) {
- xNavComp.getFilteredTree().getFilterControl().setText(savedFilterStr);
- }
- xNavComp.refresh();
- xNavComp.getFilteredTree().getFilterControl().setFocus();
-
- Label label = new Label(xNavComp, SWT.None);
- String str = getWhoAmI();
- if (AtsUtil.isAtsAdmin()) {
- str += " - Admin";
- }
- if (!str.equals("")) {
- if (AtsUtil.isAtsAdmin()) {
- label.setForeground(Displays.getSystemColor(SWT.COLOR_RED));
- } else {
- label.setForeground(Displays.getSystemColor(SWT.COLOR_BLUE));
- }
- }
- label.setText(str);
- label.setToolTipText(str);
- GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_CENTER);
- gridData.heightHint = 15;
- label.setLayoutData(gridData);
-
- OseeContributionItem.addTo(navView, false);
- xNavComp.layout();
-
- addExtensionPointListenerBecauseOfWorkspaceLoading();
-
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- }
- return Status.OK_STATUS;
- }
- };
- Operations.scheduleJob(job, false, Job.SHORT, null);
- }
- }
-
- private void addExtensionPointListenerBecauseOfWorkspaceLoading() {
- IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
- extensionRegistry.addListener(new IRegistryEventListener() {
- @Override
- public void added(IExtension[] extensions) {
- xNavComp.refresh();
- }
-
- @Override
- public void added(IExtensionPoint[] extensionPoints) {
- xNavComp.refresh();
- }
-
- @Override
- public void removed(IExtension[] extensions) {
- xNavComp.refresh();
- }
-
- @Override
- public void removed(IExtensionPoint[] extensionPoints) {
- xNavComp.refresh();
- }
- }, "org.eclipse.osee.framework.ui.skynet.BlamOperation");
- }
-
- public boolean isIncludeCompleteCancelled() {
- return includeCompleteCancelled;
- }
-
- private String getWhoAmI() {
- try {
- String userName = UserManager.getUser().getName();
- return String.format("%s - %s:%s", userName, ClientSessionManager.getDataStoreName(),
- ClientSessionManager.getDataStoreLoginName());
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- return "Exception: " + ex.getLocalizedMessage();
- }
- }
-
- protected void createToolBar() {
- IToolBarManager toolbarManager = getViewSite().getActionBars().getToolBarManager();
- toolbarManager.add(new MyWorldAction());
- toolbarManager.add(new MyFavoritesAction());
- toolbarManager.add(new CollapseAllAction(xNavComp.getFilteredTree().getViewer()));
- toolbarManager.add(new ExpandAllAction(xNavComp.getFilteredTree().getViewer()));
- toolbarManager.add(new OpenChangeReportByIdAction());
- toolbarManager.add(new OpenWorldByIdAction());
- toolbarManager.add(new OpenWorkflowByIdAction());
- toolbarManager.add(new NewAction());
- getViewSite().getActionBars().updateActionBars();
-
- IActionBars bars = getViewSite().getActionBars();
- IMenuManager mm = bars.getMenuManager();
- mm.add(new NewAction());
- mm.add(new NewGoal());
- mm.add(OseeUiActions.createBugAction(AtsPlugin.getInstance(), this, VIEW_ID, "ATS Navigator"));
-
- toolbarManager.update(true);
- }
-
- public static NavigateView getNavigateView() {
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- try {
- return (NavigateView) page.showView(NavigateView.VIEW_ID);
- } catch (PartInitException e1) {
- MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Launch Error",
- "Couldn't Launch OSEE ATS NavigateView " + e1.getMessage());
- }
- return null;
- }
-
- @Override
- public String getActionDescription() {
- IStructuredSelection sel = (IStructuredSelection) xNavComp.getFilteredTree().getViewer().getSelection();
- if (sel.iterator().hasNext()) {
- return String.format("Currently Selected - %s", ((XNavigateItem) sel.iterator().next()).getName());
- }
- return "";
- }
-
- private static final String INPUT = "filter";
- private static final String FILTER_STR = "filterStr";
-
- @Override
- public void saveState(IMemento memento) {
- super.saveState(memento);
- memento = memento.createChild(INPUT);
-
- if (xNavComp != null && xNavComp.getFilteredTree().getFilterControl() != null && !xNavComp.getFilteredTree().isDisposed()) {
- String filterStr = xNavComp.getFilteredTree().getFilterControl().getText();
- memento.putString(FILTER_STR, filterStr);
- }
- }
- private String savedFilterStr = null;
-
- @Override
- public void init(IViewSite site, IMemento memento) throws PartInitException {
- super.init(site, memento);
- try {
- if (memento != null) {
- memento = memento.getChild(INPUT);
- if (memento != null) {
- savedFilterStr = memento.getString(FILTER_STR);
- }
- }
- } catch (Exception ex) {
+ Operations.executeAsJob(operation, false, Job.LONG, new ReloadJobChangeAdapter(this)); + } + + private final class ReloadJobChangeAdapter extends JobChangeAdapter { + + private final NavigateView navView; + + private ReloadJobChangeAdapter(NavigateView navView) { + this.navView = navView; + } + + @Override + public void scheduled(IJobChangeEvent event) { + super.scheduled(event); + } + + @Override + public void aboutToRun(IJobChangeEvent event) { + super.aboutToRun(event); + } + + @Override + public void done(IJobChangeEvent event) { + super.done(event); + Job job = new UIJob("Load ATS Navigator") { + + @Override + public IStatus runInUIThread(IProgressMonitor monitor) { + try { + showBusy(false); + if (!DbConnectionExceptionComposite.dbConnectionIsOk(parent)) { + return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, "Navigate View - !dbConnectionIsOk"); + } + + if (Widgets.isAccessible(loadingComposite)) { + loadingComposite.dispose(); + } + xNavComp = new AtsNavigateComposite(AtsNavigateViewItems.getInstance(), parent, SWT.NONE); + + AtsPlugin.getInstance().setHelp(xNavComp, HELP_CONTEXT_ID, "org.eclipse.osee.ats.help.ui"); + createToolBar(); + + // add search text box + AtsQuickSearchComposite composite = new AtsQuickSearchComposite(xNavComp, SWT.NONE); + composite.addDisposeListener(new DisposeListener() { + + @Override + public void widgetDisposed(DisposeEvent e) { + OseeNotificationManager.getInstance().sendNotifications(); + } + }); + + if (savedFilterStr != null) { + xNavComp.getFilteredTree().getFilterControl().setText(savedFilterStr); + } + xNavComp.refresh(); + xNavComp.getFilteredTree().getFilterControl().setFocus(); + + Label label = new Label(xNavComp, SWT.None); + String str = getWhoAmI(); + if (AtsUtil.isAtsAdmin()) { + str += " - Admin"; + } + if (!str.equals("")) { + if (AtsUtil.isAtsAdmin()) { + label.setForeground(Displays.getSystemColor(SWT.COLOR_RED)); + } else { + label.setForeground(Displays.getSystemColor(SWT.COLOR_BLUE)); + } + } + label.setText(str); + label.setToolTipText(str); + GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_CENTER | GridData.VERTICAL_ALIGN_CENTER); + gridData.heightHint = 15; + label.setLayoutData(gridData); + + OseeContributionItem.addTo(navView, false); + xNavComp.layout(); + + addExtensionPointListenerBecauseOfWorkspaceLoading(); + + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + } + return Status.OK_STATUS; + } + }; + Operations.scheduleJob(job, false, Job.SHORT, null); + } + } + + private void addExtensionPointListenerBecauseOfWorkspaceLoading() { + IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry(); + extensionRegistry.addListener(new IRegistryEventListener() { + @Override + public void added(IExtension[] extensions) { + xNavComp.refresh(); + } + + @Override + public void added(IExtensionPoint[] extensionPoints) { + xNavComp.refresh(); + } + + @Override + public void removed(IExtension[] extensions) { + xNavComp.refresh(); + } + + @Override + public void removed(IExtensionPoint[] extensionPoints) { + xNavComp.refresh(); + } + }, "org.eclipse.osee.framework.ui.skynet.BlamOperation"); + } + + public boolean isIncludeCompleteCancelled() { + return includeCompleteCancelled; + } + + private String getWhoAmI() { + try { + String userName = UserManager.getUser().getName(); + return String.format("%s - %s:%s", userName, ClientSessionManager.getDataStoreName(), + ClientSessionManager.getDataStoreLoginName()); + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + return "Exception: " + ex.getLocalizedMessage(); + } + } + + protected void createToolBar() { + IToolBarManager toolbarManager = getViewSite().getActionBars().getToolBarManager(); + toolbarManager.add(new MyWorldAction()); + toolbarManager.add(new MyFavoritesAction()); + toolbarManager.add(new CollapseAllAction(xNavComp.getFilteredTree().getViewer())); + toolbarManager.add(new ExpandAllAction(xNavComp.getFilteredTree().getViewer())); + toolbarManager.add(new OpenChangeReportByIdAction()); + toolbarManager.add(new OpenWorldByIdAction()); + toolbarManager.add(new OpenWorkflowByIdAction()); + toolbarManager.add(new NewAction()); + getViewSite().getActionBars().updateActionBars(); + + IActionBars bars = getViewSite().getActionBars(); + IMenuManager mm = bars.getMenuManager(); + mm.add(new NewAction()); + mm.add(new NewGoal()); + mm.add(OseeUiActions.createBugAction(AtsPlugin.getInstance(), this, VIEW_ID, "ATS Navigator")); + + toolbarManager.update(true); + } + + public static NavigateView getNavigateView() { + IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + try { + return (NavigateView) page.showView(NavigateView.VIEW_ID); + } catch (PartInitException e1) { + MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), "Launch Error", + "Couldn't Launch OSEE ATS NavigateView " + e1.getMessage()); + } + return null; + } + + @Override + public String getActionDescription() { + IStructuredSelection sel = (IStructuredSelection) xNavComp.getFilteredTree().getViewer().getSelection(); + if (sel.iterator().hasNext()) { + return String.format("Currently Selected - %s", ((XNavigateItem) sel.iterator().next()).getName()); + } + return ""; + } + + private static final String INPUT = "filter"; + private static final String FILTER_STR = "filterStr"; + + @Override + public void saveState(IMemento memento) { + super.saveState(memento); + memento = memento.createChild(INPUT); + + if (xNavComp != null && xNavComp.getFilteredTree().getFilterControl() != null && !xNavComp.getFilteredTree().isDisposed()) { + String filterStr = xNavComp.getFilteredTree().getFilterControl().getText(); + memento.putString(FILTER_STR, filterStr); + } + } + private String savedFilterStr = null; + + @Override + public void init(IViewSite site, IMemento memento) throws PartInitException { + super.init(site, memento); + try { + if (memento != null) { + memento = memento.getChild(INPUT); + if (memento != null) { + savedFilterStr = memento.getString(FILTER_STR); + } + } + } catch (Exception ex) { OseeLog.log(AtsPlugin.class, Level.WARNING, "NavigateView error on init", ex); - }
- }
-
- @Override
- public void setFocus() {
- // do nothing
- }
-
+ } + } + + @Override + public void setFocus() { + // do nothing + } + }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/NewPeerToPeerReviewItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/NewPeerToPeerReviewItem.java index 51e43089fb7..67458917ddc 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/NewPeerToPeerReviewItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/NewPeerToPeerReviewItem.java @@ -34,9 +34,6 @@ import org.eclipse.osee.framework.ui.skynet.widgets.dialog.EntryDialog; */ public class NewPeerToPeerReviewItem extends XNavigateItemAction { - /** - * @param parent - */ public NewPeerToPeerReviewItem(XNavigateItem parent) { super(parent, "New Stand-alone Peer To Peer Review", AtsImage.REVIEW); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/PublishFullVersionReportItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/PublishFullVersionReportItem.java index 3ded2b6fa3b..8f2d079dcac 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/PublishFullVersionReportItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/PublishFullVersionReportItem.java @@ -1,134 +1,134 @@ -/*******************************************************************************
- * 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.navigate;
-
-import java.io.File;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
-import org.eclipse.osee.ats.config.AtsCacheManager;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.AtsArtifactTypes;
-import org.eclipse.osee.ats.util.VersionReportJob;
-import org.eclipse.osee.ats.util.widgets.dialog.TeamDefinitionDialog;
-import org.eclipse.osee.framework.core.enums.Active;
-import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager;
-import org.eclipse.osee.framework.ui.plugin.util.AWorkbench;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem;
-import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction;
-import org.eclipse.osee.framework.ui.swt.Displays;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.program.Program;
-import org.eclipse.swt.widgets.FileDialog;
-
-/**
- * @author Donald G. Dunne
- */
-public class PublishFullVersionReportItem extends XNavigateItemAction {
-
- private final TeamDefinitionArtifact teamDef;
- private final String publishToFilename;
- private final String teamDefName;
-
- public PublishFullVersionReportItem(XNavigateItem parent, String name, TeamDefinitionArtifact teamDef, String publishToFilename) {
- super(parent, name);
- this.teamDef = teamDef;
- this.teamDefName = null;
- this.publishToFilename = publishToFilename;
- }
-
- public PublishFullVersionReportItem(XNavigateItem parent, String name, String teamDefName, String publishToFilename) {
- super(parent, name);
- this.teamDefName = teamDefName;
- this.teamDef = null;
- this.publishToFilename = publishToFilename;
- }
-
- public PublishFullVersionReportItem(XNavigateItem parent) {
- this(parent, "Publish Full Version Report", (String) null, null);
- }
-
- @Override
- public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException {
- String usePublishToFilename = publishToFilename;
- if (usePublishToFilename == null) {
- final FileDialog dialog = new FileDialog(Displays.getActiveShell().getShell(), SWT.SAVE);
- dialog.setFilterExtensions(new String[] {"*.html"});
- usePublishToFilename = dialog.open();
- if (usePublishToFilename == null) {
- return;
- }
- }
- TeamDefinitionArtifact useTeamDef = teamDef;
- if (useTeamDef == null && teamDefName != null) {
- try {
- useTeamDef =
- (TeamDefinitionArtifact) AtsCacheManager.getSoleArtifactByName(
- ArtifactTypeManager.getType(AtsArtifactTypes.TeamDefinition), teamDefName);
- } catch (ArtifactDoesNotExist ex) {
- // do nothing, going to get team below
- }
- }
- if (useTeamDef == null) {
- TeamDefinitionDialog ld = new TeamDefinitionDialog("Select Team", "Select Team");
- ld.setInput(TeamDefinitionArtifact.getTeamDefinitions(Active.Both));
- int result = ld.open();
- if (result == 0) {
- useTeamDef = (TeamDefinitionArtifact) ld.getResult()[0];
- } else {
- return;
- }
- } else if (!MessageDialog.openConfirm(Displays.getActiveShell(), getName(), getName())) {
- return;
- }
-
- String title = useTeamDef.getName() + " Version Report";
- PublishReportJob job = new PublishReportJob(title, teamDef, usePublishToFilename);
- job.setUser(true);
- job.setPriority(Job.LONG);
- job.schedule();
- }
-
- private static class PublishReportJob extends Job {
-
- private final TeamDefinitionArtifact teamDef;
- private final String filename;
-
- public PublishReportJob(String title, TeamDefinitionArtifact teamDef, String filename) {
- super(title);
- this.teamDef = teamDef;
- this.filename = filename;
- }
-
- @Override
- public IStatus run(IProgressMonitor monitor) {
- try {
- String html = VersionReportJob.getFullReleaseReport(teamDef, monitor);
- Lib.writeStringToFile(html, new File(filename));
- Program.launch(filename);
- AWorkbench.popup("Publish Complete", "Data Published To \"" + filename + "\"");
- } catch (Exception ex) {
- return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.toString(), ex);
- }
-
- monitor.done();
- return Status.OK_STATUS;
- }
- }
-
-}
+/******************************************************************************* + * 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.navigate; + +import java.io.File; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; +import org.eclipse.osee.ats.config.AtsCacheManager; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.AtsArtifactTypes; +import org.eclipse.osee.ats.util.VersionReportJob; +import org.eclipse.osee.ats.util.widgets.dialog.TeamDefinitionDialog; +import org.eclipse.osee.framework.core.enums.Active; +import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.skynet.core.artifact.ArtifactTypeManager; +import org.eclipse.osee.framework.ui.plugin.util.AWorkbench; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateComposite.TableLoadOption; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItem; +import org.eclipse.osee.framework.ui.plugin.xnavigate.XNavigateItemAction; +import org.eclipse.osee.framework.ui.swt.Displays; +import org.eclipse.swt.SWT; +import org.eclipse.swt.program.Program; +import org.eclipse.swt.widgets.FileDialog; + +/** + * @author Donald G. Dunne + */ +public class PublishFullVersionReportItem extends XNavigateItemAction { + + private final TeamDefinitionArtifact teamDef; + private final String publishToFilename; + private final String teamDefName; + + public PublishFullVersionReportItem(XNavigateItem parent, String name, TeamDefinitionArtifact teamDef, String publishToFilename) { + super(parent, name); + this.teamDef = teamDef; + this.teamDefName = null; + this.publishToFilename = publishToFilename; + } + + public PublishFullVersionReportItem(XNavigateItem parent, String name, String teamDefName, String publishToFilename) { + super(parent, name); + this.teamDefName = teamDefName; + this.teamDef = null; + this.publishToFilename = publishToFilename; + } + + public PublishFullVersionReportItem(XNavigateItem parent) { + this(parent, "Publish Full Version Report", (String) null, null); + } + + @Override + public void run(TableLoadOption... tableLoadOptions) throws OseeCoreException { + String usePublishToFilename = publishToFilename; + if (usePublishToFilename == null) { + final FileDialog dialog = new FileDialog(Displays.getActiveShell().getShell(), SWT.SAVE); + dialog.setFilterExtensions(new String[] {"*.html"}); + usePublishToFilename = dialog.open(); + if (usePublishToFilename == null) { + return; + } + } + TeamDefinitionArtifact useTeamDef = teamDef; + if (useTeamDef == null && teamDefName != null) { + try { + useTeamDef = + (TeamDefinitionArtifact) AtsCacheManager.getSoleArtifactByName( + ArtifactTypeManager.getType(AtsArtifactTypes.TeamDefinition), teamDefName); + } catch (ArtifactDoesNotExist ex) { + // do nothing, going to get team below + } + } + if (useTeamDef == null) { + TeamDefinitionDialog ld = new TeamDefinitionDialog("Select Team", "Select Team"); + ld.setInput(TeamDefinitionArtifact.getTeamDefinitions(Active.Both)); + int result = ld.open(); + if (result == 0) { + useTeamDef = (TeamDefinitionArtifact) ld.getResult()[0]; + } else { + return; + } + } else if (!MessageDialog.openConfirm(Displays.getActiveShell(), getName(), getName())) { + return; + } + + String title = useTeamDef.getName() + " Version Report"; + PublishReportJob job = new PublishReportJob(title, teamDef, usePublishToFilename); + job.setUser(true); + job.setPriority(Job.LONG); + job.schedule(); + } + + private static class PublishReportJob extends Job { + + private final TeamDefinitionArtifact teamDef; + private final String filename; + + public PublishReportJob(String title, TeamDefinitionArtifact teamDef, String filename) { + super(title); + this.teamDef = teamDef; + this.filename = filename; + } + + @Override + public IStatus run(IProgressMonitor monitor) { + try { + String html = VersionReportJob.getFullReleaseReport(teamDef, monitor); + Lib.writeStringToFile(html, new File(filename)); + Program.launch(filename); + AWorkbench.popup("Publish Complete", "Data Published To \"" + filename + "\""); + } catch (Exception ex) { + return new Status(IStatus.ERROR, AtsPlugin.PLUGIN_ID, -1, ex.toString(), ex); + } + + monitor.done(); + return Status.OK_STATUS; + } + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ReleaseVersionItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ReleaseVersionItem.java index dc0eab620e6..b53ee3d4c1f 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ReleaseVersionItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/ReleaseVersionItem.java @@ -43,7 +43,6 @@ public class ReleaseVersionItem extends XNavigateItemAction { private final TeamDefinitionArtifact teamDefHoldingVersions; /** - * @param parent * @param teamDefHoldingVersions Team Definition Artifact that is related to versions or null for popup selection */ public ReleaseVersionItem(XNavigateItem parent, TeamDefinitionArtifact teamDefHoldingVersions) { diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/TeamWorkflowSearchWorkflowSearchItem.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/TeamWorkflowSearchWorkflowSearchItem.java index b11f540299a..174911d48de 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/TeamWorkflowSearchWorkflowSearchItem.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/TeamWorkflowSearchWorkflowSearchItem.java @@ -1,358 +1,358 @@ -/*******************************************************************************
- * 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.navigate;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.logging.Level;
-import org.eclipse.osee.ats.AtsImage;
-import org.eclipse.osee.ats.artifact.TaskableStateMachineArtifact;
-import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
-import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact;
-import org.eclipse.osee.ats.artifact.VersionArtifact;
-import org.eclipse.osee.ats.artifact.VersionArtifact.VersionReleaseType;
-import org.eclipse.osee.ats.internal.AtsPlugin;
-import org.eclipse.osee.ats.util.widgets.ReviewManager;
-import org.eclipse.osee.ats.util.widgets.XHyperlabelTeamDefinitionSelection;
-import org.eclipse.osee.ats.world.WorldEditor;
-import org.eclipse.osee.ats.world.WorldEditorParameterSearchItem;
-import org.eclipse.osee.ats.world.search.TeamWorldSearchItem;
-import org.eclipse.osee.ats.world.search.TeamWorldSearchItem.ReleasedOption;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLevel;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.skynet.core.User;
-import org.eclipse.osee.framework.skynet.core.artifact.Artifact;
-import org.eclipse.osee.framework.skynet.core.utility.Artifacts;
-import org.eclipse.osee.framework.ui.plugin.util.Result;
-import org.eclipse.osee.framework.ui.skynet.widgets.XCheckBox;
-import org.eclipse.osee.framework.ui.skynet.widgets.XCombo;
-import org.eclipse.osee.framework.ui.skynet.widgets.XMembersCombo;
-import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener;
-import org.eclipse.osee.framework.ui.skynet.widgets.XWidget;
-import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayout;
-import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayoutData;
-import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IDynamicWidgetLayoutListener;
-import org.eclipse.ui.forms.widgets.FormToolkit;
-
-/**
- * @author Donald G. Dunne
- */
-public class TeamWorkflowSearchWorkflowSearchItem extends WorldEditorParameterSearchItem {
-
- protected XHyperlabelTeamDefinitionSelection teamCombo = null;
- protected XCombo releasedCombo = null;
- protected XCombo versionCombo = null;
- protected XMembersCombo assigneeCombo;
- protected XCheckBox includeCompletedCancelledCheckbox;
- protected XCheckBox showFlatCheckbox;
-
- public TeamWorkflowSearchWorkflowSearchItem(String name) {
- super(name, AtsImage.TEAM_WORKFLOW);
- }
-
- public TeamWorkflowSearchWorkflowSearchItem() {
- this("Team Workflow Search");
- }
-
- public TeamWorkflowSearchWorkflowSearchItem(TeamWorkflowSearchWorkflowSearchItem editTeamWorkflowSearchItem) {
- super(editTeamWorkflowSearchItem, AtsImage.TEAM_WORKFLOW);
- }
-
- @Override
- public TeamWorkflowSearchWorkflowSearchItem copy() {
- return new TeamWorkflowSearchWorkflowSearchItem(this);
- }
-
- @Override
- public TeamWorkflowSearchWorkflowSearchItem copyProvider() {
- return new TeamWorkflowSearchWorkflowSearchItem(this);
- }
-
- @SuppressWarnings("unused")
- @Override
- public String getParameterXWidgetXml() throws OseeCoreException {
- return "<xWidgets>" +
- //
- "<XWidget xwidgetType=\"XHyperlabelTeamDefinitionSelection\" displayName=\"Team Definitions(s)\" horizontalLabel=\"true\"/>" +
- //
- "<XWidget xwidgetType=\"XCombo()\" beginComposite=\"10\" displayName=\"Version\" horizontalLabel=\"true\"/>" +
- //
- "<XWidget xwidgetType=\"XCombo(Both,Released,UnReleased)\" displayName=\"Released\" horizontalLabel=\"true\"/>" +
- //
- "<XWidget xwidgetType=\"XMembersCombo\" displayName=\"Assignee\" horizontalLabel=\"true\"/>" +
- //
- "<XWidget xwidgetType=\"XCheckBox\" displayName=\"Include Completed/Cancelled\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\"/>" +
- //
- "<XWidget xwidgetType=\"XCheckBox\" displayName=\"Show Flat\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\" toolTip=\"Show Tasks/Reviews flattened instead of hierarchcial\"/>" +
- //
- "</xWidgets>";
- }
-
- @Override
- public Collection<? extends Artifact> performSearchGetResults(SearchType searchType) throws OseeCoreException {
- Collection<Artifact> artifacts =
- new TeamWorldSearchItem("", getSelectedTeamDefinitions(), isIncludeCompletedCancelledCheckbox(), false, false,
- getSelectedVersionArtifact(), getSelectedUser(), getSelectedReleased()).performSearchGetResults(false);
- return filterShowFlat(artifacts);
- }
-
- protected Collection<? extends Artifact> filterShowFlat(Collection<Artifact> artifacts) throws OseeCoreException {
- if (!isShowFlatCheckbox()) {
- return artifacts;
- }
- Set<Artifact> results = new HashSet<Artifact>(artifacts);
- for (Artifact artifact : artifacts) {
- if (artifact instanceof TaskableStateMachineArtifact) {
- results.addAll(((TaskableStateMachineArtifact) artifact).getTaskArtifacts());
- }
- if (artifact instanceof TeamWorkFlowArtifact) {
- results.addAll(ReviewManager.getReviews((TeamWorkFlowArtifact) artifact));
- }
- }
- return results;
- }
-
- @Override
- public String getSelectedName(SearchType searchType) throws OseeCoreException {
- StringBuffer sb = new StringBuffer();
- Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions();
- if (teamDefs.size() > 0) {
- sb.append(" - Teams: " + org.eclipse.osee.framework.jdk.core.util.Collections.toString(",", teamDefs));
- }
- if (getSelectedVersionArtifact() != null) {
- sb.append(" - Version: " + getSelectedVersionArtifact());
- }
- ReleasedOption releaseOption = getSelectedReleased();
- if (releaseOption != null && releaseOption != ReleasedOption.Both) {
- sb.append(" - ReleasedOption: " + releaseOption);
- }
- if (getSelectedUser() != null) {
- sb.append(" - Assignee: " + getSelectedUser());
- }
- if (isIncludeCompletedCancelledCheckbox()) {
- sb.append(" - Include Completed/Cancelled");
- }
- return Strings.truncate(getName() + sb.toString(), WorldEditor.TITLE_MAX_LENGTH, true);
- }
-
- @SuppressWarnings("unused")
- @Override
- public void widgetCreated(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) throws OseeCoreException {
- if (widget.getLabel().equals("Assignee")) {
- assigneeCombo = (XMembersCombo) widget;
- }
- if (widget.getLabel().equals("Include Completed/Cancelled")) {
- includeCompletedCancelledCheckbox = (XCheckBox) widget;
- }
- if (widget.getLabel().equals("Show Flat")) {
- showFlatCheckbox = (XCheckBox) widget;
- }
- if (widget.getLabel().equals("Version")) {
- versionCombo = (XCombo) widget;
- versionCombo.getComboBox().setVisibleItemCount(25);
- widget.setToolTip("Select Team to populate Version list");
- }
- if (widget.getLabel().equals("Released")) {
- releasedCombo = (XCombo) widget;
- }
- if (widget.getLabel().equals("Team Definitions(s)")) {
- teamCombo = (XHyperlabelTeamDefinitionSelection) widget;
- teamCombo.addXModifiedListener(new XModifiedListener() {
- @Override
- public void widgetModified(XWidget widget) {
- if (versionCombo != null) {
- try {
- Collection<TeamDefinitionArtifact> teamDefArts = getSelectedTeamDefinitions();
- if (teamDefArts.isEmpty()) {
- versionCombo.setDataStrings(new String[] {});
- return;
- }
- TeamDefinitionArtifact teamDefHoldingVersions =
- teamDefArts.iterator().next().getTeamDefinitionHoldingVersions();
- if (teamDefHoldingVersions == null) {
- versionCombo.setDataStrings(new String[] {});
- return;
- }
- Collection<String> names =
- Artifacts.artNames(teamDefHoldingVersions.getVersionsArtifacts(VersionReleaseType.Both));
- if (names.isEmpty()) {
- versionCombo.setDataStrings(new String[] {});
- return;
- }
- versionCombo.setDataStrings(names.toArray(new String[names.size()]));
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex);
- }
- }
- }
- });
- }
- }
-
- protected User getSelectedUser() {
- if (assigneeCombo == null) {
- return null;
- }
- return assigneeCombo.getUser();
- }
-
- public void setSelectedUser(User user) {
- if (assigneeCombo != null) {
- assigneeCombo.set(user);
- }
- }
-
- protected boolean isIncludeCompletedCancelledCheckbox() {
- if (includeCompletedCancelledCheckbox == null) {
- return false;
- }
- return includeCompletedCancelledCheckbox.isSelected();
- }
-
- public void includeCompletedCancelledCheckbox(boolean selected) {
- if (includeCompletedCancelledCheckbox != null) {
- includeCompletedCancelledCheckbox.set(selected);
- }
- }
-
- protected boolean isShowFlatCheckbox() {
- if (showFlatCheckbox == null) {
- return false;
- }
- return showFlatCheckbox.isSelected();
- }
-
- public void includeShowFlatCheckbox(boolean selected) {
- if (showFlatCheckbox != null) {
- showFlatCheckbox.set(selected);
- }
- }
-
- protected VersionArtifact getSelectedVersionArtifact() throws OseeCoreException {
- if (versionCombo == null) {
- return null;
- }
- String versionStr = versionCombo.get();
- if (!Strings.isValid(versionStr)) {
- return null;
- }
- Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions();
- if (teamDefs.size() > 0) {
- TeamDefinitionArtifact teamDefHoldingVersions = teamDefs.iterator().next().getTeamDefinitionHoldingVersions();
- if (teamDefHoldingVersions == null) {
- return null;
- }
- for (VersionArtifact versionArtifact : teamDefHoldingVersions.getVersionsArtifacts(VersionReleaseType.Both)) {
- if (versionArtifact.getName().equals(versionStr)) {
- return versionArtifact;
- }
- }
- }
- return null;
- }
-
- public void setVersion(String versionStr) {
- if (versionCombo != null && versionCombo.getInDataStrings() != null) {
- // should check if the version combo was populated
- if (versionCombo.getInDataStrings().length > 0) {
- versionCombo.set(versionStr);
- }
- }
- }
-
- public Collection<TeamDefinitionArtifact> getSelectedTeamDefinitions() {
- if (teamCombo == null) {
- return java.util.Collections.emptyList();
- }
- return teamCombo.getSelectedTeamDefintions();
- }
-
- public void setSelectedTeamDefinitions(Collection<TeamDefinitionArtifact> selectedTeamDefs) {
- if (teamCombo != null) {
- teamCombo.setSelectedTeamDefs(selectedTeamDefs);
- teamCombo.notifyXModifiedListeners();
- }
- }
-
- protected ReleasedOption getSelectedReleased() {
- if (releasedCombo == null || !Strings.isValid(releasedCombo.get())) {
- return ReleasedOption.Both;
- }
- return ReleasedOption.valueOf(releasedCombo.get());
- }
-
- public void setSelectedReleased(ReleasedOption option) {
- if (releasedCombo != null) {
- releasedCombo.set(option.toString());
- }
- }
-
- @Override
- public void createXWidgetLayoutData(DynamicXWidgetLayoutData layoutData, XWidget widget, FormToolkit toolkit, Artifact art, XModifiedListener modListener, boolean isEditable) {
- // do nothing
- }
-
- @Override
- public void widgetCreating(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) {
- // do nothing
- }
-
- @SuppressWarnings("unused")
- @Override
- public Result isParameterSelectionValid() throws OseeCoreException {
- try {
- boolean selected = false;
- Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions();
- if (teamDefs.size() > 0) {
- selected = true;
- }
- VersionArtifact verArt = getSelectedVersionArtifact();
- if (verArt != null) {
- selected = true;
- }
- User user = getSelectedUser();
- if (user != null) {
- selected = true;
- }
- boolean includeCompleted = isIncludeCompletedCancelledCheckbox();
- if (!selected) {
- return new Result("You must select at least Team, Version or Assignee.");
- }
- if (user != null && includeCompleted) {
- return new Result("Assignee and Include Completed are not compatible selections.");
- }
- if (user != null && includeCompleted && verArt == null && teamDefs.isEmpty()) {
- return new Result("You must select at least Team or Version with Include Completed.");
- }
- return Result.TrueResult;
- } catch (Exception ex) {
- OseeLog.log(AtsPlugin.class, Level.SEVERE, ex);
- return new Result("Exception: " + ex.getLocalizedMessage());
- }
- }
-
- @Override
- public IDynamicWidgetLayoutListener getDynamicWidgetLayoutListener() {
- return null;
- }
-
- @Override
- public VersionArtifact getTargetedVersionArtifact() throws OseeCoreException {
- if (versionCombo == null) {
- return null;
- }
- return getSelectedVersionArtifact();
- }
-
-}
+/******************************************************************************* + * 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.navigate; + +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; +import java.util.logging.Level; +import org.eclipse.osee.ats.AtsImage; +import org.eclipse.osee.ats.artifact.TaskableStateMachineArtifact; +import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact; +import org.eclipse.osee.ats.artifact.TeamWorkFlowArtifact; +import org.eclipse.osee.ats.artifact.VersionArtifact; +import org.eclipse.osee.ats.artifact.VersionArtifact.VersionReleaseType; +import org.eclipse.osee.ats.internal.AtsPlugin; +import org.eclipse.osee.ats.util.widgets.ReviewManager; +import org.eclipse.osee.ats.util.widgets.XHyperlabelTeamDefinitionSelection; +import org.eclipse.osee.ats.world.WorldEditor; +import org.eclipse.osee.ats.world.WorldEditorParameterSearchItem; +import org.eclipse.osee.ats.world.search.TeamWorldSearchItem; +import org.eclipse.osee.ats.world.search.TeamWorldSearchItem.ReleasedOption; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLevel; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.skynet.core.User; +import org.eclipse.osee.framework.skynet.core.artifact.Artifact; +import org.eclipse.osee.framework.skynet.core.utility.Artifacts; +import org.eclipse.osee.framework.ui.plugin.util.Result; +import org.eclipse.osee.framework.ui.skynet.widgets.XCheckBox; +import org.eclipse.osee.framework.ui.skynet.widgets.XCombo; +import org.eclipse.osee.framework.ui.skynet.widgets.XMembersCombo; +import org.eclipse.osee.framework.ui.skynet.widgets.XModifiedListener; +import org.eclipse.osee.framework.ui.skynet.widgets.XWidget; +import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayout; +import org.eclipse.osee.framework.ui.skynet.widgets.workflow.DynamicXWidgetLayoutData; +import org.eclipse.osee.framework.ui.skynet.widgets.workflow.IDynamicWidgetLayoutListener; +import org.eclipse.ui.forms.widgets.FormToolkit; + +/** + * @author Donald G. Dunne + */ +public class TeamWorkflowSearchWorkflowSearchItem extends WorldEditorParameterSearchItem { + + protected XHyperlabelTeamDefinitionSelection teamCombo = null; + protected XCombo releasedCombo = null; + protected XCombo versionCombo = null; + protected XMembersCombo assigneeCombo; + protected XCheckBox includeCompletedCancelledCheckbox; + protected XCheckBox showFlatCheckbox; + + public TeamWorkflowSearchWorkflowSearchItem(String name) { + super(name, AtsImage.TEAM_WORKFLOW); + } + + public TeamWorkflowSearchWorkflowSearchItem() { + this("Team Workflow Search"); + } + + public TeamWorkflowSearchWorkflowSearchItem(TeamWorkflowSearchWorkflowSearchItem editTeamWorkflowSearchItem) { + super(editTeamWorkflowSearchItem, AtsImage.TEAM_WORKFLOW); + } + + @Override + public TeamWorkflowSearchWorkflowSearchItem copy() { + return new TeamWorkflowSearchWorkflowSearchItem(this); + } + + @Override + public TeamWorkflowSearchWorkflowSearchItem copyProvider() { + return new TeamWorkflowSearchWorkflowSearchItem(this); + } + + @SuppressWarnings("unused") + @Override + public String getParameterXWidgetXml() throws OseeCoreException { + return "<xWidgets>" + + // + "<XWidget xwidgetType=\"XHyperlabelTeamDefinitionSelection\" displayName=\"Team Definitions(s)\" horizontalLabel=\"true\"/>" + + // + "<XWidget xwidgetType=\"XCombo()\" beginComposite=\"10\" displayName=\"Version\" horizontalLabel=\"true\"/>" + + // + "<XWidget xwidgetType=\"XCombo(Both,Released,UnReleased)\" displayName=\"Released\" horizontalLabel=\"true\"/>" + + // + "<XWidget xwidgetType=\"XMembersCombo\" displayName=\"Assignee\" horizontalLabel=\"true\"/>" + + // + "<XWidget xwidgetType=\"XCheckBox\" displayName=\"Include Completed/Cancelled\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\"/>" + + // + "<XWidget xwidgetType=\"XCheckBox\" displayName=\"Show Flat\" defaultValue=\"false\" labelAfter=\"true\" horizontalLabel=\"true\" toolTip=\"Show Tasks/Reviews flattened instead of hierarchcial\"/>" + + // + "</xWidgets>"; + } + + @Override + public Collection<? extends Artifact> performSearchGetResults(SearchType searchType) throws OseeCoreException { + Collection<Artifact> artifacts = + new TeamWorldSearchItem("", getSelectedTeamDefinitions(), isIncludeCompletedCancelledCheckbox(), false, false, + getSelectedVersionArtifact(), getSelectedUser(), getSelectedReleased()).performSearchGetResults(false); + return filterShowFlat(artifacts); + } + + protected Collection<? extends Artifact> filterShowFlat(Collection<Artifact> artifacts) throws OseeCoreException { + if (!isShowFlatCheckbox()) { + return artifacts; + } + Set<Artifact> results = new HashSet<Artifact>(artifacts); + for (Artifact artifact : artifacts) { + if (artifact instanceof TaskableStateMachineArtifact) { + results.addAll(((TaskableStateMachineArtifact) artifact).getTaskArtifacts()); + } + if (artifact instanceof TeamWorkFlowArtifact) { + results.addAll(ReviewManager.getReviews((TeamWorkFlowArtifact) artifact)); + } + } + return results; + } + + @Override + public String getSelectedName(SearchType searchType) throws OseeCoreException { + StringBuffer sb = new StringBuffer(); + Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions(); + if (teamDefs.size() > 0) { + sb.append(" - Teams: " + org.eclipse.osee.framework.jdk.core.util.Collections.toString(",", teamDefs)); + } + if (getSelectedVersionArtifact() != null) { + sb.append(" - Version: " + getSelectedVersionArtifact()); + } + ReleasedOption releaseOption = getSelectedReleased(); + if (releaseOption != null && releaseOption != ReleasedOption.Both) { + sb.append(" - ReleasedOption: " + releaseOption); + } + if (getSelectedUser() != null) { + sb.append(" - Assignee: " + getSelectedUser()); + } + if (isIncludeCompletedCancelledCheckbox()) { + sb.append(" - Include Completed/Cancelled"); + } + return Strings.truncate(getName() + sb.toString(), WorldEditor.TITLE_MAX_LENGTH, true); + } + + @SuppressWarnings("unused") + @Override + public void widgetCreated(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) throws OseeCoreException { + if (widget.getLabel().equals("Assignee")) { + assigneeCombo = (XMembersCombo) widget; + } + if (widget.getLabel().equals("Include Completed/Cancelled")) { + includeCompletedCancelledCheckbox = (XCheckBox) widget; + } + if (widget.getLabel().equals("Show Flat")) { + showFlatCheckbox = (XCheckBox) widget; + } + if (widget.getLabel().equals("Version")) { + versionCombo = (XCombo) widget; + versionCombo.getComboBox().setVisibleItemCount(25); + widget.setToolTip("Select Team to populate Version list"); + } + if (widget.getLabel().equals("Released")) { + releasedCombo = (XCombo) widget; + } + if (widget.getLabel().equals("Team Definitions(s)")) { + teamCombo = (XHyperlabelTeamDefinitionSelection) widget; + teamCombo.addXModifiedListener(new XModifiedListener() { + @Override + public void widgetModified(XWidget widget) { + if (versionCombo != null) { + try { + Collection<TeamDefinitionArtifact> teamDefArts = getSelectedTeamDefinitions(); + if (teamDefArts.isEmpty()) { + versionCombo.setDataStrings(new String[] {}); + return; + } + TeamDefinitionArtifact teamDefHoldingVersions = + teamDefArts.iterator().next().getTeamDefinitionHoldingVersions(); + if (teamDefHoldingVersions == null) { + versionCombo.setDataStrings(new String[] {}); + return; + } + Collection<String> names = + Artifacts.artNames(teamDefHoldingVersions.getVersionsArtifacts(VersionReleaseType.Both)); + if (names.isEmpty()) { + versionCombo.setDataStrings(new String[] {}); + return; + } + versionCombo.setDataStrings(names.toArray(new String[names.size()])); + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, OseeLevel.SEVERE_POPUP, ex); + } + } + } + }); + } + } + + protected User getSelectedUser() { + if (assigneeCombo == null) { + return null; + } + return assigneeCombo.getUser(); + } + + public void setSelectedUser(User user) { + if (assigneeCombo != null) { + assigneeCombo.set(user); + } + } + + protected boolean isIncludeCompletedCancelledCheckbox() { + if (includeCompletedCancelledCheckbox == null) { + return false; + } + return includeCompletedCancelledCheckbox.isSelected(); + } + + public void includeCompletedCancelledCheckbox(boolean selected) { + if (includeCompletedCancelledCheckbox != null) { + includeCompletedCancelledCheckbox.set(selected); + } + } + + protected boolean isShowFlatCheckbox() { + if (showFlatCheckbox == null) { + return false; + } + return showFlatCheckbox.isSelected(); + } + + public void includeShowFlatCheckbox(boolean selected) { + if (showFlatCheckbox != null) { + showFlatCheckbox.set(selected); + } + } + + protected VersionArtifact getSelectedVersionArtifact() throws OseeCoreException { + if (versionCombo == null) { + return null; + } + String versionStr = versionCombo.get(); + if (!Strings.isValid(versionStr)) { + return null; + } + Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions(); + if (teamDefs.size() > 0) { + TeamDefinitionArtifact teamDefHoldingVersions = teamDefs.iterator().next().getTeamDefinitionHoldingVersions(); + if (teamDefHoldingVersions == null) { + return null; + } + for (VersionArtifact versionArtifact : teamDefHoldingVersions.getVersionsArtifacts(VersionReleaseType.Both)) { + if (versionArtifact.getName().equals(versionStr)) { + return versionArtifact; + } + } + } + return null; + } + + public void setVersion(String versionStr) { + if (versionCombo != null && versionCombo.getInDataStrings() != null) { + // should check if the version combo was populated + if (versionCombo.getInDataStrings().length > 0) { + versionCombo.set(versionStr); + } + } + } + + public Collection<TeamDefinitionArtifact> getSelectedTeamDefinitions() { + if (teamCombo == null) { + return java.util.Collections.emptyList(); + } + return teamCombo.getSelectedTeamDefintions(); + } + + public void setSelectedTeamDefinitions(Collection<TeamDefinitionArtifact> selectedTeamDefs) { + if (teamCombo != null) { + teamCombo.setSelectedTeamDefs(selectedTeamDefs); + teamCombo.notifyXModifiedListeners(); + } + } + + protected ReleasedOption getSelectedReleased() { + if (releasedCombo == null || !Strings.isValid(releasedCombo.get())) { + return ReleasedOption.Both; + } + return ReleasedOption.valueOf(releasedCombo.get()); + } + + public void setSelectedReleased(ReleasedOption option) { + if (releasedCombo != null) { + releasedCombo.set(option.toString()); + } + } + + @Override + public void createXWidgetLayoutData(DynamicXWidgetLayoutData layoutData, XWidget widget, FormToolkit toolkit, Artifact art, XModifiedListener modListener, boolean isEditable) { + // do nothing + } + + @Override + public void widgetCreating(XWidget widget, FormToolkit toolkit, Artifact art, DynamicXWidgetLayout dynamicXWidgetLayout, XModifiedListener modListener, boolean isEditable) { + // do nothing + } + + @SuppressWarnings("unused") + @Override + public Result isParameterSelectionValid() throws OseeCoreException { + try { + boolean selected = false; + Collection<TeamDefinitionArtifact> teamDefs = getSelectedTeamDefinitions(); + if (teamDefs.size() > 0) { + selected = true; + } + VersionArtifact verArt = getSelectedVersionArtifact(); + if (verArt != null) { + selected = true; + } + User user = getSelectedUser(); + if (user != null) { + selected = true; + } + boolean includeCompleted = isIncludeCompletedCancelledCheckbox(); + if (!selected) { + return new Result("You must select at least Team, Version or Assignee."); + } + if (user != null && includeCompleted) { + return new Result("Assignee and Include Completed are not compatible selections."); + } + if (user != null && includeCompleted && verArt == null && teamDefs.isEmpty()) { + return new Result("You must select at least Team or Version with Include Completed."); + } + return Result.TrueResult; + } catch (Exception ex) { + OseeLog.log(AtsPlugin.class, Level.SEVERE, ex); + return new Result("Exception: " + ex.getLocalizedMessage()); + } + } + + @Override + public IDynamicWidgetLayoutListener getDynamicWidgetLayoutListener() { + return null; + } + + @Override + public VersionArtifact getTargetedVersionArtifact() throws OseeCoreException { + if (versionCombo == null) { + return null; + } + return getSelectedVersionArtifact(); + } + +} diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/UpdateAtsWorkItemDefinitions.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/UpdateAtsWorkItemDefinitions.java index ebd566d3042..fd686d1b4d3 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/UpdateAtsWorkItemDefinitions.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/UpdateAtsWorkItemDefinitions.java @@ -27,9 +27,6 @@ import org.eclipse.osee.framework.ui.swt.Displays; */ public class UpdateAtsWorkItemDefinitions extends XNavigateItemAction { - /** - * @param parent - */ public UpdateAtsWorkItemDefinitions(XNavigateItem parent) { super(parent, "Update Ats WorkItemDefinitions", PluginUiImage.ADMIN); } diff --git a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/VisitedItems.java b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/VisitedItems.java index b33cb3df0a2..cd0bbd85a42 100644 --- a/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/VisitedItems.java +++ b/plugins/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/VisitedItems.java @@ -57,9 +57,6 @@ public class VisitedItems extends XNavigateItemAction { } } - /** - * @param parent - */ public VisitedItems(XNavigateItem parent) { super(parent, "My Recently Visited", AtsImage.GLOBE); } |