Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core')
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java193
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java3
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryQuery.java53
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractTaskContainer.java52
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeActivityDelegate.java30
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeContainer.java17
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java66
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java8
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITaskListExternalizer.java15
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/QueryHitCollector.java2
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/Task.java54
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskArchive.java4
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskCategory.java4
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java80
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/UncategorizedCategory.java4
15 files changed, 153 insertions, 432 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java
deleted file mode 100644
index 74940e0a4..000000000
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java
+++ /dev/null
@@ -1,193 +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.mylar.tasks.core;
-
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil;
-import org.eclipse.mylar.tasks.core.Task.PriorityLevel;
-
-/**
- * @author Mik Kersten
- */
-/*public*/ abstract class AbstractQueryHit extends PlatformObject implements ITaskListElement {
-
- protected TaskList taskList;
-
- protected AbstractRepositoryTask task;
-
- protected String repositoryUrl;
-
- protected String summary;
-
- protected String priority = PriorityLevel.getDefault().toString();
-
- protected String taskId;
-
- private boolean completed = false;
-
- private boolean isNotified = false;
-
- private AbstractRepositoryQuery parent;
-
- protected AbstractQueryHit(TaskList taskList, String repositoryUrl, String description, String taskId) {
- this.taskList = taskList;
- this.repositoryUrl = repositoryUrl;
- this.summary = description;
- this.taskId = taskId;
- }
-
- public AbstractRepositoryQuery getParent() {
- return parent;
- }
-
- public void setParent(AbstractRepositoryQuery parent) {
- this.parent = parent;
- }
-
- public String getRepositoryUrl() {
- return repositoryUrl;
- }
-
- public void setRepositoryUrl(String repositoryUrl) {
- this.repositoryUrl = repositoryUrl;
- }
-
- public String getSummary() {
- if (task != null) {
- return task.getSummary();
- } else {
- return summary;
- }
- }
-
- public AbstractRepositoryTask getOrCreateCorrespondingTask() {
- if (taskList == null) {
- return null;
- }
-
- ITask existingTask = taskList.getTask(getHandleIdentifier());
- if (existingTask instanceof AbstractRepositoryTask) {
- this.task = (AbstractRepositoryTask) existingTask;
- } else {
- task = createTask();
- task.setCompleted(completed);
- taskList.addTask(task);
- }
- return task;
- }
-
- //@Deprecated
- protected abstract AbstractRepositoryTask createTask();
-
- /**
- * @return null if there is no corresponding task
- */
- public AbstractRepositoryTask getCorrespondingTask() {
- return task;
- }
-
- public void setCorrespondingTask(AbstractRepositoryTask task) {
- this.task = task;
- }
-
- public boolean isCompleted() {
- if (task != null) {
- return task.isCompleted();
- } else {
- return completed;
- }
- }
-
- public void setCompleted(boolean completed) {
- this.completed = completed;
- }
-
- public final String getHandleIdentifier() {
- if (task != null) {
- return task.getHandleIdentifier();
- }
- return RepositoryTaskHandleUtil.getHandle(repositoryUrl, taskId);
- }
-
- /**
- * @return Unique identifier for this task on the corresponding server, must
- * be robust to changing attributes on the task.
- */
- public String getTaskId() {
- return taskId;
- }
-
- /**
- * @return An ID that can be presented to the user for identifying the task,
- * override to return null if no such ID exists.
- */
- public String getIdentifyingLabel() {
- return getTaskId();
- }
-
- public boolean isNotified() {
- return isNotified;
- }
-
- public void setNotified(boolean notified) {
- isNotified = notified;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof AbstractQueryHit)) {
- return false;
- }
- AbstractQueryHit hit = (AbstractQueryHit) obj;
- return hit.getHandleIdentifier().equals(this.getHandleIdentifier());
- }
-
- @Override
- public int hashCode() {
- return this.getHandleIdentifier().hashCode();
- }
-
- /**
- * @return the url of the hit without any additional login information etc.
- */
- public String getUrl() {
- return "";
- }
-
- public String getPriority() {
- if (task != null) {
- return task.getPriority();
- } else {
- return priority;
- }
- }
-
- public void setPriority(String priority) {
- this.priority = priority;
- }
-
- public void setSummary(String description) {
- this.summary = description;
- }
-
- public void setHandleIdentifier(String id) {
- // ignore
- }
-
- public int compareTo(ITaskListElement taskListElement) {
- return this.taskId.compareTo(((AbstractQueryHit) taskListElement).taskId);
- }
-
- @Deprecated
- public void setTaskId(String taskId) {
- this.taskId = taskId;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java
index 7b129b019..214c8d548 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryConnector.java
@@ -141,7 +141,7 @@ public abstract class AbstractRepositoryConnector {
AbstractRepositoryTask subTask = createTaskFromExistingId(repository, subId, false,
new SubProgressMonitor(monitor, 1));
if (subTask != null) {
- repositoryTask.addSubTask(subTask);
+ taskList.addTask(subTask, repositoryTask);
}
}
}
@@ -431,4 +431,5 @@ public abstract class AbstractRepositoryConnector {
public void setTaskDataManager(TaskDataManager taskDataManager) {
this.taskDataManager = taskDataManager;
}
+
}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryQuery.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryQuery.java
index 427f2e2d1..dc459ab77 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryQuery.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractRepositoryQuery.java
@@ -10,7 +10,6 @@
*******************************************************************************/
package org.eclipse.mylar.tasks.core;
-import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
@@ -33,21 +32,8 @@ public abstract class AbstractRepositoryQuery extends AbstractTaskContainer {
public abstract String getRepositoryKind();
- /**
- * Query must be added to tasklist or synchronization will result in empty
- * result set due to removeOrphanedHits(). All hits that don't have a query
- * in the tasklist are removed.
- */
- public AbstractRepositoryQuery(String description, TaskList taskList) {
- super(description, taskList);
- }
-
- public boolean isArchive() {
- return false;
- }
-
- public void setIsArchive(boolean isArchive) {
- // ignore
+ public AbstractRepositoryQuery(String description) {
+ super(description);
}
public synchronized Set<AbstractRepositoryTask> getHits() {
@@ -60,24 +46,20 @@ public abstract class AbstractRepositoryQuery extends AbstractTaskContainer {
return repositoryTasks;
}
- public synchronized void updateHits(Collection<AbstractRepositoryTask> newHits) {
- clear();
- for (AbstractRepositoryTask abstractRepositoryTask : newHits) {
- addHit(abstractRepositoryTask);
- }
- }
-
- public synchronized void addHit(AbstractRepositoryTask hit) {
- // TODO: Move up?
- if(!taskList.getAllTasks().contains(hit)) {
- taskList.addTask(hit);
- }
- super.add(hit);
- }
+// public synchronized void updateHits(Collection<AbstractRepositoryTask> newHits) {
+// clear();
+// for (AbstractRepositoryTask abstractRepositoryTask : newHits) {
+// addHit(abstractRepositoryTask);
+// }
+// }
- public synchronized void removeHit(AbstractRepositoryTask hit) {
- super.remove(hit);
- }
+// public synchronized void addHit(AbstractRepositoryTask hit) {
+// super.add(hit);
+// }
+//
+// public synchronized void removeHit(AbstractRepositoryTask hit) {
+// super.remove(hit);
+// }
public synchronized String getPriority() {
if (super.isEmpty()) {
@@ -97,11 +79,6 @@ public abstract class AbstractRepositoryQuery extends AbstractTaskContainer {
return false;
}
- @Override
- public boolean isCompleted() {
- return false;
- }
-
public String getRepositoryUrl() {
return repositoryUrl;
}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractTaskContainer.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractTaskContainer.java
index f2fdd7796..e5556975b 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractTaskContainer.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractTaskContainer.java
@@ -10,7 +10,7 @@
*******************************************************************************/
package org.eclipse.mylar.tasks.core;
-import java.util.HashSet;
+import java.util.Collections;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
@@ -25,9 +25,7 @@ public abstract class AbstractTaskContainer extends PlatformObject implements IT
private String handle = "";
- private Set<String> childHandles = new CopyOnWriteArraySet<String>();
-
- protected TaskList taskList;
+ private Set<ITask> children = new CopyOnWriteArraySet<ITask>();
/**
* Optional URL corresponding to the web resource associated with this
@@ -35,39 +33,36 @@ public abstract class AbstractTaskContainer extends PlatformObject implements IT
*/
protected String url = null;
- public AbstractTaskContainer(String handleAndDescription, TaskList taskList) {
+ public AbstractTaskContainer(String handleAndDescription) {
assert handle != null;
this.handle = handleAndDescription;
- this.taskList = taskList;
}
+ // XXX: Get rid of this
public abstract boolean isLocal();
public Set<ITask> getChildren() {
- Set<ITask> children = new HashSet<ITask>();
- for (String childHandle : childHandles) {
- ITask task = taskList.getTask(childHandle);
- if (task != null) {
- children.add(task);
- }
- }
- return children;
+ return Collections.unmodifiableSet(children);
}
-
+
public boolean contains(String handle) {
- return childHandles.contains(handle);
+ for (ITask child : children) {
+ if (handle.equals(child.getHandleIdentifier())) {
+ return true;
+ }
+ }
+ return false;
}
public String getSummary() {
return handle;
}
-
/**
* @since 2.0
*/
public boolean isEmpty() {
- return childHandles.isEmpty();
+ return children.isEmpty();
}
public String getHandleIdentifier() {
@@ -82,20 +77,25 @@ public abstract class AbstractTaskContainer extends PlatformObject implements IT
this.handle = handle;
}
+ /**
+ * Use {@link TaskList} methods instead.
+ */
void add(ITask task) {
- childHandles.add(task.getHandleIdentifier());
+ children.add(task);
}
+ /**
+ * Does not delete task from TaskList
+ */
void remove(ITask task) {
- childHandles.remove(task.getHandleIdentifier());
- }
-
- void clear() {
- childHandles.clear();
+ children.remove(task);
}
- public boolean isCompleted() {
- return false;
+ /**
+ * Does not delete tasks from TaskList
+ */
+ public void clear() {
+ children.clear();
}
@Override
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeActivityDelegate.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeActivityDelegate.java
index 42158e053..feb971c23 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeActivityDelegate.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeActivityDelegate.java
@@ -15,13 +15,11 @@ import java.util.Calendar;
import java.util.Date;
import java.util.Set;
-import org.eclipse.core.runtime.PlatformObject;
-
/**
* @author Rob Elves
* @author Mik Kersten
*/
-public class DateRangeActivityDelegate extends PlatformObject implements ITask {
+public class DateRangeActivityDelegate extends AbstractTaskContainer implements ITask {
private ITask task = null;
@@ -38,6 +36,7 @@ public class DateRangeActivityDelegate extends PlatformObject implements ITask {
}
public DateRangeActivityDelegate(DateRangeContainer parent, ITask task, Calendar start, Calendar end, long activity) {
+ super(task.getHandleIdentifier());
if (task == null) {
throw new RuntimeException("attempted to instantiated with null task: " + parent);
}
@@ -103,9 +102,9 @@ public class DateRangeActivityDelegate extends PlatformObject implements ITask {
return parent;
}
- public void addSubTask(ITask task) {
- task.addSubTask(task);
- }
+// public void addSubTask(ITask task) {
+// task.addSubTask(task);
+// }
public AbstractTaskContainer getContainer() {
return task.getContainer();
@@ -143,10 +142,6 @@ public class DateRangeActivityDelegate extends PlatformObject implements ITask {
return task.getNotes();
}
- public ITask getParent() {
- return task.getParent();
- }
-
public String getPriority() {
return task.getPriority();
}
@@ -179,9 +174,9 @@ public class DateRangeActivityDelegate extends PlatformObject implements ITask {
return task.isPastReminder();
}
- public void removeSubTask(ITask task) {
- task.removeSubTask(task);
- }
+// public void removeSubTask(ITask task) {
+// task.removeSubTask(task);
+// }
public void setActive(boolean active) {
task.setActive(active);
@@ -219,10 +214,6 @@ public class DateRangeActivityDelegate extends PlatformObject implements ITask {
task.setNotes(notes);
}
- public void setParent(ITask parent) {
- task.setParent(parent);
- }
-
public void setPriority(String priority) {
task.setPriority(priority);
}
@@ -254,4 +245,9 @@ public class DateRangeActivityDelegate extends PlatformObject implements ITask {
public void setDueDate(Date date) {
task.setDueDate(date);
}
+
+ @Override
+ public boolean isLocal() {
+ return ((Task)task).isLocal();
+ }
}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeContainer.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeContainer.java
index 540f674eb..4aabb01fb 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeContainer.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DateRangeContainer.java
@@ -38,22 +38,21 @@ public class DateRangeContainer extends AbstractTaskContainer {
private long totalEstimated = 0;
- public DateRangeContainer(GregorianCalendar startDate, GregorianCalendar endDate, String description,
- TaskList taskList) {
- super(description, taskList);
+ public DateRangeContainer(GregorianCalendar startDate, GregorianCalendar endDate, String description) {
+ super(description);
this.startDate = startDate;
this.endDate = endDate;
}
- public DateRangeContainer(Calendar startDate, Calendar endDate, String description, TaskList taskList) {
- super(description, taskList);
+ public DateRangeContainer(Calendar startDate, Calendar endDate, String description) {
+ super(description);
this.startDate = startDate;
this.endDate = endDate;
}
- public DateRangeContainer(GregorianCalendar startDate, GregorianCalendar endDate, TaskList taskList) {
+ public DateRangeContainer(GregorianCalendar startDate, GregorianCalendar endDate) {
super(DateFormat.getDateInstance(DateFormat.FULL).format(startDate.getTime()) + " to "
- + DateFormat.getDateInstance(DateFormat.FULL).format(endDate.getTime()), taskList);
+ + DateFormat.getDateInstance(DateFormat.FULL).format(endDate.getTime()));
// super(startDate.hashCode() + endDate.hashCode() + "");
// String start =
// DateFormat.getDateInstance(DateFormat.FULL).format(startDate.getTime());
@@ -64,8 +63,8 @@ public class DateRangeContainer extends AbstractTaskContainer {
this.endDate = endDate;
}
- public DateRangeContainer(Date time, Date time2, String description, TaskList taskList) {
- super(description, taskList);
+ public DateRangeContainer(Date time, Date time2, String description) {
+ super(description);
startDate = new GregorianCalendar();
startDate.setTime(time);
endDate = new GregorianCalendar();
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java
index e167a79cd..cc4f601e4 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java
@@ -244,7 +244,7 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer {
String handle = element.getAttribute(KEY_HANDLE);
ITask subTask = tasklist.getTask(handle);
if (subTask != null) {
- task.addSubTask(subTask);
+ tasklist.addTask(subTask, (Task)task);
}
}
}
@@ -287,7 +287,7 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer {
AbstractTaskContainer category;
if (element.hasAttribute(KEY_NAME)) {
- category = new TaskCategory(element.getAttribute(KEY_NAME), taskList);
+ category = new TaskCategory(element.getAttribute(KEY_NAME));
taskList.internalAddCategory(category);
} else {
// LEGACY: registry categories did not have names
@@ -359,7 +359,7 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer {
if (task != null) {
readTaskInfo(task, taskList, element, parent, category);
}
-
+
return task;
}
@@ -407,8 +407,6 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer {
} else {
taskList.internalAddRootTask(task);
}
- } else if (parent != null) {
- task.setParent(parent);
} else {
taskList.internalAddTask(task, taskList.getArchiveContainer());
}
@@ -633,25 +631,9 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer {
return KEY_QUERY_HIT;
}
- public boolean canCreateElementFor(AbstractQueryHit queryHit) {
- return false;
- }
-
public Element createQueryHitElement(AbstractRepositoryTask queryHit, Document doc, Element parent) {
Element node = doc.createElement(getQueryHitTagName());
-// node.setAttribute(KEY_NAME, queryHit.getSummary());
node.setAttribute(KEY_HANDLE, queryHit.getHandleIdentifier());
-// node.setAttribute(KEY_PRIORITY, queryHit.getPriority());
-// if (queryHit.isCompleted()) {
-// node.setAttribute(KEY_COMPLETE, VAL_TRUE);
-// } else {
-// node.setAttribute(KEY_COMPLETE, VAL_FALSE);
-// }
-// if (queryHit.isNotified()) {
-// node.setAttribute(KEY_NOTIFIED_INCOMING, VAL_TRUE);
-// } else {
-// node.setAttribute(KEY_NOTIFIED_INCOMING, VAL_FALSE);
-// }
parent.appendChild(node);
return node;
}
@@ -667,7 +649,7 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer {
String handle = element.getAttribute(KEY_HANDLE);
ITask hit = taskList.getTask(handle);
if (hit != null) {
- query.addHit((AbstractRepositoryTask) hit);
+ taskList.addTask(hit, query);
}
} else {
@@ -675,46 +657,6 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer {
}
}
-// /**
-// * Subclasses should override.
-// */
-// public AbstractQueryHit createQueryHit(String repositoryUrl, String taskId,
-// String summary, Element element,
-// TaskList taskList, AbstractRepositoryQuery query) throws
-// TaskExternalizationException {
-// // no default hit reading behavior
-// return null;
-// }
-
-// private void readQueryHitInfo(AbstractQueryHit hit, TaskList taskList,
-// AbstractRepositoryQuery query,
-// Element element) throws TaskExternalizationException {
-// if (element.hasAttribute(KEY_PRIORITY)) {
-// hit.setPriority(element.getAttribute(KEY_PRIORITY));
-// }
-//
-// if (element.hasAttribute(KEY_COMPLETE) &&
-// element.getAttribute(KEY_COMPLETE).compareTo(VAL_TRUE) == 0) {
-// hit.setCompleted(true);
-// } else {
-// hit.setCompleted(false);
-// }
-//
-// if (element.hasAttribute(KEY_NOTIFIED_INCOMING)
-// && element.getAttribute(KEY_NOTIFIED_INCOMING).compareTo(VAL_TRUE) == 0) {
-// hit.setNotified(true);
-// } else {
-// hit.setNotified(false);
-// }
-//
-// ITask correspondingTask = taskList.getTask(hit.getHandleIdentifier());
-// if (correspondingTask instanceof AbstractRepositoryTask) {
-// hit.setCorrespondingTask((AbstractRepositoryTask) correspondingTask);
-// }
-//
-// query.addHit(hit);
-// }
-
public List<ITaskListExternalizer> getDelegateExternalizers() {
return delegateExternalizers;
}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java
index d5bbb31d1..3d95af2ab 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java
@@ -23,10 +23,6 @@ public interface ITask extends ITaskListElement {
public abstract String getHandleIdentifier();
- public abstract ITask getParent();
-
- public abstract void setParent(ITask parent);
-
public abstract boolean isActive();
public abstract void setActive(boolean active);
@@ -55,12 +51,10 @@ public interface ITask extends ITaskListElement {
public abstract Set<ITask> getChildren();
- public abstract void addSubTask(ITask task);
-
- public abstract void removeSubTask(ITask task);
public abstract void setPriority(String priority);
+ @Deprecated
public abstract void setContainer(AbstractTaskContainer category);
/**
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITaskListExternalizer.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITaskListExternalizer.java
index e248bca75..63de8b587 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITaskListExternalizer.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITaskListExternalizer.java
@@ -32,8 +32,6 @@ public interface ITaskListExternalizer {
public abstract String getQueryTagNameForElement(AbstractRepositoryQuery query);
-// public abstract String getQueryHitTagName();
-
/**
* @return the element that was created, null if failed
*/
@@ -52,8 +50,8 @@ public interface ITaskListExternalizer {
public abstract boolean canReadTask(Node node);
- public abstract ITask createTask(String repositoryUrl, String taskId, String summary, Element element, TaskList tlist, AbstractTaskContainer category, ITask parent)
- throws TaskExternalizationException;
+ public abstract ITask createTask(String repositoryUrl, String taskId, String summary, Element element,
+ TaskList tlist, AbstractTaskContainer category, ITask parent) throws TaskExternalizationException;
public abstract boolean canCreateElementFor(AbstractRepositoryQuery category);
@@ -62,13 +60,4 @@ public interface ITaskListExternalizer {
public abstract boolean canReadQuery(Node node);
public abstract AbstractRepositoryQuery readQuery(Node node, TaskList tlist) throws TaskExternalizationException;
-
- public abstract boolean canCreateElementFor(AbstractQueryHit queryHit);
-
-// public abstract Element createQueryHitElement(AbstractRepositoryTask queryHit, Document doc, Element parent);
-
-// public abstract boolean canReadQueryHit(Node node);
-
-// public abstract AbstractQueryHit createQueryHit(String repositoryUrl, String taskId, String summary, Element element, TaskList tlist, AbstractRepositoryQuery query)
-// throws TaskExternalizationException;
}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/QueryHitCollector.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/QueryHitCollector.java
index b6abca0f1..3fe1ea6b3 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/QueryHitCollector.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/QueryHitCollector.java
@@ -89,7 +89,7 @@ public class QueryHitCollector {
public void accept(RepositoryTaskData taskData) throws CoreException {
if (taskData == null)
return;
-
+
if (!getProgressMonitor().isCanceled()) {
getProgressMonitor().subTask(getFormattedMatchesString(matchCount));
getProgressMonitor().worked(1);
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 b7f8fdc8e..8d7624143 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
@@ -14,15 +14,11 @@ package org.eclipse.mylar.tasks.core;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.PlatformObject;
/**
* @author Mik Kersten
*/
-public class Task extends PlatformObject implements ITask {
+public class Task extends AbstractTaskContainer implements ITask {
private static final String REPOSITORY_KIND_LOCAL = "local";
@@ -101,11 +97,9 @@ public class Task extends PlatformObject implements ITask {
}
}
- private String handleIdentifier = "-1";
-
private boolean active = false;
- private boolean category = false;
+// private boolean category = false;
private boolean hasReminded = false;
@@ -131,12 +125,7 @@ public class Task extends PlatformObject implements ITask {
private Date dueDate = null;
- /**
- * @return null if root
- */
- private transient ITask parent;
-
- private Set<ITask> children = new HashSet<ITask>();
+ //private Set<ITask> children = new HashSet<ITask>();
protected String kind = DEFAULT_TASK_KIND;
@@ -146,21 +135,10 @@ public class Task extends PlatformObject implements ITask {
}
public Task(String handle, String summary) {
- this.handleIdentifier = handle;
+ super(handle);
this.summary = summary;
}
- public String getHandleIdentifier() {
- return handleIdentifier;
- }
-
- public ITask getParent() {
- return parent;
- }
-
- public void setParent(ITask parent) {
- this.parent = parent;
- }
/**
* Package visible in order to prevent sets that don't update the index.
@@ -200,14 +178,6 @@ public class Task extends PlatformObject implements ITask {
}
}
- public boolean isCategory() {
- return category;
- }
-
- public void setIsCategory(boolean category) {
- this.category = category;
- }
-
public String getPriority() {
return priority;
}
@@ -247,21 +217,6 @@ public class Task extends PlatformObject implements ITask {
this.estimatedTimeHours = estimated;
}
- public Set<ITask> getChildren() {
- return children;
- }
-
- public void addSubTask(ITask t) {
- children.add(t);
- }
-
- public void removeSubTask(ITask t) {
- children.remove(t);
- }
-
- public void dropSubTasks() {
- children.clear();
- }
public void setContainer(AbstractTaskContainer cat) {
this.parentCategory = cat;
@@ -275,6 +230,7 @@ public class Task extends PlatformObject implements ITask {
return summary;
}
+ // TODO: Remove
public boolean isLocal() {
return true;
}
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskArchive.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskArchive.java
index adae2728a..7788ab5eb 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskArchive.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskArchive.java
@@ -22,8 +22,8 @@ public class TaskArchive extends AbstractTaskContainer {
public static final String LABEL_ARCHIVE = "Archive (all tasks)";
- public TaskArchive(TaskList taskList) {
- super(HANDLE, taskList);
+ public TaskArchive() {
+ super(HANDLE);
}
public String getPriority() {
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskCategory.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskCategory.java
index 9562bc848..e0ae5f726 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskCategory.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskCategory.java
@@ -21,8 +21,8 @@ import java.util.Set;
*/
public class TaskCategory extends AbstractTaskContainer {
- public TaskCategory(String handleAndDescription, TaskList taskList) {
- super(handleAndDescription, taskList);
+ public TaskCategory(String handleAndDescription) {
+ super(handleAndDescription);
}
public String getPriority() {
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 253551222..a6e1a2b37 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
@@ -65,8 +65,8 @@ public class TaskList {
categories = new ConcurrentHashMap<String, AbstractTaskContainer>();
queries = new ConcurrentHashMap<String, AbstractRepositoryQuery>();
- archiveContainer = new TaskArchive(this);
- uncategorizedCategory = new UncategorizedCategory(this);
+ archiveContainer = new TaskArchive();
+ uncategorizedCategory = new UncategorizedCategory();
activeTasks = new CopyOnWriteArrayList<ITask>();
lastTaskNum = 0;
@@ -76,9 +76,6 @@ public class TaskList {
public void addTask(ITask task) {
addTask(task, archiveContainer);
- for (ITask subTask : task.getChildren()) {
- addTask(subTask, archiveContainer);
- }
}
/**
@@ -98,11 +95,74 @@ public class TaskList {
return result;
}
- public void addTask(ITask task, AbstractTaskContainer category) {
- tasks.put(task.getHandleIdentifier(), task);
- if (category != null) {
- category.add(task);
- task.setContainer(category);
+// /**
+// * Adds subTask to parentTask, adding each to tasklist if not already
+// * present
+// */
+// public void addSubTask(ITask parentTask, ITask subTask) {
+// if (parentTask instanceof AbstractTaskContainer) {
+// if (!tasks.containsKey(parentTask.getHandleIdentifier())) {
+// addTask(parentTask);
+// } else {
+// parentTask = tasks.get(parentTask.getHandleIdentifier());
+// }
+// if (!tasks.containsKey(subTask.getHandleIdentifier())) {
+// addTask(subTask);
+// }
+// ((AbstractTaskContainer) parentTask).add(subTask);
+// }
+// }
+//
+// /**
+// * Precondition: query exists in tasklist Postcondition: hit added to
+// * tasklist if not present and added to query
+// */
+// public void addQueryHit(AbstractRepositoryQuery query, ITask hit) {
+// if (queries.containsKey(query.getHandleIdentifier())) {
+// if (!tasks.containsKey(hit.getHandleIdentifier())) {
+// addTask(hit);
+// } else {
+// hit = tasks.get(hit.getHandleIdentifier());
+// }
+// query.add(hit);
+// }
+// }
+
+// /**
+// * Add task hits to a query Precondition: query exists in tasklist
+// * Postcondition: hit added to tasklist if not present and added to query
+// */
+// public void addTask(ITask task, AbstractRepositoryQuery query) {
+// if (queries.containsKey(query.getHandleIdentifier())) {
+// if (!tasks.containsKey(task.getHandleIdentifier())) {
+// addTask(task);
+// } else {
+// hit = tasks.get(hit.getHandleIdentifier());
+// }
+// query.add(hit);
+// }
+// }
+
+ /**
+ * Precondition: {@code container} already exists in tasklist (be it a parent task, category, or query)
+ * @param task to be added (hit, subtask, etc)
+ * @param container task container, query or parent task
+ */
+ public void addTask(ITask task, AbstractTaskContainer container) {
+
+ if (!tasks.containsKey(task.getHandleIdentifier())) {
+ tasks.put(task.getHandleIdentifier(), task);
+ archiveContainer.add(task);
+ task.setContainer(archiveContainer);
+ } else {
+ task = tasks.get(task.getHandleIdentifier());
+ }
+
+ if (container != null) {
+ container.add(task);
+ if (!(container instanceof ITask) && !(container instanceof AbstractRepositoryQuery)) {
+ task.setContainer(container);
+ }
} else {
uncategorizedCategory.add(task);
task.setContainer(uncategorizedCategory);
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/UncategorizedCategory.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/UncategorizedCategory.java
index 7fca227dc..1b24f6b50 100644
--- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/UncategorizedCategory.java
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/UncategorizedCategory.java
@@ -20,8 +20,8 @@ public class UncategorizedCategory extends AbstractTaskContainer {
public static final String HANDLE = "uncategorized";
- public UncategorizedCategory(TaskList taskList) {
- super(HANDLE, taskList);
+ public UncategorizedCategory() {
+ super(HANDLE);
}
public String getPriority() {

Back to the top