diff options
author | relves | 2008-06-12 04:39:16 +0000 |
---|---|---|
committer | relves | 2008-06-12 04:39:16 +0000 |
commit | a101ef5f66f2ade2d2a2ac6288543a8c74498c88 (patch) | |
tree | cccdd6bd16f1a5166e26176a9df5917e03d4774c /org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util | |
parent | c3a00936f4270d39c3787727ce8c95b1631df907 (diff) | |
download | org.eclipse.mylyn.tasks-a101ef5f66f2ade2d2a2ac6288543a8c74498c88.tar.gz org.eclipse.mylyn.tasks-a101ef5f66f2ade2d2a2ac6288543a8c74498c88.tar.xz org.eclipse.mylyn.tasks-a101ef5f66f2ade2d2a2ac6288543a8c74498c88.zip |
NEW - bug 234065: add Unsubmitted category to task list
https://bugs.eclipse.org/bugs/show_bug.cgi?id=234065
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util')
2 files changed, 31 insertions, 11 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDragSourceListener.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDragSourceListener.java index 49791f8bb..ce4ada83c 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDragSourceListener.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDragSourceListener.java @@ -22,8 +22,10 @@ import org.eclipse.jface.viewers.ISelectionProvider; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.mylyn.commons.core.StatusHandler; import org.eclipse.mylyn.internal.tasks.core.AbstractTask; +import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer; import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants; import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; +import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer; import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData; import org.eclipse.mylyn.internal.tasks.ui.TaskTransfer; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; @@ -47,7 +49,7 @@ public class TaskDragSourceListener extends DragSourceAdapter { static final String DELIM = ", "; - private IStructuredSelection selection; + private IStructuredSelection structuredSelection; private final ISelectionProvider selectionProvider; @@ -59,9 +61,23 @@ public class TaskDragSourceListener extends DragSourceAdapter { public void dragStart(DragSourceEvent event) { ISelection selection = selectionProvider.getSelection(); if (selection instanceof IStructuredSelection && !selection.isEmpty()) { - this.selection = (IStructuredSelection) selection; + this.structuredSelection = (IStructuredSelection) selection; + Iterator<?> itr = structuredSelection.iterator(); + while (itr.hasNext()) { + Object o = itr.next(); + if (o instanceof AbstractTask) { + AbstractTask task = ((AbstractTask) o); + for (AbstractTaskContainer container : task.getParentContainers()) { + if (container instanceof UnsubmittedTaskContainer) { + event.doit = false; + return; + } + + } + } + } } else { - this.selection = null; + this.structuredSelection = null; event.doit = false; } } @@ -118,13 +134,13 @@ public class TaskDragSourceListener extends DragSourceAdapter { @Override public void dragSetData(DragSourceEvent event) { - if (selection == null || selection.isEmpty()) { + if (structuredSelection == null || structuredSelection.isEmpty()) { return; } if (TaskTransfer.getInstance().isSupportedType(event.dataType)) { List<AbstractTask> tasks = new ArrayList<AbstractTask>(); - for (Iterator<?> it = selection.iterator(); it.hasNext();) { + for (Iterator<?> it = structuredSelection.iterator(); it.hasNext();) { Object element = it.next(); if (element instanceof AbstractTask) { tasks.add((AbstractTask) element); @@ -132,7 +148,7 @@ public class TaskDragSourceListener extends DragSourceAdapter { } event.data = tasks.toArray(new AbstractTask[0]); } else if (FileTransfer.getInstance().isSupportedType(event.dataType)) { - List<File> files = createTaskFiles(selection); + List<File> files = createTaskFiles(structuredSelection); if (files != null && !files.isEmpty()) { String[] paths = new String[files.size()]; int i = 0; @@ -142,8 +158,8 @@ public class TaskDragSourceListener extends DragSourceAdapter { event.data = paths; } } else if (TextTransfer.getInstance().isSupportedType(event.dataType)) { - if (selection.getFirstElement() instanceof RepositoryTaskData) { - RepositoryTaskData taskData = (RepositoryTaskData) selection.getFirstElement(); + if (structuredSelection.getFirstElement() instanceof RepositoryTaskData) { + RepositoryTaskData taskData = (RepositoryTaskData) structuredSelection.getFirstElement(); AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector( taskData.getConnectorKind()); if (connector != null) { @@ -152,7 +168,7 @@ public class TaskDragSourceListener extends DragSourceAdapter { event.data = taskData.getSummary(); } } else { - event.data = CopyTaskDetailsAction.getTextForTask(selection.getFirstElement()); + event.data = CopyTaskDetailsAction.getTextForTask(structuredSelection.getFirstElement()); } } } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java index fd39eef25..c1d5493a0 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java @@ -54,6 +54,7 @@ import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; import org.eclipse.mylyn.internal.tasks.core.TaskCategory; import org.eclipse.mylyn.internal.tasks.core.TaskDataStorageManager; import org.eclipse.mylyn.internal.tasks.core.TaskList; +import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer; import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractLegacyRepositoryConnector; import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData; import org.eclipse.mylyn.internal.tasks.ui.OpenRepositoryTaskJob; @@ -815,10 +816,13 @@ public class TasksUiInternal { } public static void createAndOpenNewTask(TaskData taskData) throws CoreException { - ITask task = TasksUiUtil.createOutgoingNewTask(taskData.getConnectorKind()); + ITask task = TasksUiUtil.createOutgoingNewTask(taskData.getConnectorKind(), taskData.getRepositoryUrl()); + UnsubmittedTaskContainer unsubmitted = ((TaskList) getTaskList()).getUnsubmittedContainer(taskData.getRepositoryUrl()); + if (unsubmitted != null) { + TasksUiInternal.getTaskList().addTask(task, unsubmitted); + } ITaskDataWorkingCopy workingCopy = TasksUi.getTaskDataManager().createWorkingCopy(task, taskData); workingCopy.save(null, null); - TaskRepository localTaskRepository = TasksUi.getRepositoryManager().getRepository(task.getConnectorKind(), task.getRepositoryUrl()); TaskEditorInput editorInput = new TaskEditorInput(localTaskRepository, task); |