diff options
author | relves | 2007-06-13 01:38:34 +0000 |
---|---|---|
committer | relves | 2007-06-13 01:38:34 +0000 |
commit | 368b22b262a7bdd71f18b49980424696acf8e99e (patch) | |
tree | 2206fc70b317c5819c16cb68e3af6146be699e60 | |
parent | 34bfd2edfe7f66169a4d515f29b2faccffa2d39d (diff) | |
download | org.eclipse.mylyn.tasks-368b22b262a7bdd71f18b49980424696acf8e99e.tar.gz org.eclipse.mylyn.tasks-368b22b262a7bdd71f18b49980424696acf8e99e.tar.xz org.eclipse.mylyn.tasks-368b22b262a7bdd71f18b49980424696acf8e99e.zip |
REOPENED - bug 124321: [api] merge local tasks with repository tasks
https://bugs.eclipse.org/bugs/show_bug.cgi?id=124321
36 files changed, 637 insertions, 451 deletions
diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaConfigurationTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaConfigurationTest.java index 29adf019e..d388b3ec9 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaConfigurationTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaConfigurationTest.java @@ -130,7 +130,7 @@ public class BugzillaConfigurationTest extends TestCase { assertEquals(7, config.getSeverities().size()); assertTrue(config.getProducts().size() > 50); assertEquals(4, config.getOpenStatusValues().size()); - assertEquals(13, config.getComponents("Mylar").size()); + assertEquals(13, config.getComponents("Mylyn").size()); assertEquals(23, config.getKeywords().size()); // assertEquals(10, config.getComponents("Hyades").size()); // assertEquals(1, config.getTargetMilestones("TestProduct").size()); diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java index 4710e46f8..09a91f058 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/BugzillaRepositoryConnectorTest.java @@ -55,7 +55,7 @@ public class BugzillaRepositoryConnectorTest extends AbstractBugzillaTest { assertEquals(0, taskList.getAllTasks().size()); BugzillaRepositoryQuery bugQuery = new BugzillaRepositoryQuery( IBugzillaConstants.TEST_BUGZILLA_222_URL, - "http://mylar.eclipse.org/bugs222/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Read+Only+Test+Cases&long_desc_type=allwordssubstr&long_desc=&bug_status=NEW&order=Importance", + "http://mylyn.eclipse.org/bugs222/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=Read+Only+Test+Cases&long_desc_type=allwordssubstr&long_desc=&bug_status=NEW&order=Importance", "testFocedQuerySynchronization"); taskList.addQuery(bugQuery); @@ -107,10 +107,10 @@ public class BugzillaRepositoryConnectorTest extends AbstractBugzillaTest { // collector.setProgressMonitor(new NullProgressMonitor()); // BugzillaSearchOperation operation = new BugzillaSearchOperation( // repository, - // "http://mylar.eclipse.org/bugs218/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=search-match-test&product=TestProduct&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=", + // "http://mylyn.eclipse.org/bugs218/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=search-match-test&product=TestProduct&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=", // null, collector, "-1"); // - String queryUrl = "http://mylar.eclipse.org/bugs218/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=search-match-test&product=TestProduct&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0="; + String queryUrl = "http://mylyn.eclipse.org/bugs218/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=search-match-test&product=TestProduct&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&deadlinefrom=&deadlineto=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0="; BugzillaRepositoryQuery bugzillaQuery = new BugzillaRepositoryQuery(repository.getUrl(), queryUrl, "search"); SearchHitCollector collector = new SearchHitCollector(taskList, repository, bugzillaQuery, taskFactory); @@ -145,7 +145,7 @@ public class BugzillaRepositoryConnectorTest extends AbstractBugzillaTest { // assertEquals("2007-04-18 14:21:40", // task.getCompletionDate().toString()); assertFalse(task.isCompleted()); - assertEquals("http://mylar.eclipse.org/bugs222/show_bug.cgi?id=3", task.getTaskUrl()); + assertEquals("http://mylyn.eclipse.org/bugs222/show_bug.cgi?id=3", task.getTaskUrl()); } public void testUpdateWithSubTasks() throws Exception { diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java index 7048e2db2..e0a8ac452 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/EncodingTest.java @@ -52,7 +52,7 @@ public class EncodingTest extends AbstractBugzillaTest { BugzillaTask task = (BugzillaTask) connector.createTaskFromExistingId(repository, "57", new NullProgressMonitor()); assertNotNull(task); //TasksUiPlugin.getSynchronizationManager().synchronize(connector, task, true, null); - assertTrue(task.getSummary().equals("\u05D0")); + assertTrue(task.getSummary().equals("\u00E6"));//"\u05D0")); taskList.deleteTask(task); connector.getClientManager().repositoryRemoved(repository); repository.setCharacterEncoding("ISO-8859-1"); @@ -60,7 +60,7 @@ public class EncodingTest extends AbstractBugzillaTest { assertNotNull(task); //TasksUiPlugin.getSynchronizationManager().synchronize(connector, task, true, null); // iso-8859-1 'incorrect' interpretation - assertFalse(task.getSummary().equals("\u05D0")); + assertFalse(task.getSummary().equals("\u00E6"));//"\u05D0")); } public void testProperEncodingUponPost() throws CoreException { @@ -69,7 +69,7 @@ public class EncodingTest extends AbstractBugzillaTest { BugzillaTask task = (BugzillaTask) connector.createTaskFromExistingId(repository, "57", new NullProgressMonitor()); RepositoryTaskData taskData = TasksUiPlugin.getDefault().getTaskDataManager().getNewTaskData(task.getHandleIdentifier()); assertNotNull(task); - assertTrue(task.getSummary().equals("\u05D0")); + assertTrue(task.getSummary().equals("\u00E6"));//"\u05D0")); String priority = null; if (task.getPriority().equals("P1")) { priority = "P2"; @@ -83,7 +83,7 @@ public class EncodingTest extends AbstractBugzillaTest { taskList.deleteTask(task); task = (BugzillaTask) connector.createTaskFromExistingId(repository, "57", new NullProgressMonitor()); assertNotNull(task); - assertTrue(task.getSummary().equals("\u05D0")); + assertTrue(task.getSummary().equals("\u00E6"));//"\u05D0")); } } diff --git a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskReportGeneratorTest.java b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskReportGeneratorTest.java index d9dcfe238..e9e5494cf 100644 --- a/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskReportGeneratorTest.java +++ b/org.eclipse.mylyn.bugzilla.tests/src/org/eclipse/mylyn/bugzilla/tests/TaskReportGeneratorTest.java @@ -55,7 +55,7 @@ public class TaskReportGeneratorTest extends TestCase { } public void testCompletedTasksRetrieved() throws InvocationTargetException, InterruptedException { - Task task1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 1"); + Task task1 = manager.createNewLocalTask("task 1"); manager.getTaskList().moveToRoot(task1); CompletedTaskCollector collector = new CompletedTaskCollector(new Date(0)); @@ -71,7 +71,7 @@ public class TaskReportGeneratorTest extends TestCase { } public void testCompletedTasksDateBoundsRetrieved() throws InvocationTargetException, InterruptedException { - Task task1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 1"); + Task task1 = manager.createNewLocalTask("task 1"); manager.getTaskList().moveToRoot(task1); task1.setCompleted(true); Thread.sleep(1000); @@ -109,7 +109,7 @@ public class TaskReportGeneratorTest extends TestCase { } public void testCompletedTasksInCategoryRetrieved() throws InvocationTargetException, InterruptedException { - Task task1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 1"); + Task task1 = manager.createNewLocalTask("task 1"); manager.getTaskList().moveToRoot(task1); task1.setCompleted(true); TaskCategory cat1 = new TaskCategory("TaskReportGeneratorTest Category"); diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalRepositoryConnector.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalRepositoryConnector.java new file mode 100644 index 000000000..baca70ac3 --- /dev/null +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalRepositoryConnector.java @@ -0,0 +1,132 @@ +/******************************************************************************* + * Copyright (c) 2004 - 2006 University Of British Columbia and others. + * 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: + * University Of British Columbia - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylyn.internal.tasks.core; + +import java.util.Collections; +import java.util.Set; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; +import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery; +import org.eclipse.mylyn.tasks.core.AbstractRepositoryTask; +import org.eclipse.mylyn.tasks.core.IAttachmentHandler; +import org.eclipse.mylyn.tasks.core.ITaskDataHandler; +import org.eclipse.mylyn.tasks.core.QueryHitCollector; +import org.eclipse.mylyn.tasks.core.RepositoryTaskData; +import org.eclipse.mylyn.tasks.core.TaskRepository; + +/** + * @author Rob Elves + */ +public class LocalRepositoryConnector extends AbstractRepositoryConnector { + + public static final String REPOSITORY_LABEL = "Local Tasks"; + + public static final String REPOSITORY_KIND = "local"; + + public static final String REPOSITORY_URL = "local"; + + public static final String REPOSITORY_VERSION = "1"; + + public static final String DEFAULT_SUMMARY = "New Task"; + + @Override + public boolean canCreateNewTask(TaskRepository repository) { + return true; + } + + @Override + public boolean canCreateTaskFromKey(TaskRepository repository) { + return true; + } + + @Override + public AbstractRepositoryTask createTask(String repositoryUrl, String id, String summary) { + return new LocalTask(repositoryUrl, id, summary); + } + + @Override + public IAttachmentHandler getAttachmentHandler() { + // TODO: Implement local attachments + return null; + } + + @Override + public Set<AbstractRepositoryTask> getChangedSinceLastSync(TaskRepository repository, + Set<AbstractRepositoryTask> tasks, IProgressMonitor monitor) throws CoreException { + return Collections.emptySet(); + } + + @Override + public String getLabel() { + return "Local Task Repository"; + } + + @Override + public String getRepositoryType() { + return REPOSITORY_KIND; + } + + @Override + public String getRepositoryUrlFromTaskUrl(String taskFullUrl) { + // ignore + return null; + } + + @Override + public ITaskDataHandler getTaskDataHandler() { + // not currently needed + return null; + } + + @Override + public String getTaskIdFromTaskUrl(String taskFullUrl) { + // ignore + return null; + } + + @Override + public String getTaskWebUrl(String repositoryUrl, String taskId) { + // ignore + return null; + } + + @Override + public IStatus performQuery(AbstractRepositoryQuery query, TaskRepository repository, IProgressMonitor monitor, + QueryHitCollector resultCollector, boolean forced) { + // ignore + return null; + } + + @Override + public void updateAttributes(TaskRepository repository, IProgressMonitor monitor) throws CoreException { + // ignore + + } + + @Override + public void updateTaskFromRepository(TaskRepository repository, AbstractRepositoryTask repositoryTask, + IProgressMonitor monitor) throws CoreException { + // ignore + + } + + @Override + public void updateTaskFromTaskData(TaskRepository repository, AbstractRepositoryTask repositoryTask, + RepositoryTaskData taskData) { + // ignore + + } + +} diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalTask.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalTask.java new file mode 100644 index 000000000..332871858 --- /dev/null +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalTask.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2004 - 2006 University Of British Columbia and others. + * 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: + * University Of British Columbia - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylyn.internal.tasks.core; + +import org.eclipse.mylyn.tasks.core.AbstractRepositoryTask; + +/** + * @author Rob Elves + */ +public class LocalTask extends AbstractRepositoryTask { + + public LocalTask(String repositoryUrl, String taskId, String summary) { + super(LocalRepositoryConnector.REPOSITORY_URL, taskId, summary); + } + + @Override + public String getRepositoryKind() { + return LocalRepositoryConnector.REPOSITORY_KIND; + } + + public boolean isNotified() { + return true; + } + + public String getLastSyncDateStamp() { + return "now"; + } + + public String getOwner() { + return LocalRepositoryConnector.REPOSITORY_KIND; + } + + @Override + public String getTaskKey() { + return null; + } + +} diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalTaskExternalizer.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalTaskExternalizer.java new file mode 100644 index 000000000..d91d620e9 --- /dev/null +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalTaskExternalizer.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2004 - 2006 University Of British Columbia and others. + * 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: + * University Of British Columbia - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylyn.internal.tasks.core; + +import org.eclipse.mylyn.tasks.core.AbstractTaskContainer; +import org.eclipse.mylyn.tasks.core.DelegatingTaskExternalizer; +import org.eclipse.mylyn.tasks.core.ITask; +import org.eclipse.mylyn.tasks.core.TaskExternalizationException; +import org.eclipse.mylyn.tasks.core.TaskList; +import org.w3c.dom.Element; + +/** + * @author Rob Elves + */ +public class LocalTaskExternalizer extends DelegatingTaskExternalizer { + + @Override + public boolean canCreateElementFor(ITask task) { + return task instanceof LocalTask; + } + + @Override + public ITask createTask(String repositoryUrl, String taskId, String summary, Element element, TaskList taskList, + AbstractTaskContainer category, ITask parent) throws TaskExternalizationException { +// String handle; +// if (element.hasAttribute(KEY_HANDLE)) { +// handle = element.getAttribute(KEY_HANDLE); +// } else { +// throw new TaskExternalizationException("Handle not stored for task"); +// } + LocalTask task = new LocalTask(repositoryUrl, taskId, summary); + return task; + } + +} diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/Task.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/Task.java index 12465fad9..0d415d10e 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/Task.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/Task.java @@ -218,6 +218,9 @@ public class Task extends AbstractTaskContainer implements ITask { } + /** + * Use TaskList for moving tasks between containers + */ public void setContainer(AbstractTaskContainer cat) { this.parentCategory = cat; } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java index 5ff7a34c6..eb558af13 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java @@ -23,6 +23,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; import org.eclipse.mylyn.core.MylarStatusHandler; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.core.RepositoryTaskHandleUtil; /** @@ -620,7 +621,7 @@ public class TaskList { int ihandle = 0; int max = 0; for (ITask task : tasks) { - if (!(task instanceof AbstractRepositoryTask)) { + if (task instanceof LocalTask) { String string = task.getHandleIdentifier().substring(task.getHandleIdentifier().lastIndexOf('-') + 1, task.getHandleIdentifier().length()); try { diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepositoryManager.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepositoryManager.java index 4ae5399d1..c8f4500d7 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepositoryManager.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepositoryManager.java @@ -23,6 +23,7 @@ import java.util.Set; import org.eclipse.core.runtime.Platform; import org.eclipse.mylyn.core.MylarStatusHandler; +import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; import org.eclipse.mylyn.internal.tasks.core.TaskRepositoriesExternalizer; /** @@ -229,6 +230,7 @@ public class TaskRepositoryManager { repositoryMap.clear(); orphanedRepositories.clear(); + loadRepositories(repositoriesFilePath); for (ITaskRepositoryListener listener : listeners) { diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataExportTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataExportTest.java index 55101e3ec..c87b72562 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataExportTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataExportTest.java @@ -23,7 +23,6 @@ import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataExportWizard; import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataExportWizardPage; import org.eclipse.mylyn.monitor.core.InteractionEvent; import org.eclipse.mylyn.tasks.core.ITask; -import org.eclipse.mylyn.tasks.core.Task; import org.eclipse.mylyn.tasks.ui.TaskListManager; import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; import org.eclipse.swt.widgets.Shell; @@ -72,7 +71,7 @@ public class TaskDataExportTest extends AbstractContextTest { assertTrue(destinationDir.exists()); // Create a task and context with an interaction event to be saved - task1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "Export Test Task"); + task1 = manager.createNewLocalTask("Export Test Task"); manager.getTaskList().moveToRoot(task1); mockContext = ContextCorePlugin.getContextManager().loadContext(task1.getHandleIdentifier()); InteractionEvent event = new InteractionEvent(InteractionEvent.Kind.EDIT, "structureKind", "handle", "originId"); diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataImportTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataImportTest.java index 03f927c12..911645ac2 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataImportTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataImportTest.java @@ -16,6 +16,8 @@ import java.util.Collection; import org.eclipse.mylyn.context.core.ContextCorePlugin; import org.eclipse.mylyn.context.tests.AbstractContextTest; import org.eclipse.mylyn.internal.context.core.InteractionContext; +import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataImportWizard; import org.eclipse.mylyn.internal.tasks.ui.wizards.TaskDataImportWizardPage; import org.eclipse.mylyn.tasks.core.ITask; @@ -77,8 +79,7 @@ public class TaskDataImportTest extends AbstractContextTest { } /** - * Tests the wizard when it has been asked to import all task data from a - * zip file + * Tests the wizard when it has been asked to import all task data from a zip file */ public void testImportRepositoriesZip() { TaskList taskList = TasksUiPlugin.getTaskListManager().getTaskList(); @@ -110,9 +111,9 @@ public class TaskDataImportTest extends AbstractContextTest { assertNotNull(historyContext); assertTrue(taskList.getAllTasks().size() == 0); assertTrue(historyContext.getInteractionHistory().size() == 0); - assertEquals(0, TasksUiPlugin.getRepositoryManager().getAllRepositories().size()); + assertEquals(2, TasksUiPlugin.getRepositoryManager().getAllRepositories().size()); - Task task1 = new Task("handle", "label"); + Task task1 = new LocalTask(LocalRepositoryConnector.REPOSITORY_URL, "999", "label"); taskList.addTask(task1); Collection<ITask> tasks = taskList.getAllTasks(); assertEquals(1, tasks.size()); @@ -129,8 +130,7 @@ public class TaskDataImportTest extends AbstractContextTest { historyContext = ContextCorePlugin.getContextManager().getActivityMetaContext(); assertNotNull(historyContext); assertTrue(historyContext.getInteractionHistory().size() > 0); - assertEquals(2, TasksUiPlugin.getRepositoryManager().getAllRepositories().size()); - + assertEquals(3, TasksUiPlugin.getRepositoryManager().getAllRepositories().size()); } } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskHistoryTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskHistoryTest.java index 2f2906d3c..c13549191 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskHistoryTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskHistoryTest.java @@ -57,19 +57,19 @@ public class TaskHistoryTest extends TestCase { resetHistory(); - task1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 1"); + task1 = manager.createNewLocalTask("task 1"); manager.getTaskList().moveToRoot(task1); - task2 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 2"); + task2 = manager.createNewLocalTask("task 2"); manager.getTaskList().moveToRoot(task2); - task3 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 3"); + task3 = manager.createNewLocalTask("task 3"); manager.getTaskList().moveToRoot(task3); - task4 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 4"); + task4 = manager.createNewLocalTask("task 4"); manager.getTaskList().moveToRoot(task4); - task5 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 5"); + task5 = manager.createNewLocalTask("task 5"); manager.getTaskList().moveToRoot(task5); history = manager.getTaskActivationHistory(); diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java index 6ca2e9410..50891e309 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java @@ -26,10 +26,11 @@ import java.util.Set; import junit.framework.TestCase; import org.eclipse.mylyn.context.core.ContextCorePlugin; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylyn.internal.tasks.ui.ScheduledTaskListSynchJob; -import org.eclipse.mylyn.internal.tasks.ui.TasksUiPreferenceConstants; import org.eclipse.mylyn.internal.tasks.ui.TaskListSynchronizationScheduler; +import org.eclipse.mylyn.internal.tasks.ui.TasksUiPreferenceConstants; import org.eclipse.mylyn.internal.tasks.ui.actions.MarkTaskReadAction; import org.eclipse.mylyn.internal.tasks.ui.actions.MarkTaskUnreadAction; import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery; @@ -85,13 +86,13 @@ public class TaskListManagerTest extends TestCase { } public void testUniqueTaskID() { - Task task1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "label"); + LocalTask task1 = manager.createNewLocalTask("label"); manager.getTaskList().addTask(task1); - Task task2 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "label"); + LocalTask task2 = manager.createNewLocalTask("label"); manager.getTaskList().addTask(task2); assertEquals(2, manager.getTaskList().getLastTaskNum()); manager.getTaskList().deleteTask(task2); - Task task3 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "label"); + LocalTask task3 = manager.createNewLocalTask("label"); manager.getTaskList().addTask(task3); assertTrue(task3.getHandleIdentifier() + " should end with 3", task3.getHandleIdentifier().endsWith("3")); assertEquals(3, manager.getTaskList().getLastTaskNum()); @@ -104,7 +105,7 @@ public class TaskListManagerTest extends TestCase { manager.readExistingOrCreateNewList(); assertEquals(2, manager.getTaskList().getAllTasks().size()); assertEquals(3, manager.getTaskList().getLastTaskNum()); - Task task4 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "label"); + Task task4 =manager.createNewLocalTask("label"); assertTrue(task4.getHandleIdentifier() + " should end with 4", task4.getHandleIdentifier().endsWith("4")); } @@ -510,15 +511,15 @@ public class TaskListManagerTest extends TestCase { public void testCreationAndExternalization() { Set<ITask> rootTasks = new HashSet<ITask>(); - Task task1 = new Task(manager.genUniqueTaskHandle(), "task 1"); + Task task1 = manager.createNewLocalTask("task 1"); manager.getTaskList().moveToRoot(task1); rootTasks.add(task1); - Task sub1 = new Task("subtask-1", "sub 1"); - //manager.getTaskList().addTask(sub1); + Task sub1 = manager.createNewLocalTask("sub 1"); manager.getTaskList().addTask(sub1, task1); + manager.getTaskList().moveToContainer(manager.getTaskList().getArchiveContainer(), sub1); - Task task2 = new Task(manager.genUniqueTaskHandle(), "task 2"); + Task task2 = manager.createNewLocalTask("task 2"); manager.getTaskList().moveToRoot(task2); rootTasks.add(task2); @@ -527,14 +528,15 @@ public class TaskListManagerTest extends TestCase { TaskCategory cat1 = new TaskCategory("Category 1"); manager.getTaskList().addCategory(cat1); categories.add(cat1); - Task task3 = new Task(manager.genUniqueTaskHandle(), "task 3"); + Task task3 =manager.createNewLocalTask("task 3"); manager.getTaskList().moveToContainer(cat1, task3); cat1Contents.add(task3); assertEquals(cat1, task3.getContainer()); - Task sub2 = new Task(manager.genUniqueTaskHandle(), "sub 2"); + Task sub2 = manager.createNewLocalTask("sub 2"); manager.getTaskList().addTask(sub2, task3); + manager.getTaskList().moveToContainer(manager.getTaskList().getArchiveContainer(), sub2); - Task task4 = new Task(manager.genUniqueTaskHandle(), "task 4"); + Task task4 = manager.createNewLocalTask("task 4"); manager.getTaskList().moveToContainer(cat1, task4); cat1Contents.add(task4); @@ -558,7 +560,7 @@ public class TaskListManagerTest extends TestCase { manager.readExistingOrCreateNewList(); assertNotNull(manager.getTaskList()); - assertEquals(rootTasks, manager.getTaskList().getRootTasks()); + assertTrue(rootTasks.containsAll(manager.getTaskList().getRootTasks())); Set<ITask> readList = manager.getTaskList().getRootTasks(); for (ITask task : readList) { @@ -584,7 +586,7 @@ public class TaskListManagerTest extends TestCase { // String handle = AbstractRepositoryTask.getHandle("http://url/repo-location", // 1); - Task task1 = new Task("http://url/repo-location-1", "task 1"); + Task task1 = manager.createNewLocalTask("task 1"); manager.getTaskList().moveToRoot(task1); rootTasks.add(task1); diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListUiTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListUiTest.java index 0c2b01bf8..3959b35c8 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListUiTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListUiTest.java @@ -46,7 +46,7 @@ import org.eclipse.ui.PartInitException; * */ public class TaskListUiTest extends TestCase { - + private TaskListManager manager = null; private TaskCategory cat1 = null; @@ -90,34 +90,33 @@ public class TaskListUiTest extends TestCase { manager = TasksUiPlugin.getTaskListManager(); cat1 = new TaskCategory("First Category"); - cat1task1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 1"); + cat1task1 = manager.createNewLocalTask("task 1"); cat1task1.setPriority(Task.PriorityLevel.P1.toString()); - cat1task1.setCompleted(true); - cat1task1.setContainer(cat1); + cat1task1.setCompleted(true); manager.getTaskList().moveToContainer(cat1, cat1task1); - cat1task1sub1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "sub task 1"); + cat1task1sub1 = manager.createNewLocalTask("sub task 1"); cat1task1sub1.setPriority(Task.PriorityLevel.P1.toString()); cat1task1sub1.setCompleted(true); manager.getTaskList().addTask(cat1task1sub1, cat1task1); - cat1task2 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 2"); + cat1task2 = manager.createNewLocalTask("task 2"); cat1task2.setPriority(Task.PriorityLevel.P2.toString()); cat1task2.setContainer(cat1); manager.getTaskList().moveToContainer(cat1, cat1task2); - cat1task3 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 3"); + cat1task3 = manager.createNewLocalTask("task 3"); cat1task3.setPriority(Task.PriorityLevel.P3.toString()); cat1task3.setCompleted(true); cat1task3.setContainer(cat1); manager.getTaskList().moveToContainer(cat1, cat1task3); - cat1task4 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 4"); + cat1task4 = manager.createNewLocalTask("task 4"); cat1task4.setPriority(Task.PriorityLevel.P4.toString()); cat1task4.setContainer(cat1); manager.getTaskList().moveToContainer(cat1, cat1task4); - cat1task5 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 5"); + cat1task5 = manager.createNewLocalTask("task 5"); cat1task5.setPriority(Task.PriorityLevel.P5.toString()); cat1task5.setCompleted(true); cat1task5.setContainer(cat1); @@ -128,33 +127,33 @@ public class TaskListUiTest extends TestCase { cat2 = new TaskCategory("Second Category"); - cat2task1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 1"); + cat2task1 = manager.createNewLocalTask("task 1"); cat2task1.setPriority(Task.PriorityLevel.P1.toString()); cat2task1.setContainer(cat2); manager.getTaskList().moveToContainer(cat2, cat2task1); - cat2task1sub1 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "sub task 1"); + cat2task1sub1 = manager.createNewLocalTask("sub task 1"); cat2task1sub1.setPriority(Task.PriorityLevel.P1.toString()); manager.getTaskList().addTask(cat2task1sub1, cat2task1); - cat2task2 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 2"); + cat2task2 = manager.createNewLocalTask("task 2"); cat2task2.setPriority(Task.PriorityLevel.P2.toString()); cat2task2.setCompleted(true); cat2task2.setContainer(cat2); manager.getTaskList().moveToContainer(cat2, cat2task2); - cat2task3 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 3"); + cat2task3 = manager.createNewLocalTask("task 3"); cat2task3.setPriority(Task.PriorityLevel.P3.toString()); cat2task3.setContainer(cat2); manager.getTaskList().moveToContainer(cat2, cat2task3); - cat2task4 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 4"); + cat2task4 = manager.createNewLocalTask("task 4"); cat2task4.setPriority(Task.PriorityLevel.P4.toString()); cat2task4.setCompleted(true); cat2task4.setContainer(cat2); manager.getTaskList().moveToContainer(cat2, cat2task4); - cat2task5 = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), "task 5"); + cat2task5 = manager.createNewLocalTask("task 5"); cat2task5.setPriority(Task.PriorityLevel.P5.toString()); cat2task5.setContainer(cat2); manager.getTaskList().moveToContainer(cat2, cat2task5); @@ -199,8 +198,7 @@ public class TaskListUiTest extends TestCase { TaskListView.getFromActivePerspective().removeFilter( TaskListView.getFromActivePerspective().getCompleteFilter()); - TaskPriorityFilter filter = TaskListView.getFromActivePerspective() - .getPriorityFilter(); + TaskPriorityFilter filter = TaskListView.getFromActivePerspective().getPriorityFilter(); filter.displayPrioritiesAbove("P2"); TaskListView.getFromActivePerspective().addFilter(filter); viewer.refresh(); @@ -247,8 +245,7 @@ public class TaskListUiTest extends TestCase { assertEquals(numListenersBefore, numListenersAfter); } - - + /** * Tests whether an additional NewCategory action is added to the category */ @@ -266,7 +263,7 @@ public class TaskListUiTest extends TestCase { // execute sytem under test MenuManager menuManager = moveToMenuContrib.getSubMenuManager(selectedElements); IContributionItem[] items = menuManager.getItems(); - IContributionItem item = items[menuManager.getItems().length-1]; + IContributionItem item = items[menuManager.getItems().length - 1]; // +1 for separator assertEquals(expectedNrOfSubMenuEntries, menuManager.getItems().length); @@ -275,49 +272,47 @@ public class TaskListUiTest extends TestCase { NewCategoryAction action = (NewCategoryAction) item; assertEquals(newCatActon.getText(), action.getText()); } - + // teardown } - /** * Tests visibility of SubMenuManager */ - public void testVisibilityOfSubMenuManager(){ + public void testVisibilityOfSubMenuManager() { //setup MoveToCategoryMenuContributor moveToMenuContrib = new MoveToCategoryMenuContributor(); MenuManager menuManager = null; List<ITaskListElement> selectedElements = new Vector<ITaskListElement>(); selectedElements.add(cat1task1); - + List<ITaskListElement> emptySelection = new Vector<ITaskListElement>(); List<ITaskListElement> categorySelection = new Vector<ITaskListElement>(); categorySelection.add(cat1); - + List<ITaskListElement> querySelection = new Vector<ITaskListElement>(); querySelection.add(new MockRepositoryQuery("query", null)); - + //execute system under test & assert menuManager = moveToMenuContrib.getSubMenuManager(selectedElements); assertTrue(menuManager.isVisible()); - + menuManager = null; menuManager = moveToMenuContrib.getSubMenuManager(emptySelection); assertFalse(menuManager.isVisible()); - + menuManager = null; menuManager = moveToMenuContrib.getSubMenuManager(categorySelection); assertFalse(menuManager.isVisible()); - + menuManager = null; menuManager = moveToMenuContrib.getSubMenuManager(querySelection); assertFalse(menuManager.isVisible()); - + //teardown } - - + /** * Tests that the category name is shown in the Move To Category submenu, even when they have an @ in their name */ @@ -325,16 +320,16 @@ public class TaskListUiTest extends TestCase { String catNameWithAtBefore = "@CatName"; String catNameWithAtExpected = "@CatName@"; String catNameWithAtActual = ""; - + String catNameNoAtBefore = "CatName"; String catNameNoAtExpected = "CatName"; String catNameNoAtActual = ""; - + MoveToCategoryMenuContributor menuContrib = new MoveToCategoryMenuContributor(); - + catNameWithAtActual = menuContrib.handleAcceleratorKeys(catNameWithAtBefore); catNameNoAtActual = menuContrib.handleAcceleratorKeys(catNameNoAtBefore); - + assertEquals(catNameWithAtExpected, catNameWithAtActual); assertEquals(catNameNoAtExpected, catNameNoAtActual); } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskPlanningEditorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskPlanningEditorTest.java index 7a490a85a..fa01639f1 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskPlanningEditorTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskPlanningEditorTest.java @@ -12,6 +12,8 @@ package org.eclipse.mylyn.tasks.tests; import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.ui.editors.TaskPlanningEditor; import org.eclipse.mylyn.tasks.core.Task; import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; @@ -51,7 +53,7 @@ public class TaskPlanningEditorTest extends TestCase { public void testDirtyOnEdit() { - Task task = new Task(MOCK_HANDLE, MOCK_LABEL); + LocalTask task = new LocalTask(LocalRepositoryConnector.REPOSITORY_URL, "1", MOCK_LABEL); task.setSummary(DESCRIPTION); TasksUiPlugin.getTaskListManager().getTaskList().addTask(task); TasksUiUtil.openEditor(task, false, true); @@ -73,7 +75,7 @@ public class TaskPlanningEditorTest extends TestCase { } public void testNotDirtyOnRename() { - Task task = new Task(MOCK_HANDLE, MOCK_LABEL); + LocalTask task = new LocalTask(LocalRepositoryConnector.REPOSITORY_URL, "1", MOCK_LABEL); task.setSummary(DESCRIPTION); TasksUiPlugin.getTaskListManager().getTaskList().addTask(task); TasksUiUtil.openEditor(task, false, true); @@ -97,7 +99,7 @@ public class TaskPlanningEditorTest extends TestCase { * editor remains dirty */ public void testRenameInDirtyState() { - Task task = new Task(MOCK_HANDLE, MOCK_LABEL); + LocalTask task = new LocalTask(LocalRepositoryConnector.REPOSITORY_URL, "1", MOCK_LABEL); task.setSummary(DESCRIPTION); TasksUiPlugin.getTaskListManager().getTaskList().addTask(task); TasksUiUtil.openEditor(task, false, true); diff --git a/org.eclipse.mylyn.tasks.ui/plugin.xml b/org.eclipse.mylyn.tasks.ui/plugin.xml index e0aeee1f3..2fab5f6e1 100644 --- a/org.eclipse.mylyn.tasks.ui/plugin.xml +++ b/org.eclipse.mylyn.tasks.ui/plugin.xml @@ -89,14 +89,14 @@ </factory> </extension> <extension point="org.eclipse.ui.newWizards"> - <wizard + <!--<wizard canFinishEarly="true" category="org.eclipse.mylyn.wizards" class="org.eclipse.mylyn.internal.tasks.ui.wizards.NewLocalTaskWizard" hasPages="false" icon="icons/etool16/task-new.gif" id="org.eclipse.mylyn.tasks.ui.wizards.new.task" - name="Task"/> + name="Task"/> --> <wizard canFinishEarly="true" category="org.eclipse.mylyn.wizards" @@ -108,10 +108,10 @@ </wizard> <wizard category="org.eclipse.mylyn.wizards" - class="org.eclipse.mylyn.internal.tasks.ui.wizards.NewRepositoryTaskWizard" - icon="icons/etool16/task-repository-new.gif" + class="org.eclipse.mylyn.internal.tasks.ui.wizards.NewTaskWizard" + icon="icons/etool16/task-new.gif" id="org.eclipse.mylyn.tasks.ui.wizards.new.repository.task" - name="Repository Task"/> + name="Task"/> <wizard category="org.eclipse.mylyn.wizards" class="org.eclipse.mylyn.internal.tasks.ui.wizards.NewQueryWizard" @@ -323,16 +323,16 @@ </action> <action - class="org.eclipse.mylyn.internal.tasks.ui.actions.NewRepositoryTaskAction" + class="org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction" enablesFor="*" - icon="icons/etool16/task-repository-new.gif" + icon="icons/etool16/task-new.gif" id="org.eclipse.mylyn.tasks.ui.actions.new.repository.task" - label="New Repository Task" + label="New Task" style="push" toolbarPath="new" - tooltip="New Repository Task"> + tooltip="New Task"> </action> - <action + <!--<action class="org.eclipse.mylyn.internal.tasks.ui.actions.NewLocalTaskAction" icon="icons/etool16/task-new.gif" id="org.eclipse.mylyn.tasks.ui.actions.new.task" @@ -340,7 +340,7 @@ style="push" toolbarPath="new" tooltip="New Task"> - </action> + </action> --> <!-- <action class="org.eclipse.mylyn.internal.tasklist.ui.actions.CopyDetailsAction" @@ -375,13 +375,13 @@ </action> <action - class="org.eclipse.mylyn.internal.tasks.ui.actions.NewRepositoryTaskAction" + class="org.eclipse.mylyn.internal.tasks.ui.actions.NewTaskAction" enablesFor="*" - icon="icons/etool16/task-repository-new.gif" + icon="icons/etool16/task-new.gif" id="org.eclipse.mylyn.tasks.ui.new.repository.task" - label="Repository Task..." + label="Task..." menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/repository" - tooltip="New Repository Task"/> + tooltip="New Task"/> <action class="org.eclipse.mylyn.internal.tasks.ui.actions.NewQueryAction" @@ -404,7 +404,7 @@ name="repository"> </separator> </menu> - <action + <!--<action class="org.eclipse.mylyn.internal.tasks.ui.actions.NewLocalTaskAction" icon="icons/etool16/task-new.gif" id="org.eclipse.mylyn.tasks.ui.actions.new.task" @@ -412,7 +412,7 @@ menubarPath="org.eclipse.mylyn.tasks.ui.menu.new/local" style="push" tooltip="New Task"> - </action> + </action>--> <action class="org.eclipse.mylyn.internal.tasks.ui.actions.NewCategoryAction" icon="icons/etool16/category-new.gif" @@ -814,4 +814,26 @@ id="org.eclipse.mylyn.tasks.ui.elementFactory"> </factory> </extension> + <extension + id="org.eclipse.mylyn.tasks.local.repository" + name="Local Task Repository" + point="org.eclipse.mylyn.tasks.ui.repositories"> + + <connectorCore + class="org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector" + id="org.eclipse.mylyn.tasks.connector.local" + name="Local Repository Connector" + type="local" + userManaged="false"/> + + <connectorUi + brandingIcon="icons/etool16/bug-report.gif" + class="org.eclipse.mylyn.internal.tasks.ui.LocalRepositoryUi" + name="Local Repository Ui" + overlayIcon="icons/eview16/overlay-due.gif"/> + + <externalizer + class="org.eclipse.mylyn.internal.tasks.core.LocalTaskExternalizer" + id="org.eclipse.mylyn.tasks.local.externalizer"/> + </extension> </plugin> diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryUi.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryUi.java new file mode 100644 index 000000000..4efe6fc4e --- /dev/null +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryUi.java @@ -0,0 +1,55 @@ +/******************************************************************************* + * Copyright (c) 2004 - 2006 Mylar committers and others. + * 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 + *******************************************************************************/ + +package org.eclipse.mylyn.internal.tasks.ui; + +import org.eclipse.jface.wizard.IWizard; +import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; +import org.eclipse.mylyn.internal.tasks.ui.wizards.NewLocalTaskWizard; +import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery; +import org.eclipse.mylyn.tasks.core.TaskRepository; +import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi; +import org.eclipse.mylyn.tasks.ui.wizards.AbstractRepositorySettingsPage; + +/** + * @author Rob Elves + */ +public class LocalRepositoryUi extends AbstractRepositoryConnectorUi { + + @Override + public IWizard getNewTaskWizard(TaskRepository taskRepository) { + return new NewLocalTaskWizard(); + } + + + @Override + public IWizard getQueryWizard(TaskRepository repository, AbstractRepositoryQuery queryToEdit) { + return null; + } + + @Override + public String getRepositoryType() { + return LocalRepositoryConnector.REPOSITORY_KIND; + } + + @Override + public AbstractRepositorySettingsPage getSettingsPage() { + return null; + } + + @Override + public boolean hasRichEditor() { + return false; + } + + @Override + public boolean hasSearchPage() { + return false; + } + +} diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewLocalTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewLocalTaskAction.java deleted file mode 100644 index a3c275ba4..000000000 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewLocalTaskAction.java +++ /dev/null @@ -1,126 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 - 2006 University Of British Columbia and others. - * 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: - * University Of British Columbia - initial API and implementation - *******************************************************************************/ - -package org.eclipse.mylyn.internal.tasks.ui.actions; - -import java.util.Calendar; -import java.util.Date; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.mylyn.internal.tasks.ui.ITasksUiConstants; -import org.eclipse.mylyn.internal.tasks.ui.TasksUiPreferenceConstants; -import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; -import org.eclipse.mylyn.internal.tasks.ui.views.TaskInputDialog; -import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; -import org.eclipse.mylyn.tasks.core.ITask; -import org.eclipse.mylyn.tasks.core.Task; -import org.eclipse.mylyn.tasks.core.TaskCategory; -import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; -import org.eclipse.mylyn.tasks.ui.TasksUiUtil; -import org.eclipse.swt.widgets.Display; -import org.eclipse.ui.IViewActionDelegate; -import org.eclipse.ui.IViewPart; - -/** - * @author Mik Kersten - */ -public class NewLocalTaskAction extends Action implements IViewActionDelegate { - - public static final String DESCRIPTION_DEFAULT = "New Task"; - - public static final String ID = "org.eclipse.mylyn.tasks.ui.actions.create.task"; - - public NewLocalTaskAction() { - this(null); - } - - public NewLocalTaskAction(TaskListView view) { - setText(TaskInputDialog.LABEL_SHELL); - setToolTipText(TaskInputDialog.LABEL_SHELL); - setId(ID); - setImageDescriptor(TasksUiImages.TASK_NEW); - } - - public void init(IViewPart view) { - } - - public void run(IAction action) { - run(); - } - - @Override - public void run() { - Task newTask = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), DESCRIPTION_DEFAULT); - scheduleNewTask(newTask); - - Object selectedObject = null; - TaskListView view = TaskListView.getFromActivePerspective(); - if (view != null) { - selectedObject = ((IStructuredSelection) view.getViewer().getSelection()).getFirstElement(); - } - if (selectedObject instanceof TaskCategory) { - TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, (TaskCategory) selectedObject); - } else if (selectedObject instanceof ITask) { - ITask task = (ITask) selectedObject; - if (task.getContainer() instanceof TaskCategory) { - TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, task.getContainer()); - } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) { - TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, - view.getDrilledIntoCategory()); - } else { - TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, - TasksUiPlugin.getTaskListManager().getTaskList().getUncategorizedCategory()); - } - } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) { - TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, - view.getDrilledIntoCategory()); - } else { - if (view != null && view.getDrilledIntoCategory() != null) { - MessageDialog - .openInformation(Display.getCurrent().getActiveShell(), ITasksUiConstants.TITLE_DIALOG, - "The new task has been added to the root of the list, since tasks can not be added to a query."); - } - TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, - TasksUiPlugin.getTaskListManager().getTaskList().getUncategorizedCategory()); - } - - TasksUiUtil.openEditor(newTask, true); - - // if (view != null) { - // view.getViewer().refresh(); - // view.setInRenameAction(true); - // view.getViewer().editElement(newTask, 4); - // view.setInRenameAction(false); - // } - } - - public static void scheduleNewTask(ITask newTask) { - newTask.setCreationDate(new Date()); - - Calendar newTaskSchedule = Calendar.getInstance(); - int scheduledEndHour = TasksUiPlugin.getDefault().getPreferenceStore().getInt( - TasksUiPreferenceConstants.PLANNING_ENDHOUR); - // If past scheduledEndHour set for following day - if (newTaskSchedule.get(Calendar.HOUR_OF_DAY) >= scheduledEndHour) { - TasksUiPlugin.getTaskListManager().setSecheduledIn(newTaskSchedule, 1); - } else { - TasksUiPlugin.getTaskListManager().setScheduledEndOfDay(newTaskSchedule); - } - TasksUiPlugin.getTaskListManager().setScheduledFor(newTask, newTaskSchedule.getTime()); - } - - public void selectionChanged(IAction action, ISelection selection) { - } -} diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewRepositoryTaskAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewRepositoryTaskAction.java deleted file mode 100644 index 7a3b12bd0..000000000 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/NewRepositoryTaskAction.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 - 2006 University Of British Columbia and others. - * 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: - * University Of British Columbia - initial API and implementation - *******************************************************************************/ - -package org.eclipse.mylyn.internal.tasks.ui.actions; - -import java.util.List; - -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.wizard.IWizard; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.mylyn.internal.tasks.ui.wizards.NewRepositoryTaskWizard; -import org.eclipse.mylyn.tasks.core.TaskRepository; -import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi; -import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IViewActionDelegate; -import org.eclipse.ui.IViewPart; -import org.eclipse.ui.PlatformUI; - -/** - * @author Mik Kersten - * @author Eugene Kuleshov - */ -public class NewRepositoryTaskAction extends Action implements IViewActionDelegate { - - public static final String ID = "org.eclipse.mylyn.tasklist.ui.repositories.actions.create"; - - @Override - public void run() { - - IWizard wizard; - List<TaskRepository> repositories = TasksUiPlugin.getRepositoryManager().getAllRepositories(); - if (repositories.size() == 1) { - // NOTE: this click-saving should be generalized - TaskRepository taskRepository = repositories.get(0); - AbstractRepositoryConnectorUi connectorUi = TasksUiPlugin.getRepositoryUi(taskRepository.getKind()); - - wizard = connectorUi.getNewTaskWizard(taskRepository); - } else { - wizard = new NewRepositoryTaskWizard(); - } - - Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); - if (shell != null && !shell.isDisposed()) { - - WizardDialog dialog = new WizardDialog(shell, wizard); - dialog.setBlockOnOpen(true); - dialog.open(); - - } else { - // ignore - } - } - - public void run(IAction action) { - run(); - } - - public void init(IViewPart view) { - } - - public void selectionChanged(IAction action, ISelection selection) { - } - -} diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RenameAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RenameAction.java index 930475d04..58d682320 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RenameAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RenameAction.java @@ -11,6 +11,7 @@ package org.eclipse.mylyn.internal.tasks.ui.actions; import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; import org.eclipse.mylyn.tasks.core.ITaskListElement; import org.eclipse.swt.SWT; @@ -47,9 +48,6 @@ public class RenameAction extends BaseSelectionListenerAction { @Override protected boolean updateSelection(IStructuredSelection selection) { -// Object selected = selection.getFirstElement(); - setEnabled(false); - return false; -// return super.updateSelection(selection); + return selection.getFirstElement() instanceof LocalTask; } } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ReportBugAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ReportBugAction.java index abf92bb36..5d11321d3 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ReportBugAction.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/ReportBugAction.java @@ -14,7 +14,7 @@ import org.eclipse.ui.IWorkbenchWindowActionDelegate; /** * @author Mik Kersten */ -public class ReportBugAction extends NewRepositoryTaskAction implements IWorkbenchWindowActionDelegate { +public class ReportBugAction extends NewTaskAction implements IWorkbenchWindowActionDelegate { public void dispose() { } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java index 62027feb0..053e62826 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java @@ -20,9 +20,10 @@ import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.text.TextViewer; import org.eclipse.mylyn.context.core.ContextCorePlugin; import org.eclipse.mylyn.core.MylarStatusHandler; +import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.ui.RetrieveTitleFromUrlJob; import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; -import org.eclipse.mylyn.internal.tasks.ui.actions.NewLocalTaskAction; import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; import org.eclipse.mylyn.monitor.core.DateUtil; import org.eclipse.mylyn.monitor.ui.MonitorUiPlugin; @@ -79,7 +80,7 @@ import org.eclipse.ui.forms.widgets.Section; public class TaskPlanningEditor extends TaskFormPage { public static final String ID_EDITOR = "org.eclipse.mylyn.tasks.ui.editors.planning"; - + private static final String CLEAR = "Clear"; private static final String LABEL_DUE = "Due:"; @@ -229,14 +230,14 @@ public class TaskPlanningEditor extends TaskFormPage { statusCombo.select(1); } } - if (!(updateTask instanceof AbstractRepositoryTask) && !endDate.isDisposed()) { + if ((updateTask instanceof LocalTask) && !endDate.isDisposed()) { endDate.setText(getTaskDateString(updateTask)); } } @Override public void doSave(IProgressMonitor monitor) { - if (!(task instanceof AbstractRepositoryTask)) { + if (task instanceof LocalTask) { String label = summary.getText(); // task.setDescription(label); TasksUiPlugin.getTaskListManager().getTaskList().renameTask((Task) task, label); @@ -307,17 +308,13 @@ public class TaskPlanningEditor extends TaskFormPage { editorLayout.verticalSpacing = 3; editorComposite.setLayout(editorLayout); editorComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); - // try { - if (task instanceof AbstractRepositoryTask) { - // form.setText("Planning"); - } else { + if (task instanceof LocalTask) { createSummarySection(editorComposite); - // form.setText("Task: " + task.getSummary()); } createPlanningSection(editorComposite); createNotesSection(editorComposite); - if (summary != null && NewLocalTaskAction.DESCRIPTION_DEFAULT.equals(summary.getText())) { + if (summary != null && LocalRepositoryConnector.DEFAULT_SUMMARY.equals(summary.getText())) { summary.setSelection(0, summary.getText().length()); summary.setFocus(); } else if (summary != null) { @@ -370,7 +367,7 @@ public class TaskPlanningEditor extends TaskFormPage { summary.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER); GridDataFactory.fillDefaults().minSize(100, SWT.DEFAULT).grab(true, false).applyTo(summary); - if (task instanceof AbstractRepositoryTask) { + if (!(task instanceof LocalTask)) { summary.setEnabled(false); } else { summary.addModifyListener(new ModifyListener() { @@ -409,7 +406,7 @@ public class TaskPlanningEditor extends TaskFormPage { priorityCombo.select(prioritySelectionIndex); } - if (task instanceof AbstractRepositoryTask) { + if (!(task instanceof LocalTask)) { priorityCombo.setEnabled(false); } else { priorityCombo.addSelectionListener(new SelectionAdapter() { @@ -434,7 +431,7 @@ public class TaskPlanningEditor extends TaskFormPage { } else { statusCombo.select(1); } - if (task instanceof AbstractRepositoryTask) { + if (!(task instanceof LocalTask)) { statusCombo.setEnabled(false); } else { statusCombo.addSelectionListener(new SelectionAdapter() { @@ -477,7 +474,7 @@ public class TaskPlanningEditor extends TaskFormPage { issueReportURL = toolkit.createText(urlComposite, task.getTaskUrl(), SWT.FLAT); issueReportURL.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - if (task instanceof AbstractRepositoryTask) { + if (!(task instanceof LocalTask)) { issueReportURL.setEditable(false); } else { issueReportURL.addModifyListener(new ModifyListener() { @@ -536,8 +533,7 @@ public class TaskPlanningEditor extends TaskFormPage { } /** - * Sets the Get Description button enabled or not depending on whether there - * is a URL specified + * Sets the Get Description button enabled or not depending on whether there is a URL specified */ protected void setButtonStatus() { String url = issueReportURL.getText(); @@ -660,12 +656,12 @@ public class TaskPlanningEditor extends TaskFormPage { } }); - if (task instanceof AbstractRepositoryTask) { - AbstractRepositoryConnectorUi connector = TasksUiPlugin.getRepositoryUi(((AbstractRepositoryTask)task).getRepositoryKind()); - if(connector != null && connector.handlesDueDates((AbstractRepositoryTask)task)){ - dueDatePicker.setEnabled(false); - clearDueDate.setEnabled(false); - } + if (task instanceof AbstractRepositoryTask && !(task instanceof LocalTask)) { + AbstractRepositoryConnectorUi connector = TasksUiPlugin.getRepositoryUi(((AbstractRepositoryTask) task).getRepositoryKind()); + if (connector != null && connector.handlesDueDates((AbstractRepositoryTask) task)) { + dueDatePicker.setEnabled(false); + clearDueDate.setEnabled(false); + } } // Estimated time @@ -771,7 +767,7 @@ public class TaskPlanningEditor extends TaskFormPage { container.setLayoutData(new GridData(GridData.FILL_BOTH)); TaskRepository repository = null; - if (task instanceof AbstractRepositoryTask) { + if (task instanceof AbstractRepositoryTask && !(task instanceof LocalTask)) { AbstractRepositoryTask repositoryTask = (AbstractRepositoryTask) task; repository = TasksUiPlugin.getRepositoryManager().getRepository(repositoryTask.getRepositoryKind(), repositoryTask.getRepositoryUrl()); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java index 761b674a3..104a471fb 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java @@ -29,7 +29,6 @@ import org.eclipse.mylyn.context.core.ContextCorePlugin; import org.eclipse.mylyn.core.MylarStatusHandler; import org.eclipse.mylyn.internal.tasks.ui.ITasksUiConstants; import org.eclipse.mylyn.internal.tasks.ui.RetrieveTitleFromUrlJob; -import org.eclipse.mylyn.internal.tasks.ui.actions.NewLocalTaskAction; import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction; import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery; @@ -39,6 +38,7 @@ import org.eclipse.mylyn.tasks.core.ITaskListElement; import org.eclipse.mylyn.tasks.core.Task; import org.eclipse.mylyn.tasks.core.TaskCategory; import org.eclipse.mylyn.tasks.core.TaskRepository; +import org.eclipse.mylyn.tasks.ui.TaskListManager; import org.eclipse.mylyn.tasks.ui.TaskTransfer; import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; import org.eclipse.mylyn.tasks.ui.TasksUiUtil; @@ -222,14 +222,11 @@ public class TaskListDropAdapter extends ViewerDropAdapter { // } retrieveTaskDescription(url); - newTask = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), urlTitle); - NewLocalTaskAction.scheduleNewTask(newTask); + newTask = TasksUiPlugin.getTaskListManager().createNewLocalTask(urlTitle); if (newTask == null) { return false; } - - newTask.setPriority(Task.PriorityLevel.P3.toString()); newTask.setTaskUrl(url); // NOTE: setting boolean param as false so that we go directly to @@ -241,13 +238,13 @@ public class TaskListDropAdapter extends ViewerDropAdapter { } public boolean createTaskFromString(String title) { - newTask = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), title); - NewLocalTaskAction.scheduleNewTask(newTask); + //newTask = new Task(TasksUiPlugin.getTaskListManager().genUniqueTaskHandle(), title); + newTask = TasksUiPlugin.getTaskListManager().createNewLocalTask(title); if (newTask == null) { return false; } else { - newTask.setPriority(Task.PriorityLevel.P3.toString()); + //newTask.setPriority(Task.PriorityLevel.P3.toString()); TasksUiUtil.openEditor(newTask, false); return true; } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java index 773465fac..b944756b1 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java @@ -56,10 +56,10 @@ import org.eclipse.mylyn.internal.tasks.ui.TaskArchiveFilter; import org.eclipse.mylyn.internal.tasks.ui.TaskCompletionFilter; import org.eclipse.mylyn.internal.tasks.ui.TaskListColorsAndFonts; import org.eclipse.mylyn.internal.tasks.ui.TaskListPatternFilter; -import org.eclipse.mylyn.internal.tasks.ui.TasksUiPreferenceConstants; import org.eclipse.mylyn.internal.tasks.ui.TaskPriorityFilter; import org.eclipse.mylyn.internal.tasks.ui.TaskWorkingSetFilter; import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; +import org.eclipse.mylyn.internal.tasks.ui.TasksUiPreferenceConstants; import org.eclipse.mylyn.internal.tasks.ui.actions.CollapseAllAction; import org.eclipse.mylyn.internal.tasks.ui.actions.CopyTaskDetailsAction; import org.eclipse.mylyn.internal.tasks.ui.actions.DeleteAction; @@ -72,7 +72,6 @@ import org.eclipse.mylyn.internal.tasks.ui.actions.GoUpAction; import org.eclipse.mylyn.internal.tasks.ui.actions.LinkWithEditorAction; import org.eclipse.mylyn.internal.tasks.ui.actions.MarkTaskCompleteAction; import org.eclipse.mylyn.internal.tasks.ui.actions.MarkTaskIncompleteAction; -import org.eclipse.mylyn.internal.tasks.ui.actions.NewLocalTaskAction; import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTaskListElementAction; import org.eclipse.mylyn.internal.tasks.ui.actions.OpenTasksUiPreferencesAction; import org.eclipse.mylyn.internal.tasks.ui.actions.OpenWithBrowserAction; @@ -85,6 +84,7 @@ import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction; import org.eclipse.mylyn.internal.tasks.ui.actions.TaskDeactivateAction; import org.eclipse.mylyn.internal.tasks.ui.actions.TaskListElementPropertiesAction; import org.eclipse.mylyn.internal.tasks.ui.views.TaskListTableSorter.SortByIndex; +import org.eclipse.mylyn.internal.tasks.ui.wizards.NewLocalTaskWizard; import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery; import org.eclipse.mylyn.tasks.core.AbstractRepositoryTask; import org.eclipse.mylyn.tasks.core.AbstractTaskContainer; @@ -222,7 +222,7 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener { private OpenWithBrowserAction openWithBrowser; - private NewLocalTaskAction newLocalTaskAction; + //private NewLocalTaskAction newLocalTaskAction; private RenameAction renameAction; @@ -843,14 +843,14 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener { public void keyPressed(KeyEvent e) { if (e.keyCode == SWT.INSERT) { - newLocalTaskAction.run(); - } else if ((e.keyCode & SWT.KEYCODE_BIT) != 0) { - // Do nothing here since it is key code + new NewLocalTaskWizard().performFinish(); } else if (e.keyCode == SWT.F2 && e.stateMask == 0) { if (renameAction.isEnabled()) { renameAction.run(); } - } else if (e.keyCode == 'c' && e.stateMask == SWT.MOD1) { + } else if ((e.keyCode & SWT.KEYCODE_BIT) != 0) { + // Do nothing here since it is key code + } else if (e.keyCode == 'c' && e.stateMask == SWT.MOD1) { copyDetailsAction.run(); } else if (e.keyCode == SWT.DEL) { deleteAction.run(); @@ -1228,8 +1228,6 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener { } } else if (action instanceof DeleteAction) { action.setEnabled(true); - } else if (action instanceof NewLocalTaskAction) { - action.setEnabled(false); } else if (action instanceof OpenTaskListElementAction) { action.setEnabled(true); } else if (action instanceof CopyTaskDetailsAction) { @@ -1247,11 +1245,6 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener { action.setEnabled(false); else action.setEnabled(true); - } else if (action instanceof NewLocalTaskAction) { - if (element instanceof TaskArchive) - action.setEnabled(false); - else - action.setEnabled(true); } else if (action instanceof GoIntoAction) { TaskCategory cat = (TaskCategory) element; if (cat.getChildren().size() > 0) { @@ -1288,7 +1281,7 @@ public class TaskListView extends ViewPart implements IPropertyChangeListener { goIntoAction = new GoIntoAction(); goUpAction = new GoUpAction(drillDownAdapter); - newLocalTaskAction = new NewLocalTaskAction(this); + //newLocalTaskAction = new NewLocalTaskAction(this); removeFromCategoryAction = new RemoveFromCategoryAction(this); renameAction = new RenameAction(this); filteredTree.getViewer().addSelectionChangedListener(renameAction); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalTaskWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalTaskWizard.java index 48ef94a7b..079bb35a2 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalTaskWizard.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewLocalTaskWizard.java @@ -10,28 +10,79 @@ package org.eclipse.mylyn.internal.tasks.ui.wizards; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; -import org.eclipse.mylyn.internal.tasks.ui.actions.NewLocalTaskAction; +import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; +import org.eclipse.mylyn.tasks.core.ITask; +import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; +import org.eclipse.mylyn.tasks.ui.TasksUiUtil; import org.eclipse.ui.INewWizard; import org.eclipse.ui.IWorkbench; /** - * @author Mik Kersten + * @author Rob Elves */ public class NewLocalTaskWizard extends Wizard implements INewWizard { + public NewLocalTaskWizard() { + setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY); + setNeedsProgressMonitor(true); + } + public void init(IWorkbench workbench, IStructuredSelection selection) { setForcePreviousAndNextButtons(false); } - + + @Override + public void addPages() { + // ignore + } + @Override public boolean canFinish() { return true; } - + @Override public boolean performFinish() { - new NewLocalTaskAction().run(); - return true; + +// LocalTask newTask = new LocalTask(LocalRepositoryConnector.REPOSITORY_URL, TasksUiPlugin.getTaskListManager() +// .genUniqueTaskHandle(), LocalRepositoryConnector.DEFAULT_SUMMARY); +// TaskListManager.scheduleNewTask(newTask); +// +// Object selectedObject = null; +// TaskListView view = TaskListView.getFromActivePerspective(); +// if (view != null) { +// selectedObject = ((IStructuredSelection) view.getViewer().getSelection()).getFirstElement(); +// } +// if (selectedObject instanceof TaskCategory) { +// TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, (TaskCategory) selectedObject); +// } else if (selectedObject instanceof ITask) { +// ITask task = (ITask) selectedObject; +// if (task.getContainer() instanceof TaskCategory) { +// TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, task.getContainer()); +// } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) { +// TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, view.getDrilledIntoCategory()); +// } else { +// TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, +// TasksUiPlugin.getTaskListManager().getTaskList().getUncategorizedCategory()); +// } +// } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) { +// TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, view.getDrilledIntoCategory()); +// } else { +// if (view != null && view.getDrilledIntoCategory() != null) { +// MessageDialog.openInformation(Display.getCurrent().getActiveShell(), ITasksUiConstants.TITLE_DIALOG, +// "The new task has been added to the root of the list, since tasks can not be added to a query."); +// } +// TasksUiPlugin.getTaskListManager().getTaskList().addTask(newTask, +// TasksUiPlugin.getTaskListManager().getTaskList().getUncategorizedCategory()); +// } + ITask task = TasksUiPlugin.getTaskListManager().createNewLocalTask(null); + if (task != null) { + TasksUiUtil.openEditor(task, true); + return true; + } else { + return false; + } + } } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryTaskWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryTaskWizard.java deleted file mode 100644 index 2a9e4c151..000000000 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/NewRepositoryTaskWizard.java +++ /dev/null @@ -1,30 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 - 2006 University Of British Columbia and others. - * 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: - * University Of British Columbia - initial API and implementation - *******************************************************************************/ - -package org.eclipse.mylyn.internal.tasks.ui.wizards; - -import org.eclipse.mylyn.tasks.core.TaskRepositoryFilter; - -/** - * @author Mik Kersten - * @author Eugene Kuleshov - * @author Steffen Pingel - */ -public class NewRepositoryTaskWizard extends MultiRepositoryAwareWizard { - - private static final String TITLE = "New Repository Task"; - - public NewRepositoryTaskWizard() { - super(new NewRepositoryTaskPage(TaskRepositoryFilter.CAN_CREATE_NEW_TASK), TITLE); - setNeedsProgressMonitor(true); - } - -} diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java index 3836d5acb..3770429c2 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java @@ -96,8 +96,7 @@ public abstract class SelectRepositoryPage extends WizardSelectionPage { List<TaskRepository> repositories = new ArrayList<TaskRepository>(); TaskRepositoryManager repositoryManager = TasksUiPlugin.getRepositoryManager(); for (AbstractRepositoryConnector connector : repositoryManager.getRepositoryConnectors()) { - Set<TaskRepository> connectorRepositories = repositoryManager - .getRepositories(connector.getRepositoryType()); + Set<TaskRepository> connectorRepositories = repositoryManager.getRepositories(connector.getRepositoryType()); for (TaskRepository repository : connectorRepositories) { if (taskRepositoryFilter.accept(repository, connector)) { repositories.add(repository); @@ -114,7 +113,7 @@ public abstract class SelectRepositoryPage extends WizardSelectionPage { Table table = createTableViewer(container); viewer.setSorter(new TaskRepositoriesSorter()); - + GridData gridData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL); table.setLayoutData(gridData); @@ -140,8 +139,8 @@ public abstract class SelectRepositoryPage extends WizardSelectionPage { viewer = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); viewer.setContentProvider(new RepositoryContentProvider()); // viewer.setLabelProvider(new TaskRepositoryLabelProvider()); - viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(), PlatformUI - .getWorkbench().getDecoratorManager().getLabelDecorator())); + viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(), + PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator())); viewer.setInput(TasksUiPlugin.getRepositoryManager().getRepositoryConnectors()); viewer.addSelectionChangedListener(new ISelectionChangedListener() { @@ -149,9 +148,10 @@ public abstract class SelectRepositoryPage extends WizardSelectionPage { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); if (selection.getFirstElement() instanceof TaskRepository) { setSelectedNode(new CustomWizardNode((TaskRepository) selection.getFirstElement())); - setPageComplete(true); + setPageComplete(true); + } else { + setPageComplete(false); } - setPageComplete(false); } }); @@ -175,7 +175,7 @@ public abstract class SelectRepositoryPage extends WizardSelectionPage { public boolean canFlipToNextPage() { return getSelectedNode() != null && getNextPage() != null; } - + public boolean canFinish() { return getSelectedNode() != null && getNextPage() == null; } @@ -186,10 +186,10 @@ public abstract class SelectRepositoryPage extends WizardSelectionPage { // by container return false; } - + return getSelectedNode().getWizard().performFinish(); } - + private class CustomWizardNode implements IWizardNode { private final TaskRepository repository; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractRepositoryConnectorUi.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractRepositoryConnectorUi.java index a00d0ac0c..e70a87f25 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractRepositoryConnectorUi.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/AbstractRepositoryConnectorUi.java @@ -19,6 +19,7 @@ import org.eclipse.jface.wizard.IWizard; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.mylyn.core.MylarStatusHandler; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.core.WebTask; import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; import org.eclipse.mylyn.internal.tasks.ui.wizards.CommonAddExistingTaskWizard; @@ -121,7 +122,7 @@ public abstract class AbstractRepositoryConnectorUi { * Task kind overlay, recommended to override with connector-specific overlay. */ public ImageDescriptor getTaskKindOverlay(AbstractRepositoryTask task) { - if (!hasRichEditor() || task instanceof WebTask) { + if (!(task instanceof LocalTask) && (!hasRichEditor() || task instanceof WebTask)) { return TasksUiImages.OVERLAY_WEB; } return null; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskListManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskListManager.java index 757ff071f..c44c549fa 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskListManager.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskListManager.java @@ -28,22 +28,28 @@ import java.util.TimerTask; import java.util.concurrent.ConcurrentHashMap; import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.mylyn.context.core.ContextCorePlugin; import org.eclipse.mylyn.context.core.IInteractionContext; import org.eclipse.mylyn.context.core.IInteractionContextListener; import org.eclipse.mylyn.context.core.IInteractionElement; import org.eclipse.mylyn.core.MylarStatusHandler; import org.eclipse.mylyn.internal.context.core.InteractionContextManager; +import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylyn.internal.tasks.core.TaskDataManager; import org.eclipse.mylyn.internal.tasks.core.WebTask; +import org.eclipse.mylyn.internal.tasks.ui.ITasksUiConstants; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPreferenceConstants; import org.eclipse.mylyn.internal.tasks.ui.WorkspaceAwareContextStore; import org.eclipse.mylyn.internal.tasks.ui.util.TaskListSaveManager; import org.eclipse.mylyn.internal.tasks.ui.util.TaskListWriter; import org.eclipse.mylyn.internal.tasks.ui.views.TaskActivationHistory; +import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; import org.eclipse.mylyn.monitor.core.InteractionEvent; import org.eclipse.mylyn.tasks.core.AbstractRepositoryTask; import org.eclipse.mylyn.tasks.core.AbstractTaskContainer; @@ -56,9 +62,10 @@ import org.eclipse.mylyn.tasks.core.ITaskListElement; import org.eclipse.mylyn.tasks.core.RepositoryTaskAttribute; import org.eclipse.mylyn.tasks.core.RepositoryTaskData; import org.eclipse.mylyn.tasks.core.Task; +import org.eclipse.mylyn.tasks.core.TaskCategory; import org.eclipse.mylyn.tasks.core.TaskList; import org.eclipse.mylyn.tasks.core.TaskRepository; -import org.eclipse.mylyn.tasks.core.TaskRepositoryManager; +import org.eclipse.swt.widgets.Display; /** * TODO: pull task activity management out into new TaskActivityManager @@ -175,7 +182,8 @@ public class TaskListManager implements IPropertyChangeListener { } public void interestChanged(List<IInteractionElement> elements) { - List<InteractionEvent> events = ContextCorePlugin.getContextManager().getActivityMetaContext() + List<InteractionEvent> events = ContextCorePlugin.getContextManager() + .getActivityMetaContext() .getInteractionHistory(); InteractionEvent event = events.get(events.size() - 1); parseInteractionEvent(event); @@ -267,7 +275,8 @@ public class TaskListManager implements IPropertyChangeListener { if (!TasksUiPlugin.getTaskListManager().isTaskListInitialized()) { return; } - List<InteractionEvent> events = ContextCorePlugin.getContextManager().getActivityMetaContext() + List<InteractionEvent> events = ContextCorePlugin.getContextManager() + .getActivityMetaContext() .getInteractionHistory(); for (InteractionEvent event : events) { parseInteractionEvent(event); @@ -343,8 +352,8 @@ public class TaskListManager implements IPropertyChangeListener { for (DateRangeContainer day : activityWeekDays) { if (day.includes(tempCalendar) && !day.getChildren().contains(task)) { - day.addTask(new DateRangeActivityDelegate(day, task, tempCalendar, tempCalendar, this - .getElapsedTime(task))); + day.addTask(new DateRangeActivityDelegate(day, task, tempCalendar, tempCalendar, + this.getElapsedTime(task))); } } } @@ -686,13 +695,11 @@ public class TaskListManager implements IPropertyChangeListener { } /** - * Every call to this method generates a unique handle, subsequent calls - * will have incremented task numbers + * Every call to this method generates a unique handle, subsequent calls will have incremented task numbers */ - public String genUniqueTaskHandle() { - return TaskRepositoryManager.PREFIX_LOCAL + taskList.getNextTaskNum(); - } - +// public String genUniqueTaskHandle() { +// return TaskRepositoryManager.PREFIX_LOCAL + taskList.getNextTaskNum(); +// } public void refactorRepositoryUrl(String oldUrl, String newUrl) { if (oldUrl == null || newUrl == null || oldUrl.equals(newUrl)) { return; @@ -740,10 +747,8 @@ public class TaskListManager implements IPropertyChangeListener { if (task instanceof AbstractRepositoryTask) { AbstractRepositoryTask repositoryTask = (AbstractRepositoryTask) task; if (repositoryTask.getRepositoryUrl().equals(oldRepositoryUrl)) { - RepositoryTaskData newTaskData = taskDataManager.getNewTaskData(repositoryTask - .getHandleIdentifier()); - RepositoryTaskData oldTaskData = taskDataManager.getOldTaskData(repositoryTask - .getHandleIdentifier()); + RepositoryTaskData newTaskData = taskDataManager.getNewTaskData(repositoryTask.getHandleIdentifier()); + RepositoryTaskData oldTaskData = taskDataManager.getOldTaskData(repositoryTask.getHandleIdentifier()); Set<RepositoryTaskAttribute> edits = taskDataManager.getEdits(repositoryTask.getHandleIdentifier()); taskDataManager.remove(repositoryTask.getHandleIdentifier()); @@ -1119,12 +1124,10 @@ public class TaskListManager implements IPropertyChangeListener { /** * @param element - * tasklist element to retrieve a task for currently will work - * for (ITask, AbstractQueryHit) + * tasklist element to retrieve a task for currently will work for (ITask, AbstractQueryHit) * @param force - - * if a query hit is passed you can either force construction of - * the task or not (if not and no task, null is returned) TODO: - * Move into TaskList? + * if a query hit is passed you can either force construction of the task or not (if not and no task, + * null is returned) TODO: Move into TaskList? */ public ITask getTaskForElement(ITaskListElement element, boolean force) { ITask task = null; @@ -1150,4 +1153,62 @@ public class TaskListManager implements IPropertyChangeListener { public int getStartHour() { return START_HOUR; } + + public static void scheduleNewTask(ITask newTask) { + newTask.setCreationDate(new Date()); + + Calendar newTaskSchedule = Calendar.getInstance(); + int scheduledEndHour = TasksUiPlugin.getDefault().getPreferenceStore().getInt( + TasksUiPreferenceConstants.PLANNING_ENDHOUR); + // If past scheduledEndHour set for following day + if (newTaskSchedule.get(Calendar.HOUR_OF_DAY) >= scheduledEndHour) { + TasksUiPlugin.getTaskListManager().setSecheduledIn(newTaskSchedule, 1); + } else { + TasksUiPlugin.getTaskListManager().setScheduledEndOfDay(newTaskSchedule); + } + TasksUiPlugin.getTaskListManager().setScheduledFor(newTask, newTaskSchedule.getTime()); + } + + /** + * Creates a new local task and schedules for today + * @param summary if null DEFAULT_SUMMARY (New Task) used. + */ + public LocalTask createNewLocalTask(String summary) { + if (summary == null) { + summary = LocalRepositoryConnector.DEFAULT_SUMMARY; + } + LocalTask newTask = new LocalTask(LocalRepositoryConnector.REPOSITORY_URL, "" + taskList.getNextTaskNum(), + summary); + newTask.setPriority(Task.PriorityLevel.P3.toString()); + + scheduleNewTask(newTask); + + Object selectedObject = null; + TaskListView view = TaskListView.getFromActivePerspective(); + if (view != null) { + selectedObject = ((IStructuredSelection) view.getViewer().getSelection()).getFirstElement(); + } + if (selectedObject instanceof TaskCategory) { + taskList.addTask(newTask, (TaskCategory) selectedObject); + } else if (selectedObject instanceof ITask) { + ITask task = (ITask) selectedObject; + if (task.getContainer() instanceof TaskCategory) { + taskList.addTask(newTask, task.getContainer()); + } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) { + taskList.addTask(newTask, view.getDrilledIntoCategory()); + } else { + taskList.addTask(newTask, TasksUiPlugin.getTaskListManager().getTaskList().getUncategorizedCategory()); + } + } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) { + taskList.addTask(newTask, view.getDrilledIntoCategory()); + } else { + if (view != null && view.getDrilledIntoCategory() != null) { + MessageDialog.openInformation(Display.getCurrent().getActiveShell(), ITasksUiConstants.TITLE_DIALOG, + "The new task has been added to the root of the list, since tasks can not be added to a query."); + } + taskList.addTask(newTask, taskList.getUncategorizedCategory()); + } + return newTask; + } + } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java index 62eb889de..b4e11afc9 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java @@ -40,6 +40,7 @@ import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.mylyn.context.core.ContextCorePlugin; import org.eclipse.mylyn.core.MylarStatusHandler; import org.eclipse.mylyn.internal.context.core.ContextPreferenceContstants; +import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; import org.eclipse.mylyn.internal.tasks.core.TaskDataManager; import org.eclipse.mylyn.internal.tasks.ui.IDynamicSubMenuContributor; import org.eclipse.mylyn.internal.tasks.ui.ITaskHighlighter; @@ -380,29 +381,8 @@ public class TasksUiPlugin extends AbstractUIPlugin implements IStartup { // instantiates taskDataManager readOfflineReports(); - - // add the automatically created templates - for (AbstractRepositoryConnector connector : taskRepositoryManager.getRepositoryConnectors()) { - connector.setTaskDataManager(taskDataManager); - - for (RepositoryTemplate template : connector.getTemplates()) { - if (template.addAutomatically) { - try { - TaskRepository taskRepository = taskRepositoryManager.getRepository( - connector.getRepositoryType(), template.repositoryUrl); - if (taskRepository == null) { - taskRepository = new TaskRepository(connector.getRepositoryType(), - template.repositoryUrl, template.version); - taskRepository.setRepositoryLabel(template.label); - taskRepository.setAnonymous(true); - taskRepositoryManager.addRepository(taskRepository, getRepositoriesFilePath()); - } - } catch (Throwable t) { - MylarStatusHandler.fail(t, "Could not load repository template", false); - } - } - } - } + + loadTemplateRepositories(); // NOTE: task list must be read before Task List view can be // initialized @@ -506,6 +486,38 @@ public class TasksUiPlugin extends AbstractUIPlugin implements IStartup { } } + private void loadTemplateRepositories() { + + // Add standard local task repository + TaskRepository localRepository = new TaskRepository(LocalRepositoryConnector.REPOSITORY_KIND, LocalRepositoryConnector.REPOSITORY_URL, LocalRepositoryConnector.REPOSITORY_VERSION); + localRepository.setRepositoryLabel(LocalRepositoryConnector.REPOSITORY_LABEL); + localRepository.setAnonymous(true); + taskRepositoryManager.addRepository(localRepository, getRepositoriesFilePath()); + + // Add the automatically created templates + for (AbstractRepositoryConnector connector : taskRepositoryManager.getRepositoryConnectors()) { + connector.setTaskDataManager(taskDataManager); + + for (RepositoryTemplate template : connector.getTemplates()) { + if (template.addAutomatically) { + try { + TaskRepository taskRepository = taskRepositoryManager.getRepository( + connector.getRepositoryType(), template.repositoryUrl); + if (taskRepository == null) { + taskRepository = new TaskRepository(connector.getRepositoryType(), + template.repositoryUrl, template.version); + taskRepository.setRepositoryLabel(template.label); + taskRepository.setAnonymous(true); + taskRepositoryManager.addRepository(taskRepository, getRepositoriesFilePath()); + } + } catch (Throwable t) { + MylarStatusHandler.fail(t, "Could not load repository template", false); + } + } + } + } + } + private void checkForCredentials() { for (TaskRepository repository : taskRepositoryManager.getAllRepositories()) { if (!repository.isAnonymous() @@ -591,6 +603,7 @@ public class TasksUiPlugin extends AbstractUIPlugin implements IStartup { getTaskListManager().resetTaskList(); getTaskListManager().getTaskActivationHistory().clear(); getRepositoryManager().readRepositories(getRepositoriesFilePath()); + loadTemplateRepositories(); ContextCorePlugin.getContextManager().loadActivityMetaContext(); getTaskListManager().setTaskListFile( new File(getDataDirectory() + File.separator + ITasksUiConstants.DEFAULT_TASK_LIST_FILE)); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java index 0b029d181..b15a20daa 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiUtil.java @@ -38,6 +38,7 @@ import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.jface.window.Window; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.mylyn.core.MylarStatusHandler; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPreferenceConstants; import org.eclipse.mylyn.internal.tasks.ui.editors.CategoryEditor; import org.eclipse.mylyn.internal.tasks.ui.editors.CategoryEditorInput; @@ -198,7 +199,10 @@ public class TasksUiUtil { task = (ITask) element; } - if (task instanceof AbstractRepositoryTask) { + + if(task instanceof LocalTask) { + TasksUiUtil.openEditor(task, false); + } else if (task instanceof AbstractRepositoryTask) { final AbstractRepositoryTask repositoryTask = (AbstractRepositoryTask) task; String repositoryKind = repositoryTask.getRepositoryKind(); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java index b62e09c7f..a2de68ea3 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/editors/TaskEditor.java @@ -22,6 +22,7 @@ import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.mylyn.core.MylarStatusHandler; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPreferenceConstants; import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; import org.eclipse.mylyn.internal.tasks.ui.editors.TaskEditorActionContributor; @@ -57,7 +58,7 @@ import org.eclipse.ui.progress.IWorkbenchSiteProgressService; public class TaskEditor extends SharedHeaderFormEditor implements IBusyEditor { public static final String ID_EDITOR = "org.eclipse.mylyn.tasks.ui.editors.task"; - + private static final String ISSUE_WEB_PAGE_LABEL = "Browser"; protected ITask task; @@ -210,9 +211,8 @@ public class TaskEditor extends SharedHeaderFormEditor implements IBusyEditor { } /** - * Saves the multi-page editor's document as another file. Also updates the - * text for page 0's tab, and updates this multi-page editor's input to - * correspond to the nested editor's. + * Saves the multi-page editor's document as another file. Also updates the text for page 0's tab, and updates this + * multi-page editor's input to correspond to the nested editor's. * * @see org.eclipse.ui.ISaveablePart#doSaveAs() */ @@ -486,12 +486,12 @@ public class TaskEditor extends SharedHeaderFormEditor implements IBusyEditor { IEditorInput input = getEditorInput(); if (input instanceof TaskEditorInput) { ITask task = ((TaskEditorInput) input).getTask(); - if (task instanceof AbstractRepositoryTask) { + if (task instanceof LocalTask) { + getHeaderForm().getForm().setText("Task: " + task.getSummary()); + } else { setFormHeaderImage(((AbstractRepositoryTask) task).getRepositoryKind()); setFormHeaderLabel((AbstractRepositoryTask) task); return; - } else { - getHeaderForm().getForm().setText("Task: " + task.getSummary()); } } else if (input instanceof RepositoryTaskEditorInput) { ITask task = ((RepositoryTaskEditorInput) input).getRepositoryTask(); @@ -511,8 +511,7 @@ public class TaskEditor extends SharedHeaderFormEditor implements IBusyEditor { private void setFormHeaderImage(String repositoryKind) { ImageDescriptor overlay = TasksUiPlugin.getDefault().getOverlayIcon(repositoryKind); - Image image = TasksUiImages.getImageWithOverlay(TasksUiImages.REPOSITORY, overlay, false, - false); + Image image = TasksUiImages.getImageWithOverlay(TasksUiImages.REPOSITORY, overlay, false, false); if (getHeaderForm() != null) { getHeaderForm().getForm().setImage(image); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewWebTaskWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewWebTaskWizard.java index fe740f3b0..9c5c05aab 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewWebTaskWizard.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/wizards/NewWebTaskWizard.java @@ -36,7 +36,7 @@ public class NewWebTaskWizard extends Wizard implements INewWizard { this.taskRepository = taskRepository; this.newTaskUrl = newTaskUrl; - setWindowTitle("New Repository Task"); + setWindowTitle("New Task"); setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY); } diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracWebClientTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracWebClientTest.java index 0720548bc..2b51002f4 100644 --- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracWebClientTest.java +++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/TracWebClientTest.java @@ -40,7 +40,7 @@ public class TracWebClientTest extends AbstractTracClientRepositoryTest { } public void testValidateAnyPage() throws Exception { - connect("http://mylar.eclipse.org/"); + connect("http://mylyn.eclipse.org/"); try { repository.validate(); fail("Expected TracException"); diff --git a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/NewTracTaskWizard.java b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/NewTracTaskWizard.java index 0cf84b6b0..41b13d85b 100644 --- a/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/NewTracTaskWizard.java +++ b/org.eclipse.mylyn.trac.ui/src/org/eclipse/mylyn/internal/trac/ui/wizard/NewTracTaskWizard.java @@ -39,7 +39,7 @@ public class NewTracTaskWizard extends Wizard implements INewWizard { newTaskPage = new NewTracTaskPage(taskRepository); - setWindowTitle("New Repository Task"); + setWindowTitle("New Task"); setDefaultPageImageDescriptor(TasksUiImages.BANNER_REPOSITORY); setNeedsProgressMonitor(true); |