Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorddunne2008-08-22 20:57:15 +0000
committerddunne2008-08-22 20:57:15 +0000
commit21d98088b1e922e1bdf2de456ffbcc83df3d7e9c (patch)
tree9677233e2451d056d0e780c95009f54ffac7ec0d
parentf8d55b3cb0a4d025162c023985778ecb1689952e (diff)
downloadorg.eclipse.osee-21d98088b1e922e1bdf2de456ffbcc83df3d7e9c.tar.gz
org.eclipse.osee-21d98088b1e922e1bdf2de456ffbcc83df3d7e9c.tar.xz
org.eclipse.osee-21d98088b1e922e1bdf2de456ffbcc83df3d7e9c.zip
-rw-r--r--org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java3
-rw-r--r--org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/EditTasks.java138
-rw-r--r--org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/EditTasksNavigateItem.java32
3 files changed, 123 insertions, 50 deletions
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java
index c06126048ce..561981a9b8e 100644
--- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java
+++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/navigate/AtsNavigateViewItems.java
@@ -32,6 +32,7 @@ import org.eclipse.osee.ats.artifact.TeamWorkflowExtensions;
import org.eclipse.osee.ats.health.ValidateAtsDatabase;
import org.eclipse.osee.ats.health.ValidateChangeReports;
import org.eclipse.osee.ats.navigate.EmailTeamsItem.MemberType;
+import org.eclipse.osee.ats.operation.EditTasksNavigateItem;
import org.eclipse.osee.ats.report.ExtendedStatusReportItem;
import org.eclipse.osee.ats.util.DoesNotWorkItem;
import org.eclipse.osee.ats.world.search.ActionableItemWorldSearchItem;
@@ -96,6 +97,7 @@ public class AtsNavigateViewItems extends XNavigateViewItems {
return new MyWorldSearchItem("My World", SkynetAuthentication.getUser());
}
+ @Override
public List<XNavigateItem> getSearchNavigateItems() {
List<XNavigateItem> items = new ArrayList<XNavigateItem>();
@@ -163,6 +165,7 @@ public class AtsNavigateViewItems extends XNavigateViewItems {
items.add(teamItem);
XNavigateItem taskItem = new XNavigateItem(null, "Tasks");
+ new EditTasksNavigateItem(taskItem);
new SearchNavigateItem(taskItem, new EditTasksByTeamVersionSearchItem(null, true));
new EditTasksBySelectedWorkflows(taskItem);
new EditTasksByGroup(taskItem);
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/EditTasks.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/EditTasks.java
index c9003022d8b..7eced521f7e 100644
--- a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/EditTasks.java
+++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/EditTasks.java
@@ -18,6 +18,9 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
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.AtsPlugin;
import org.eclipse.osee.ats.artifact.TaskArtifact;
import org.eclipse.osee.ats.artifact.TeamDefinitionArtifact;
@@ -95,69 +98,104 @@ public class EditTasks extends AbstractBlam {
return;
}
- Set<TaskArtifact> tasks = new HashSet<TaskArtifact>();
- List<Artifact> workflows = new ArrayList<Artifact>();
+ TaskSearchJob taskSearchJob = new TaskSearchJob(sb.toString(), teamDef, user, verArt, includeCompleted);
+ } catch (Exception ex) {
+ OSEELog.logException(AtsPlugin.class, ex, true);
+ }
+ }
+ });
- System.err.println("initial workflow load " + XDate.getDateNow(XDate.HHMMSS));
- if (verArt != null) {
- workflows.addAll(verArt.getRelatedArtifacts(AtsRelation.TeamWorkflowTargetedForVersion_Workflow));
- } else if (teamDef != null && teamDef.getTeamDefinitionHoldingVersions() != null) {
- for (VersionArtifact versionArt : teamDef.getTeamDefinitionHoldingVersions().getVersionsArtifacts()) {
- workflows.addAll(versionArt.getRelatedArtifacts(AtsRelation.TeamWorkflowTargetedForVersion_Workflow));
- }
- }
+ monitor.done();
+ }
- System.err.println("filter out team defs " + XDate.getDateNow(XDate.HHMMSS));
- List<Artifact> teamDefWorkflows = new ArrayList<Artifact>();
- for (Artifact workflow : workflows) {
- if (teamDef.equals((((TeamWorkFlowArtifact) workflow).getTeamDefinition()))) {
- teamDefWorkflows.add(workflow);
- }
+ private class TaskSearchJob extends Job {
+
+ private final String title;
+ private final TeamDefinitionArtifact teamDef;
+ private final User user;
+ private final VersionArtifact verArt;
+ private final boolean includeCompleted;
+
+ /**
+ * @param name
+ */
+ public TaskSearchJob(String title, TeamDefinitionArtifact teamDef, User user, VersionArtifact verArt, boolean includeCompleted) {
+ super(title);
+ this.title = title;
+ this.teamDef = teamDef;
+ this.user = user;
+ this.verArt = verArt;
+ this.includeCompleted = includeCompleted;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.jobs.Job#run(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ try {
+ Set<TaskArtifact> tasks = new HashSet<TaskArtifact>();
+ List<Artifact> workflows = new ArrayList<Artifact>();
+
+ System.err.println("initial workflow load " + XDate.getDateNow(XDate.HHMMSS));
+ if (verArt != null) {
+ workflows.addAll(verArt.getRelatedArtifacts(AtsRelation.TeamWorkflowTargetedForVersion_Workflow));
+ } else if (teamDef != null && teamDef.getTeamDefinitionHoldingVersions() != null) {
+ for (VersionArtifact versionArt : teamDef.getTeamDefinitionHoldingVersions().getVersionsArtifacts()) {
+ workflows.addAll(versionArt.getRelatedArtifacts(AtsRelation.TeamWorkflowTargetedForVersion_Workflow));
}
+ }
- System.err.println("bulk load tasks " + XDate.getDateNow(XDate.HHMMSS));
- // Bulk load tasks related to workflows
- Collection<Artifact> artifacts =
- RelationManager.getRelatedArtifacts(teamDefWorkflows, 1, AtsRelation.SmaToTask_Task);
+ System.err.println("filter out team defs " + XDate.getDateNow(XDate.HHMMSS));
+ List<Artifact> teamDefWorkflows = new ArrayList<Artifact>();
+ for (Artifact workflow : workflows) {
+ if (teamDef.equals((((TeamWorkFlowArtifact) workflow).getTeamDefinition()))) {
+ teamDefWorkflows.add(workflow);
+ }
+ }
- // Apply the remaining criteria
- System.err.println("apply remaining criteria " + XDate.getDateNow(XDate.HHMMSS));
- for (Artifact art : artifacts) {
- TaskArtifact taskArt = (TaskArtifact) art;
- // If include completed and canceled and task is such, check implementer list
- if (includeCompleted && taskArt.getSmaMgr().isCompleted() && taskArt.getImplementers().contains(user)) {
- tasks.add(taskArt);
- }
- // If user is selected and not user is assigned, skip this task
- if (user != null && !taskArt.getSmaMgr().getStateMgr().getAssignees().contains(user)) {
- continue;
- }
+ System.err.println("bulk load tasks " + XDate.getDateNow(XDate.HHMMSS));
+ // Bulk load tasks related to workflows
+ Collection<Artifact> artifacts =
+ RelationManager.getRelatedArtifacts(teamDefWorkflows, 1, AtsRelation.SmaToTask_Task);
+ // Apply the remaining criteria
+ System.err.println("apply remaining criteria " + XDate.getDateNow(XDate.HHMMSS));
+ for (Artifact art : artifacts) {
+ TaskArtifact taskArt = (TaskArtifact) art;
+ // If include completed and canceled and task is such, check implementer list
+ if (includeCompleted && taskArt.getSmaMgr().isCompleted() && taskArt.getImplementers().contains(user)) {
tasks.add(taskArt);
}
-
- // notify user if no tasks were found instead of kicking off empty task editor
- if (tasks.size() == 0) {
- AWorkbench.popup("ERROR", "No Tasks Match Search Criteria");
- return;
+ // If user is selected and not user is assigned, skip this task
+ if (user != null && !taskArt.getSmaMgr().getStateMgr().getAssignees().contains(user)) {
+ continue;
}
- System.err.println("kickoff editor " + XDate.getDateNow(XDate.HHMMSS));
- // kickoff task editor
- TeamWorkFlowArtifact team = tasks.iterator().next().getParentTeamWorkflow();
- SMAManager teamSmaMgr = new SMAManager(team);
- List<TaskResOptionDefinition> resOptions =
- TaskResolutionOptionRule.getTaskResolutionOptions(teamSmaMgr.getWorkPageDefinitionByName(DefaultTeamState.Implement.name()));
- TaskEditorInput input =
- new TaskEditorInput("Tasks for " + sb.toString().replaceAll("\n", " - "), tasks, resOptions);
- TaskEditor.editArtifacts(input);
- } catch (Exception ex) {
- OSEELog.logException(AtsPlugin.class, ex, true);
+ tasks.add(taskArt);
+ }
+
+ // notify user if no tasks were found instead of kicking off empty task editor
+ if (tasks.size() == 0) {
+ return new Status(Status.ERROR, AtsPlugin.PLUGIN_ID, -1, "No Tasks Match Search Criteria", null);
}
+
+ System.err.println("kickoff editor " + XDate.getDateNow(XDate.HHMMSS));
+ // kickoff task editor
+ TeamWorkFlowArtifact team = tasks.iterator().next().getParentTeamWorkflow();
+ SMAManager teamSmaMgr = new SMAManager(team);
+ List<TaskResOptionDefinition> resOptions =
+ TaskResolutionOptionRule.getTaskResolutionOptions(teamSmaMgr.getWorkPageDefinitionByName(DefaultTeamState.Implement.name()));
+ TaskEditorInput input = new TaskEditorInput(title, tasks, resOptions);
+ TaskEditor.editArtifacts(input);
+ } catch (Exception ex) {
+ OSEELog.logException(AtsPlugin.class, ex, true);
+ } finally {
+ monitor.done();
}
- });
+ return Status.OK_STATUS;
+ }
- monitor.done();
}
private VersionArtifact getSelectedVersionArtifact() throws OseeCoreException, SQLException {
diff --git a/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/EditTasksNavigateItem.java b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/EditTasksNavigateItem.java
new file mode 100644
index 00000000000..010d73994e6
--- /dev/null
+++ b/org.eclipse.osee.ats/src/org/eclipse/osee/ats/operation/EditTasksNavigateItem.java
@@ -0,0 +1,32 @@
+/*
+ * Created on Aug 22, 2008
+ *
+ * PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
+ */
+package org.eclipse.osee.ats.operation;
+
+import org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateItem;
+import org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateItemBlam;
+
+/**
+ * @author Donald G. Dunne
+ */
+public class EditTasksNavigateItem extends XNavigateItemBlam {
+
+ /**
+ * @param parent
+ * @param blamOperation
+ */
+ public EditTasksNavigateItem(XNavigateItem parent) {
+ super(parent, new EditTasks());
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.osee.framework.ui.skynet.widgets.xnavigate.XNavigateItem#getName()
+ */
+ @Override
+ public String getName() {
+ return "Edit Tasks";
+ }
+
+}

Back to the top