diff options
author | ddunne | 2008-08-22 20:57:15 +0000 |
---|---|---|
committer | ddunne | 2008-08-22 20:57:15 +0000 |
commit | 21d98088b1e922e1bdf2de456ffbcc83df3d7e9c (patch) | |
tree | 9677233e2451d056d0e780c95009f54ffac7ec0d | |
parent | f8d55b3cb0a4d025162c023985778ecb1689952e (diff) | |
download | org.eclipse.osee-21d98088b1e922e1bdf2de456ffbcc83df3d7e9c.tar.gz org.eclipse.osee-21d98088b1e922e1bdf2de456ffbcc83df3d7e9c.tar.xz org.eclipse.osee-21d98088b1e922e1bdf2de456ffbcc83df3d7e9c.zip |
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";
+ }
+
+}
|