Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 84662 Details for
Bug 181388
improve UI design of archive category
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
Small update
archiveUiUpdate.patch (text/plain), 70.54 KB, created by
Robert Elves
on 2007-12-06 14:29:05 EST
(
hide
)
Description:
Small update
Filename:
MIME Type:
Creator:
Robert Elves
Created:
2007-12-06 14:29:05 EST
Size:
70.54 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.core >Index: src/org/eclipse/mylyn/internal/tasks/core/LocalTask.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalTask.java,v >retrieving revision 1.8 >diff -u -r1.8 LocalTask.java >--- src/org/eclipse/mylyn/internal/tasks/core/LocalTask.java 26 Jun 2007 01:16:32 -0000 1.8 >+++ src/org/eclipse/mylyn/internal/tasks/core/LocalTask.java 6 Dec 2007 19:26:14 -0000 >@@ -28,7 +28,7 @@ > > @Override > public String getConnectorKind() { >- return LocalRepositoryConnector.REPOSITORY_KIND; >+ return LocalRepositoryConnector.CONNECTOR_KIND; > } > > @Override >@@ -43,7 +43,7 @@ > > @Override > public String getOwner() { >- return LocalRepositoryConnector.REPOSITORY_KIND; >+ return LocalRepositoryConnector.CONNECTOR_KIND; > } > > @Override >Index: src/org/eclipse/mylyn/internal/tasks/core/LocalRepositoryConnector.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/LocalRepositoryConnector.java,v >retrieving revision 1.10 >diff -u -r1.10 LocalRepositoryConnector.java >--- src/org/eclipse/mylyn/internal/tasks/core/LocalRepositoryConnector.java 26 Jun 2007 02:01:17 -0000 1.10 >+++ src/org/eclipse/mylyn/internal/tasks/core/LocalRepositoryConnector.java 6 Dec 2007 19:26:14 -0000 >@@ -29,7 +29,7 @@ > > public static final String REPOSITORY_LABEL = "Local Tasks"; > >- public static final String REPOSITORY_KIND = "local"; >+ public static final String CONNECTOR_KIND = "local"; > > public static final String REPOSITORY_URL = "local"; > >@@ -70,7 +70,7 @@ > > @Override > public String getConnectorKind() { >- return REPOSITORY_KIND; >+ return CONNECTOR_KIND; > } > > @Override >Index: src/org/eclipse/mylyn/tasks/core/TaskSelection.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskSelection.java,v >retrieving revision 1.2 >diff -u -r1.2 TaskSelection.java >--- src/org/eclipse/mylyn/tasks/core/TaskSelection.java 16 Nov 2007 19:22:56 -0000 1.2 >+++ src/org/eclipse/mylyn/tasks/core/TaskSelection.java 6 Dec 2007 19:26:14 -0000 >@@ -46,7 +46,7 @@ > > public TaskSelection(String summary, String description) { > RepositoryTaskData taskData = new RepositoryTaskData(new IdentityAttributeFactory(), >- LocalRepositoryConnector.REPOSITORY_KIND, LocalRepositoryConnector.REPOSITORY_URL, ""); >+ LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL, ""); > taskData.setSummary(summary); > taskData.setDescription(description); > this.taskData = taskData; >Index: src/org/eclipse/mylyn/tasks/core/AbstractTaskCategory.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractTaskCategory.java,v >retrieving revision 1.6 >diff -u -r1.6 AbstractTaskCategory.java >--- src/org/eclipse/mylyn/tasks/core/AbstractTaskCategory.java 27 Aug 2007 02:07:08 -0000 1.6 >+++ src/org/eclipse/mylyn/tasks/core/AbstractTaskCategory.java 6 Dec 2007 19:26:14 -0000 >@@ -23,6 +23,8 @@ > /** > * Override to return true for categories that the user creates, deletes, and renames. Return false for categories > * that are managed >+ * >+ * @API-3.0: Move up into AbstractTaskContainer > */ > public abstract boolean isUserDefined(); > >Index: src/org/eclipse/mylyn/tasks/core/TaskList.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskList.java,v >retrieving revision 1.67 >diff -u -r1.67 TaskList.java >--- src/org/eclipse/mylyn/tasks/core/TaskList.java 26 Sep 2007 15:44:33 -0000 1.67 >+++ src/org/eclipse/mylyn/tasks/core/TaskList.java 6 Dec 2007 19:26:14 -0000 >@@ -19,7 +19,9 @@ > import java.util.concurrent.CopyOnWriteArrayList; > import java.util.concurrent.CopyOnWriteArraySet; > >+import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; > import org.eclipse.mylyn.internal.tasks.core.LocalTask; >+import org.eclipse.mylyn.internal.tasks.core.OrphanedTasksContainer; > import org.eclipse.mylyn.internal.tasks.core.RepositoryTaskHandleUtil; > import org.eclipse.mylyn.internal.tasks.core.TaskArchive; > import org.eclipse.mylyn.internal.tasks.core.TaskCategory; >@@ -38,15 +40,17 @@ > > private Set<ITaskListChangeListener> changeListeners = new CopyOnWriteArraySet<ITaskListChangeListener>(); > >+ private Map<String, OrphanedTasksContainer> repositoryOrphansMap; >+ > private Map<String, AbstractTask> tasks; > > private Map<String, AbstractTaskCategory> categories; > > private Map<String, AbstractRepositoryQuery> queries; > >- private TaskArchive archiveContainer; >+ //private TaskArchive archiveContainer; > >- private UnfiledCategory defaultCategory; >+ //private UnfiledCategory defaultCategory; > > private List<AbstractTask> activeTasks; > >@@ -54,26 +58,97 @@ > reset(); > } > >+ private void addOrphanedTasks(Set<AbstractTask> tasks, Set<TaskContainerDelta> delta) { >+ for (AbstractTask task : tasks) { >+ if (getQueriesForHandle(task.getHandleIdentifier()).isEmpty()) { >+ addOrphan(task, delta); >+ } >+ } >+ } >+ >+ private void addOrphan(AbstractTask task, Set<TaskContainerDelta> delta) { >+ if (task.getLastReadTimeStamp() == null || !getQueriesForHandle(task.getHandleIdentifier()).isEmpty() >+ || getCategoryForHandle(task.getHandleIdentifier()) != null) { >+ // Current policy is not to archive/orphan unread tasks or if the task exists in some other container >+ return; >+ } >+ OrphanedTasksContainer orphans = repositoryOrphansMap.get(task.getRepositoryUrl()); >+ if (orphans == null) { >+ orphans = new OrphanedTasksContainer(task.getConnectorKind(), task.getRepositoryUrl()); >+ repositoryOrphansMap.put(task.getRepositoryUrl(), orphans); >+ //categories.put(orphans.getHandleIdentifier(), orphans); >+ } >+ >+ if (!orphans.contains(task.getHandleIdentifier())) { >+ orphans.internalAddChild(task); >+ if (delta != null) { >+ delta.add(new TaskContainerDelta(orphans, TaskContainerDelta.Kind.CHANGED)); >+ } >+ } >+ >+ task.addParentContainer(orphans); >+ } >+ >+ private void removeOrphan(AbstractTask task, Set<TaskContainerDelta> delta) { >+ OrphanedTasksContainer orphans = repositoryOrphansMap.get(task.getRepositoryUrl()); >+ if (orphans != null) { >+ if (orphans.contains(task.getHandleIdentifier())) { >+ orphans.internalRemoveChild(task); >+ if (delta != null) { >+ delta.add(new TaskContainerDelta(orphans, TaskContainerDelta.Kind.CHANGED)); >+ } >+ } >+ if (orphans.isEmpty() && !orphans.getRepositoryUrl().equals(LocalRepositoryConnector.REPOSITORY_URL)) { >+ repositoryOrphansMap.remove(task.getRepositoryUrl()); >+ if (delta != null) { >+ delta.add(new TaskContainerDelta(orphans, TaskContainerDelta.Kind.CHANGED)); >+ } >+ } >+ task.removeParentContainer(orphans); >+ } >+ } >+ >+ /** >+ * @since 2.2 >+ */ >+ public Set<OrphanedTasksContainer> getOrphanContainers() { >+ return Collections.unmodifiableSet(new HashSet<OrphanedTasksContainer>(repositoryOrphansMap.values())); >+ } >+ >+ /** >+ * @since 2.2 >+ */ >+ public OrphanedTasksContainer getOrphanContainer(String repositoryUrl) { >+ return repositoryOrphansMap.get(repositoryUrl); >+ } >+ > /** > * Public for testing. > */ > public void reset() { > tasks = new ConcurrentHashMap<String, AbstractTask>(); > >+ repositoryOrphansMap = new ConcurrentHashMap<String, OrphanedTasksContainer>(); >+ repositoryOrphansMap.put(LocalRepositoryConnector.REPOSITORY_URL, new OrphanedTasksContainer( >+ LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL)); >+ > categories = new ConcurrentHashMap<String, AbstractTaskCategory>(); > queries = new ConcurrentHashMap<String, AbstractRepositoryQuery>(); > >- archiveContainer = new TaskArchive(); >- defaultCategory = new UnfiledCategory(); >+ //archiveContainer = new TaskArchive(); >+ //defaultCategory = new UnfiledCategory(); > > activeTasks = new CopyOnWriteArrayList<AbstractTask>(); > lastLocalTaskId = 0; >- categories.put(defaultCategory.getHandleIdentifier(), defaultCategory); >- categories.put(archiveContainer.getHandleIdentifier(), archiveContainer); >+// categories.put(defaultCategory.getHandleIdentifier(), defaultCategory); >+// categories.put(archiveContainer.getHandleIdentifier(), archiveContainer); > } > >+ /** >+ * Add orphaned task to the task list >+ */ > public void addTask(AbstractTask task) throws IllegalArgumentException { >- addTask(task, archiveContainer); >+ addTask(task, null); > } > > /** >@@ -94,7 +169,9 @@ > } > > /** >- * Precondition: {@code container} already exists in tasklist (be it a parent task, category, or query) >+ * Precondition: {@code container} already exists in tasklist (be it a parent task, category, or query) If the >+ * parentContainer is null the task is considered an orphan and added to the appropriate repository's orphaned tasks >+ * container. > * > * @param task > * to be added (hit, subtask, etc) >@@ -111,8 +188,6 @@ > if (newTask == null) { > newTask = task; > tasks.put(newTask.getHandleIdentifier(), newTask); >-// archiveContainer.addChild(newTask); >-// newTask.addParentContainer(archiveContainer); > > // NOTE: only called for newly-created tasks > Set<TaskContainerDelta> delta = new HashSet<TaskContainerDelta>(); >@@ -131,8 +206,10 @@ > newTask.addParentContainer(parentContainer); > } > } else { >- defaultCategory.internalAddChild(newTask); >- newTask.addParentContainer(defaultCategory); >+ // TODO: if the task has a parent task this itself isn't orphaned than by definition this task isn't orphaned >+ addOrphan(task, null); >+ //defaultCategory.internalAddChild(newTask); >+ //newTask.addParentContainer(defaultCategory); > } > } > >@@ -146,9 +223,12 @@ > Set<AbstractTaskContainer> currentContainers = task.getParentContainers(); > for (AbstractTaskContainer taskContainer : currentContainers) { > if (taskContainer instanceof AbstractTaskCategory) { >- if (!(taskContainer instanceof TaskArchive)) { >+ if (!(taskContainer instanceof OrphanedTasksContainer)) { > (taskContainer).internalRemoveChild(task); > } >+// if (!(taskContainer instanceof TaskArchive)) { >+// (taskContainer).internalRemoveChild(task); >+// } > task.removeParentContainer(taskContainer); > delta.add(new TaskContainerDelta(taskContainer, TaskContainerDelta.Kind.CHANGED)); > } >@@ -156,12 +236,15 @@ > if (container != null) { > internalAddTask(task, container); > delta.add(new TaskContainerDelta(container, TaskContainerDelta.Kind.CHANGED)); >- if (archiveContainer.contains(task.getHandleIdentifier())) { >- archiveContainer.internalRemoveChild(task); >- delta.add(new TaskContainerDelta(archiveContainer, TaskContainerDelta.Kind.CHANGED)); >+ if (!(container instanceof OrphanedTasksContainer)) { >+ removeOrphan(task, delta); > } >+// if (archiveContainer.contains(task.getHandleIdentifier())) { >+// archiveContainer.internalRemoveChild(task); >+// delta.add(new TaskContainerDelta(archiveContainer, TaskContainerDelta.Kind.CHANGED)); >+// } > } else { >- internalAddTask(task, archiveContainer); >+ internalAddTask(task, null); > } > for (ITaskListChangeListener listener : changeListeners) { > listener.containersChanged(delta); >@@ -189,6 +272,17 @@ > delta.add(new TaskContainerDelta(query, TaskContainerDelta.Kind.CHANGED)); > } > } >+ >+ for (OrphanedTasksContainer orphans : repositoryOrphansMap.values()) { >+ if (orphans.getRepositoryUrl().equals(oldRepositoryUrl)) { >+ repositoryOrphansMap.remove(oldRepositoryUrl); >+ //categories.remove(orphans.getHandleIdentifier()); >+ orphans.setRepositoryUrl(newRepositoryUrl); >+ repositoryOrphansMap.put(newRepositoryUrl, orphans); >+ //categories.put(orphans.getHandleIdentifier(), orphans); >+ delta.add(new TaskContainerDelta(orphans, TaskContainerDelta.Kind.CHANGED)); >+ } >+ } > for (ITaskListChangeListener listener : changeListeners) { > listener.containersChanged(delta); > } >@@ -209,7 +303,14 @@ > } > > public void removeFromCategory(TaskCategory category, AbstractTask task) { >- moveToContainer(task, archiveContainer); >+ Set<TaskContainerDelta> delta = new HashSet<TaskContainerDelta>(); >+ delta.add(new TaskContainerDelta(category, TaskContainerDelta.Kind.CHANGED)); >+ category.internalRemoveChild(task); >+ addOrphan(task, delta); >+ for (ITaskListChangeListener listener : changeListeners) { >+ listener.containersChanged(delta); >+ } >+ //moveToContainer(task, null); > } > > /** >@@ -219,10 +320,11 @@ > */ > public void removeFromQuery(AbstractRepositoryQuery query, AbstractTask task) { > query.internalRemoveChild(task); >- if (task.getParentContainers().size() == 0 && task.getLastReadTimeStamp() != null) { >- task.addParentContainer(archiveContainer); >- archiveContainer.internalAddChild(task); >- } >+ addOrphan(task, null); >+// if (task.getParentContainers().size() == 0 && task.getLastReadTimeStamp() != null) { >+// task.addParentContainer(archiveContainer); >+// archiveContainer.internalAddChild(task); >+// } > } > > public void renameTask(AbstractTask task, String description) { >@@ -284,8 +386,8 @@ > * deletion of subtasks) > */ > public void deleteTask(AbstractTask task) { >- archiveContainer.internalRemoveChild(task); >- defaultCategory.internalRemoveChild(task); >+// archiveContainer.internalRemoveChild(task); >+// defaultCategory.internalRemoveChild(task); > > for (AbstractTaskContainer container : task.getParentContainers()) { > container.internalRemoveChild(task); >@@ -294,6 +396,7 @@ > tasks.remove(task.getHandleIdentifier()); > > Set<TaskContainerDelta> delta = new HashSet<TaskContainerDelta>(); >+ removeOrphan(task, delta); > delta.add(new TaskContainerDelta(task, TaskContainerDelta.Kind.REMOVED)); > for (ITaskListChangeListener listener : changeListeners) { > listener.containersChanged(delta); >@@ -301,13 +404,13 @@ > } > > public void deleteCategory(AbstractTaskCategory category) { >- for (AbstractTask task : category.getChildren()) { >- defaultCategory.internalAddChild(task); >- } >+ Set<TaskContainerDelta> delta = new HashSet<TaskContainerDelta>(); > categories.remove(category.getHandleIdentifier()); >+ addOrphanedTasks(category.getChildren(), delta); >+// for (AbstractTask task : category.getChildren()) { >+// defaultCategory.internalAddChild(task); >+// } > >- Set<TaskContainerDelta> delta = new HashSet<TaskContainerDelta>(); >- delta.add(new TaskContainerDelta(defaultCategory, TaskContainerDelta.Kind.CHANGED)); > delta.add(new TaskContainerDelta(category, TaskContainerDelta.Kind.REMOVED)); > > for (ITaskListChangeListener listener : changeListeners) { >@@ -316,16 +419,17 @@ > } > > public void deleteQuery(AbstractRepositoryQuery query) { >- queries.remove(query.getHandleIdentifier()); >+ Set<TaskContainerDelta> delta = new HashSet<TaskContainerDelta>(); > >- for (AbstractTask task : query.getChildren()) { >- if (task.getParentContainers().size() == 0 && task.getLastReadTimeStamp() != null) { >- task.addParentContainer(archiveContainer); >- archiveContainer.internalAddChild(task); >- } >- } >+ queries.remove(query.getHandleIdentifier()); >+ addOrphanedTasks(query.getChildren(), delta); >+// for (AbstractTask task : query.getChildren()) { >+// if (task.getParentContainers().size() == 0 && task.getLastReadTimeStamp() != null) { >+// task.addParentContainer(archiveContainer); >+// archiveContainer.internalAddChild(task); >+// } >+// } > >- Set<TaskContainerDelta> delta = new HashSet<TaskContainerDelta>(); > delta.add(new TaskContainerDelta(query, TaskContainerDelta.Kind.REMOVED)); > for (ITaskListChangeListener listener : changeListeners) { > listener.containersChanged(delta); >@@ -361,17 +465,21 @@ > tasks.put(task.getHandleIdentifier(), task); > if (container != null) { > container.internalAddChild(task); >- if (container instanceof TaskCategory || container instanceof UnfiledCategory) { >+ if (container instanceof TaskCategory || container instanceof OrphanedTasksContainer) { > task.addParentContainer(container); > } > } else { >- defaultCategory.internalAddChild(task); >- task.addParentContainer(defaultCategory); >+ addOrphan(task, null); >+// defaultCategory.internalAddChild(task); >+// task.addParentContainer(defaultCategory); > } > } > >+ /** >+ * @API-3.0 remove >+ */ > public void internalAddRootTask(AbstractTask task) { >- internalAddTask(task, defaultCategory); >+ internalAddTask(task, null); > } > > public void internalAddQuery(AbstractRepositoryQuery query) { >@@ -412,7 +520,7 @@ > public List<AbstractTaskCategory> getUserCategories() { > List<AbstractTaskCategory> included = new ArrayList<AbstractTaskCategory>(); > for (AbstractTaskCategory category : categories.values()) { >- if (!(category instanceof TaskArchive)) { >+ if (!(category instanceof OrphanedTasksContainer)) { > included.add(category); > } > } >@@ -426,11 +534,13 @@ > > public Set<AbstractTaskContainer> getRootElements() { > Set<AbstractTaskContainer> roots = new HashSet<AbstractTaskContainer>(); >- roots.add(defaultCategory); >+ //roots.add(defaultCategory); > for (AbstractTaskCategory cat : categories.values()) > roots.add(cat); > for (AbstractRepositoryQuery query : queries.values()) > roots.add(query); >+ for (OrphanedTasksContainer orphanContainer : repositoryOrphansMap.values()) >+ roots.add(orphanContainer); > return roots; > } > >@@ -460,10 +570,23 @@ > return null; > } > >+ private AbstractTaskCategory getCategoryForHandle(String handle) { >+ if (handle == null) { >+ return null; >+ } >+ for (AbstractTaskCategory category : categories.values()) { >+ if (!(category instanceof OrphanedTasksContainer) && category.contains(handle)) { >+ return category; >+ } >+ } >+ return null; >+ } >+ > public boolean isEmpty() { >- boolean archiveIsEmpty = getCategories().size() == 2 && getCategories().contains(archiveContainer) >- && getCategories().contains(defaultCategory) && archiveContainer.getChildren().isEmpty(); >- return getAllTasks().size() == 0 && archiveIsEmpty && getQueries().size() == 0; >+// boolean archiveIsEmpty = getCategories().size() == 2 && getCategories().contains(archiveContainer) >+// && getCategories().contains(defaultCategory) && archiveContainer.getChildren().isEmpty(); >+ return getAllTasks().size() == 0 /*&& archiveIsEmpty*/&& getQueries().size() == 0 >+ && getCategories().size() == 0; > } > > /** >@@ -537,11 +660,11 @@ > } > > public AbstractTaskCategory getDefaultCategory() { >- return defaultCategory; >+ return null;//getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL); > } > > public TaskArchive getArchiveContainer() { >- return archiveContainer; >+ return null;//archiveContainer; > } > > /** if handle == null or no queries found an empty set is returned * */ >@@ -658,7 +781,7 @@ > if (containers == null) { > delta = new HashSet<TaskContainerDelta>(); > delta.add(new TaskContainerDelta(null, TaskContainerDelta.Kind.ROOT)); >- } else { >+ } else { > delta = new HashSet<TaskContainerDelta>(); > for (AbstractTaskContainer abstractTaskContainer : containers) { > delta.add(new TaskContainerDelta(abstractTaskContainer, TaskContainerDelta.Kind.CHANGED)); >@@ -708,8 +831,8 @@ > int max = 0; > for (AbstractTask task : tasks) { > if (task instanceof LocalTask) { >- String string = task.getHandleIdentifier().substring(task.getHandleIdentifier().lastIndexOf('-') + 1, >- task.getHandleIdentifier().length()); >+ String string = task.getHandleIdentifier().substring( >+ task.getHandleIdentifier().lastIndexOf('-') + 1, task.getHandleIdentifier().length()); > try { > ihandle = Integer.parseInt(string); > } catch (NumberFormatException nfe) { >@@ -741,7 +864,7 @@ > task.addParentContainer(legacyCategory); > legacyCategory.internalAddChild(task); > } else { >- this.internalAddTask(task, this.getArchiveContainer()); >+ this.internalAddTask(task, null); > } > > this.setActive(task, task.isActive()); >Index: .refactorings/2007/12/49/refactorings.history >=================================================================== >RCS file: .refactorings/2007/12/49/refactorings.history >diff -N .refactorings/2007/12/49/refactorings.history >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .refactorings/2007/12/49/refactorings.history 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,3 @@ >+<?xml version="1.0" encoding="UTF-8"?> >+<session version="1.0">
<refactoring comment="Copy 1 elements(s) to 'org.eclipse.mylyn.tasks.core/src/org.eclipse.mylyn.internal.tasks.core'
- Original project: 'org.eclipse.mylyn.tasks.core'
- Destination element: 'org.eclipse.mylyn.tasks.core/src/org.eclipse.mylyn.internal.tasks.core'
- Original element: 'org.eclipse.mylyn.internal.tasks.core.UnfiledCategory.java'" description="Copy compilation unit" destination="/src<org.eclipse.mylyn.internal.tasks.core" element1="/src<org.eclipse.mylyn.internal.tasks.core{UnfiledCategory.java" files="0" flags="589830" folders="0" id="org.eclipse.jdt.ui.copy" policy="org.eclipse.jdt.ui.copyResources" stamp="1196888061065" units="1" version="1.0"/>
<refactoring comment="Rename type 'org.eclipse.mylyn.internal.tasks.core.OrphanedTasks' to 'OrphanedTasksContainer'
- Original project: 'org.eclipse.mylyn.tasks.core'
- Original element: 'org.eclipse.mylyn.internal.tasks.core.OrphanedTasks'
- Renamed element: 'org.eclipse.mylyn.internal.tasks.core.OrphanedTasksContainer'
- Update references to refactored element
- Rename similarly named elements
- Update fully qualified names in '*.xml, *.xsd' files
- Update textual occurrences in comments and strings" description="Rename type 'OrphanedTasks'" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src<org.eclipse.mylyn.internal.tasks.core{OrphanedTasks.java[OrphanedTasks" matchStrategy="1" name="OrphanedTasksContainer" patterns="*.xml, *.xsd" qualified="true" references="true" similarDeclarations="true" stamp="1196889544235" textual="false" version="1.0"/>
<refactoring comment="Rename field 'orphanedTaskContainers' in 'org.eclipse.mylyn.tasks.core.TaskList' to 'repositoryOrphansMap'
- Original project: 'org.eclipse.mylyn.tasks.core'
- Original element: 'org.eclipse.mylyn.tasks.core.TaskList.orphanedTaskContainers'
- Renamed element: 'org.eclipse.mylyn.tasks.core.TaskList.repositoryOrphansMap'
- Update references to refactored element
- Update textual occurrences in comments and strings" delegate="false" deprecate="false" description="Rename field 'orphanedTaskContainers'" flags="589826" getter="false" id="org.eclipse.jdt.ui.rename.field" input="/src<org.eclipse.mylyn.tasks.core{TaskList.java[TaskList^orphanedTaskContainers" name="repositoryOrphansMap" references="true" setter="false" stamp="1196902163343" textual="false" version="1.0"/>
<refactoring comment="Rename method 'org.eclipse.mylyn.tasks.core.TaskList.getOrphanedContainer(...)' to 'getOrphanContainer'
- Original project: 'org.eclipse.mylyn.tasks.core'
- Original element: 'org.eclipse.mylyn.tasks.core.TaskList.getOrphanedContainer(...)'
- Renamed element: 'org.eclipse.mylyn.tasks.core.TaskList.getOrphanContainer(...)'
- Update references to refactored element" delegate="false" deprecate="false" description="Rename method 'getOrphanedContainer'" flags="589830" id="org.eclipse.jdt.ui.rename.method" input="/src<org.eclipse.mylyn.tasks.core{TaskList.java[TaskList~getOrphanedContainer~QString;" name="getOrphanContainer" references="true" stamp="1196916697413" version="1.0"/>
<refactoring comment="Rename field 'REPOSITORY_KIND' in 'org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector' to 'CONNECTOR_KIND'
- Original project: 'org.eclipse.mylyn.tasks.core'
- Original element: 'org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector.REPOSITORY_KIND'
- Renamed element: 'org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector.CONNECTOR_KIND'
- Update references to refactored element
- Update textual occurrences in comments and strings" delegate="false" deprecate="false" description="Rename field 'REPOSITORY_KIND'" flags="589830" getter="false" id="org.eclipse.jdt.ui.rename.field" input="/src<org.eclipse.mylyn.internal.tasks.core{LocalRepositoryConnector.java[LocalRepositoryConnector^REPOSITORY_KIND" name="CONNECTOR_KIND" references="true" setter="false" stamp="1196923680591" textual="false" version="1.0"/> >+</session> >Index: .refactorings/2007/12/49/refactorings.index >=================================================================== >RCS file: .refactorings/2007/12/49/refactorings.index >diff -N .refactorings/2007/12/49/refactorings.index >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ .refactorings/2007/12/49/refactorings.index 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,5 @@ >+1196888061065 Copy compilation unit >+1196889544235 Rename type 'OrphanedTasks' >+1196902163343 Rename field 'orphanedTaskContainers' >+1196916697413 Rename method 'getOrphanedContainer' >+1196923680591 Rename field 'REPOSITORY_KIND' >Index: src/org/eclipse/mylyn/internal/tasks/core/OrphanedTasksContainer.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/core/OrphanedTasksContainer.java >diff -N src/org/eclipse/mylyn/internal/tasks/core/OrphanedTasksContainer.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/core/OrphanedTasksContainer.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,65 @@ >+/******************************************************************************* >+ * Copyright (c) 2004, 2007 Mylyn project 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.core; >+ >+import org.eclipse.mylyn.tasks.core.AbstractTaskCategory; >+import org.eclipse.mylyn.tasks.core.AbstractTask.PriorityLevel; >+ >+/** >+ * Holds orphaned or uncategorized tasks for a given repository >+ * >+ * @author Rob Elves >+ */ >+public class OrphanedTasksContainer extends AbstractTaskCategory { >+ >+ public static final String LABEL = "Uncategorized"; >+ >+ public static final String HANDLE = "orphans"; >+ >+ private String repositoryUrl; >+ >+ private String connectorKind; >+ >+ public OrphanedTasksContainer(String connectorKind, String repositoryUrl) { >+ super(repositoryUrl + "-" + HANDLE); >+ this.repositoryUrl = repositoryUrl; >+ this.connectorKind = connectorKind; >+ } >+ >+ @Override >+ public String getPriority() { >+ return PriorityLevel.P1.toString(); >+ } >+ >+ @Override >+ public String getSummary() { >+ return getHandleIdentifier(); >+ } >+ >+ @Override >+ public boolean isUserDefined() { >+ return false; >+ } >+ >+ public String getRepositoryUrl() { >+ return repositoryUrl; >+ } >+ >+ public String getConnectorKind() { >+ return connectorKind; >+ } >+ >+ /** >+ * setting will also refactor handle >+ */ >+ public void setRepositoryUrl(String repositoryUrl) { >+ this.repositoryUrl = repositoryUrl; >+ this.setHandleIdentifier(repositoryUrl + "-" + HANDLE); >+ } >+} >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java,v >retrieving revision 1.77 >diff -u -r1.77 TaskElementLabelProvider.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java 1 Nov 2007 22:25:14 -0000 1.77 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskElementLabelProvider.java 6 Dec 2007 19:26:15 -0000 >@@ -14,6 +14,7 @@ > import org.eclipse.jface.viewers.IColorProvider; > import org.eclipse.jface.viewers.IFontProvider; > import org.eclipse.jface.viewers.LabelProvider; >+import org.eclipse.mylyn.internal.tasks.core.OrphanedTasksContainer; > import org.eclipse.mylyn.internal.tasks.core.Person; > import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer; > import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager; >@@ -87,7 +88,8 @@ > > private CompositeImageDescriptor getImageDescriptor(Object object) { > CompositeImageDescriptor compositeDescriptor = new CompositeImageDescriptor(); >- if (object instanceof TaskArchive || object instanceof UnfiledCategory) { >+ if (object instanceof TaskArchive || object instanceof UnfiledCategory >+ || object instanceof OrphanedTasksContainer) { > compositeDescriptor.icon = TasksUiImages.CATEGORY_ARCHIVE; > return compositeDescriptor; > } else if (object instanceof TaskCategory || object instanceof UnfiledCategory) { >@@ -223,6 +225,17 @@ > } else if (object instanceof TaskGroup) { > TaskGroup element = (TaskGroup) object; > return element.getSummary();// + " / " + element.getChildren().size(); >+ } else if (object instanceof OrphanedTasksContainer) { >+ OrphanedTasksContainer container = (OrphanedTasksContainer) object; >+ String result = container.getSummary(); >+ TaskRepository repository = TasksUiPlugin.getRepositoryManager().getRepository( >+ container.getConnectorKind(), container.getRepositoryUrl()); >+ if (repository != null) { >+ result = repository.getRepositoryLabel(); >+ } >+ >+ return result; >+ > } else if (object instanceof AbstractTaskContainer) { > AbstractTaskContainer element = (AbstractTaskContainer) object; > return element.getSummary(); >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java,v >retrieving revision 1.46 >diff -u -r1.46 TaskListDropAdapter.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java 30 Nov 2007 20:07:03 -0000 1.46 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java 6 Dec 2007 19:26:15 -0000 >@@ -25,6 +25,7 @@ > import org.eclipse.jface.viewers.ViewerDropAdapter; > import org.eclipse.mylyn.context.core.ContextCorePlugin; > import org.eclipse.mylyn.internal.context.core.InteractionContext; >+import org.eclipse.mylyn.internal.tasks.core.OrphanedTasksContainer; > import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer; > import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil; > import org.eclipse.mylyn.internal.tasks.core.TaskCategory; >@@ -156,14 +157,23 @@ > TasksUiPlugin.getTaskListManager().getTaskList().moveToContainer(task, (UnfiledCategory) currentTarget); > } else if (currentTarget instanceof TaskCategory) { > TasksUiPlugin.getTaskListManager().getTaskList().moveToContainer(task, (TaskCategory) currentTarget); >+ } else if (currentTarget instanceof OrphanedTasksContainer) { >+ if (((OrphanedTasksContainer) currentTarget).getRepositoryUrl().equals(task.getRepositoryUrl())) { >+ TasksUiPlugin.getTaskListManager().getTaskList().moveToContainer(task, >+ (AbstractTaskCategory) currentTarget); >+ } > } else if (currentTarget instanceof AbstractTask) { > AbstractTask targetTask = (AbstractTask) currentTarget; > AbstractTaskCategory targetCategory = null; > // TODO: just look for categories? > if (targetTask.getParentContainers().size() > 0) { > AbstractTaskContainer container = targetTask.getParentContainers().iterator().next(); >- if (container instanceof TaskCategory || container instanceof UnfiledCategory) { >+ if (container instanceof TaskCategory) { > targetCategory = (AbstractTaskCategory) container; >+ } else if (container instanceof OrphanedTasksContainer) { >+ if (((OrphanedTasksContainer) container).getRepositoryUrl().equals(task.getRepositoryUrl())) { >+ targetCategory = (AbstractTaskCategory) container; >+ } > } > } > if (targetCategory != null) { >@@ -298,7 +308,7 @@ > // handle all files > return true; > } else if (TaskTransfer.getInstance().isSupportedType(currentTransfer)) { >- if (getCurrentTarget() instanceof TaskCategory || getCurrentTarget() instanceof UnfiledCategory >+ if (getCurrentTarget() instanceof TaskCategory || getCurrentTarget() instanceof OrphanedTasksContainer > || getCurrentTarget() instanceof ScheduledTaskContainer) { > return true; > } else if (getCurrentTarget() instanceof AbstractTaskContainer >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java,v >retrieving revision 1.214 >diff -u -r1.214 TaskListView.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java 27 Nov 2007 00:07:59 -0000 1.214 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListView.java 6 Dec 2007 19:26:15 -0000 >@@ -1134,7 +1134,7 @@ > subMenu = new MenuManager("New", ID_MENU_NEW); > manager.add(subMenu); > } >- >+ > subMenu.add(new Separator(ID_SEPARATOR_NEW_REPOSITORY)); > subMenu.add(action); > subMenu.add(new Separator(ID_SEPARATOR_NEW_LOCAL)); >@@ -1176,7 +1176,7 @@ > manager.add(new Separator()); > > addAction(copyDetailsAction, manager, element); >- if (task != null && !task.isLocal()) { >+ if (task != null && task.isLocal()) { > // addAction(cloneThisBugAction, manager, element); > addAction(removeFromCategoryAction, manager, element); > } >@@ -1398,7 +1398,7 @@ > refreshJob.forceRefresh(); > } > } >- >+ > public void refresh() { > refreshJob.forceRefresh(); > // if (expand) { >@@ -1689,8 +1689,9 @@ > Set<AbstractTaskContainer> containers = new HashSet<AbstractTaskContainer>( > TasksUiPlugin.getTaskListManager().getTaskList().getQueriesForHandle(task.getHandleIdentifier())); > containers.addAll(task.getParentContainers()); >- containers.add(TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer()); >- containers.add(TasksUiPlugin.getTaskListManager().getTaskList().getDefaultCategory()); >+ containers.add(TasksUiPlugin.getTaskListManager().getTaskList().getOrphanContainer(task.getRepositoryUrl())); >+// containers.add(TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer()); >+// containers.add(TasksUiPlugin.getTaskListManager().getTaskList().getDefaultCategory()); > for (AbstractTaskContainer container : containers) { > refreshJob.refreshTask(container); > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskAction.java,v >retrieving revision 1.6 >diff -u -r1.6 AbstractTaskAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskAction.java 10 Jul 2007 00:30:38 -0000 1.6 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/AbstractTaskAction.java 6 Dec 2007 19:26:15 -0000 >@@ -14,7 +14,6 @@ > import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery; > import org.eclipse.mylyn.tasks.core.AbstractTask; > import org.eclipse.mylyn.tasks.core.AbstractTaskContainer; >-import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; > > /** > * @author Rob Elves >@@ -49,7 +48,7 @@ > protected abstract void performActionOnTask(AbstractTask repositoryTask); > > protected boolean containsArchiveContainer(List<AbstractTaskContainer> selectedElements) { >- return selectedElements.contains(TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer()); >+ return false;//selectedElements.contains(TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer()); > } > > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/RemoveFromCategoryAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/RemoveFromCategoryAction.java,v >retrieving revision 1.16 >diff -u -r1.16 RemoveFromCategoryAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/RemoveFromCategoryAction.java 19 Jul 2007 00:55:39 -0000 1.16 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/RemoveFromCategoryAction.java 6 Dec 2007 19:26:15 -0000 >@@ -59,25 +59,27 @@ > > TreeItem item = this.view.getViewer().getTree().getSelection()[0]; > Set<AbstractTaskContainer> parentContainers = task.getParentContainers(); >- >+ > if (item.getParentItem() != null && item.getParent().getData() instanceof TaskCategory) { > TaskCategory category = (TaskCategory) item.getParentItem().getData(); > TasksUiPlugin.getTaskListManager().getTaskList().removeFromCategory(category, task); >- TasksUiPlugin.getTaskListManager().getTaskList().moveToContainer(task, >- TasksUiPlugin.getTaskListManager().getTaskList().getDefaultCategory()); >- } else if (!task.isLocal() && parentContainers.contains(TasksUiPlugin.getTaskListManager().getTaskList().getDefaultCategory())) { >- TasksUiPlugin.getTaskListManager().getTaskList().moveToContainer(task, TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer()); >- } else if (parentContainers.contains(TasksUiPlugin.getTaskListManager().getTaskList().getDefaultCategory())) { >- MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), >- LABEL, "Can not remove from the default category, move to another category instead."); >- } else { >+ } >+// TasksUiPlugin.getTaskListManager().getTaskList().moveToContainer(task, >+// TasksUiPlugin.getTaskListManager().getTaskList().getDefaultCategory()); >+ else if (!parentContainers.isEmpty() && parentContainers.iterator().next() instanceof TaskCategory) { >+ TasksUiPlugin.getTaskListManager().getTaskList().removeFromCategory( >+ (TaskCategory) parentContainers.iterator().next(), task); >+ //TasksUiPlugin.getTaskListManager().getTaskList().moveToContainer(task, null); >+ }/* else if (parentContainers.contains(TasksUiPlugin.getTaskListManager() >+ .getTaskList() >+ .getDefaultCategory())) { >+ MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), >+ LABEL, "Can not remove from the default category, move to another category instead."); >+ }*/else { > TasksUiPlugin.getTaskListManager().getTaskList().moveToContainer(task, > TasksUiPlugin.getTaskListManager().getTaskList().getDefaultCategory()); > } >- >- if (item.getParentItem() != null && item.getParentItem().getData() instanceof TaskCategory) { > >- } > } > } > } catch (NullPointerException npe) { >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/MarkTaskUnreadAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/MarkTaskUnreadAction.java,v >retrieving revision 1.14 >diff -u -r1.14 MarkTaskUnreadAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/MarkTaskUnreadAction.java 1 Nov 2007 19:09:36 -0000 1.14 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/MarkTaskUnreadAction.java 6 Dec 2007 19:26:15 -0000 >@@ -34,16 +34,16 @@ > setId(ID); > setActionDefinitionId(DEFINITION_ID); > setImageDescriptor(TasksUiImages.OVERLAY_INCOMMING); >- if (containsArchiveContainer(selectedElements)) { >- setEnabled(false); >+// if (containsArchiveContainer(selectedElements)) { >+// setEnabled(false); >+// } else { >+ if (selectedElements.size() == 1 && (selectedElements.get(0) instanceof AbstractTask)) { >+ AbstractTask task = (AbstractTask) selectedElements.get(0); >+ setEnabled(!task.isLocal()); > } else { >- if (selectedElements.size() == 1 && (selectedElements.get(0) instanceof AbstractTask)) { >- AbstractTask task = (AbstractTask) selectedElements.get(0); >- setEnabled(!task.isLocal()); >- } else { >- setEnabled(true); >- } >+ setEnabled(true); > } >+// } > } > > @Override >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/MarkTaskReadAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/MarkTaskReadAction.java,v >retrieving revision 1.12 >diff -u -r1.12 MarkTaskReadAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/MarkTaskReadAction.java 1 Nov 2007 19:09:36 -0000 1.12 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/MarkTaskReadAction.java 6 Dec 2007 19:26:15 -0000 >@@ -25,24 +25,24 @@ > public static final String ID = "org.eclipse.mylyn.tasklist.actions.mark.read"; > > public static final String DEFINITION_ID = "org.eclipse.mylyn.tasks.ui.command.markTaskRead"; >- >+ > public MarkTaskReadAction(List<AbstractTaskContainer> selectedElements) { > super.selectedElements = selectedElements; > setText(ACTION_NAME); > setToolTipText("Mark " + ACTION_NAME); > setId(ID); > setActionDefinitionId(DEFINITION_ID); >- if (containsArchiveContainer(selectedElements)) { >- setEnabled(false); >+// if (containsArchiveContainer(selectedElements)) { >+// setEnabled(false); >+// } else { >+ setEnabled(selectedElements.size() > 0); >+ if (selectedElements.size() == 1 && (selectedElements.get(0) instanceof AbstractTask)) { >+ AbstractTask task = (AbstractTask) selectedElements.get(0); >+ setEnabled(!(task instanceof LocalTask)); > } else { >- setEnabled(selectedElements.size() > 0); >- if (selectedElements.size() == 1 && (selectedElements.get(0) instanceof AbstractTask)) { >- AbstractTask task = (AbstractTask) selectedElements.get(0); >- setEnabled(!(task instanceof LocalTask)); >- } else { >- setEnabled(true); >- } >+ setEnabled(true); > } >+// } > } > > @Override >Index: src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java,v >retrieving revision 1.39 >diff -u -r1.39 TaskEditorActionContributor.java >--- src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java 21 Nov 2007 21:17:43 -0000 1.39 >+++ src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorActionContributor.java 6 Dec 2007 19:26:15 -0000 >@@ -26,6 +26,7 @@ > import org.eclipse.jface.viewers.IStructuredSelection; > import org.eclipse.jface.viewers.SelectionChangedEvent; > import org.eclipse.jface.viewers.StructuredSelection; >+import org.eclipse.mylyn.internal.tasks.core.OrphanedTasksContainer; > import org.eclipse.mylyn.internal.tasks.ui.AddExistingTaskJob; > import org.eclipse.mylyn.internal.tasks.ui.IDynamicSubMenuContributor; > import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; >@@ -180,7 +181,7 @@ > > Collections.sort(categories); > for (final AbstractTaskCategory category : categories) { >- if (!category.equals(TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer())) { >+ if (!(category instanceof OrphanedTasksContainer)) {//.equals(TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer())) { > Action action = new Action() { > @Override > public void run() { >Index: src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java,v >retrieving revision 1.11 >diff -u -r1.11 DelegatingTaskExternalizer.java >--- src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java 11 Sep 2007 22:06:36 -0000 1.11 >+++ src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java 6 Dec 2007 19:26:15 -0000 >@@ -296,13 +296,14 @@ > boolean hasCaughtException = false; > Element element = (Element) node; > >- AbstractTaskCategory category; >+ AbstractTaskCategory category = null; > if (element.hasAttribute(DelegatingTaskExternalizer.KEY_NAME)) { > category = new TaskCategory(element.getAttribute(DelegatingTaskExternalizer.KEY_NAME)); > taskList.internalAddCategory((TaskCategory) category); > } else { > // LEGACY: registry categories did not have names >- category = taskList.getArchiveContainer(); >+ // category = taskList.getArchiveContainer(); >+ // a null category will now go into appropriate orphaned category > } > > NodeList list = node.getChildNodes(); >@@ -311,7 +312,9 @@ > try { > // LEGACY: categories used to contain tasks? > AbstractTask task = readTask(child, category, null); >- category.internalAddChild(task); >+ if (category != null) { >+ category.internalAddChild(task); >+ } > taskList.insertTask(task, category, null); > } catch (Throwable t) { > hasCaughtException = true; >@@ -379,7 +382,8 @@ > // return task; > // } > >- private void readTaskInfo(AbstractTask task, Element element, AbstractTask parent, AbstractTaskCategory legacyCategory) throws TaskExternalizationException { >+ private void readTaskInfo(AbstractTask task, Element element, AbstractTask parent, >+ AbstractTaskCategory legacyCategory) throws TaskExternalizationException { > if (task == null) { > return; > } >@@ -404,7 +408,7 @@ > // taskList.internalAddTask(task, taskList.getArchiveContainer()); > // } > task.setCategoryHandle(element.getAttribute(KEY_CATEGORY)); >- >+ > if (element.hasAttribute(KEY_PRIORITY)) { > task.setPriority(element.getAttribute(KEY_PRIORITY)); > } else { >Index: src/org/eclipse/mylyn/internal/tasks/ui/MoveToCategoryMenuContributor.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/MoveToCategoryMenuContributor.java,v >retrieving revision 1.20 >diff -u -r1.20 MoveToCategoryMenuContributor.java >--- src/org/eclipse/mylyn/internal/tasks/ui/MoveToCategoryMenuContributor.java 10 Jul 2007 00:30:39 -0000 1.20 >+++ src/org/eclipse/mylyn/internal/tasks/ui/MoveToCategoryMenuContributor.java 6 Dec 2007 19:26:15 -0000 >@@ -15,6 +15,7 @@ > import org.eclipse.jface.action.Action; > import org.eclipse.jface.action.MenuManager; > import org.eclipse.jface.action.Separator; >+import org.eclipse.mylyn.internal.tasks.core.OrphanedTasksContainer; > import org.eclipse.mylyn.internal.tasks.ui.actions.NewCategoryAction; > import org.eclipse.mylyn.tasks.core.AbstractTask; > import org.eclipse.mylyn.tasks.core.AbstractTaskCategory; >@@ -41,7 +42,7 @@ > .getCategories()); > Collections.sort(categories); > for (final AbstractTaskCategory category : categories) { >- if (!category.equals(TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer())) { >+ if (!(category instanceof OrphanedTasksContainer)) { > Action action = new Action() { > @Override > public void run() { >Index: src/org/eclipse/mylyn/internal/tasks/ui/LocalTaskConnectorUi.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/LocalTaskConnectorUi.java,v >retrieving revision 1.6 >diff -u -r1.6 LocalTaskConnectorUi.java >--- src/org/eclipse/mylyn/internal/tasks/ui/LocalTaskConnectorUi.java 15 Nov 2007 22:52:49 -0000 1.6 >+++ src/org/eclipse/mylyn/internal/tasks/ui/LocalTaskConnectorUi.java 6 Dec 2007 19:26:15 -0000 >@@ -47,7 +47,7 @@ > > @Override > public String getConnectorKind() { >- return LocalRepositoryConnector.REPOSITORY_KIND; >+ return LocalRepositoryConnector.CONNECTOR_KIND; > } > > @Override >Index: src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryAdapterFactory.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryAdapterFactory.java,v >retrieving revision 1.3 >diff -u -r1.3 TaskRepositoryAdapterFactory.java >--- src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryAdapterFactory.java 5 Dec 2007 03:27:41 -0000 1.3 >+++ src/org/eclipse/mylyn/internal/tasks/ui/TaskRepositoryAdapterFactory.java 6 Dec 2007 19:26:15 -0000 >@@ -47,7 +47,7 @@ > .getRepositoryConnector(repository.getConnectorKind()); > return connector.canCreateNewTask(repository); > } else if ("hasRepository".equals(name)) { >- return !repository.getConnectorKind().equals(LocalRepositoryConnector.REPOSITORY_KIND); >+ return !repository.getConnectorKind().equals(LocalRepositoryConnector.CONNECTOR_KIND); > } > return false; > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java,v >retrieving revision 1.29 >diff -u -r1.29 RepositorySearchResultView.java >--- src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java 5 Dec 2007 18:50:05 -0000 1.29 >+++ src/org/eclipse/mylyn/internal/tasks/ui/search/RepositorySearchResultView.java 6 Dec 2007 19:26:15 -0000 >@@ -21,6 +21,7 @@ > import org.eclipse.jface.viewers.StructuredViewer; > import org.eclipse.jface.viewers.TableViewer; > import org.eclipse.jface.viewers.TreeViewer; >+import org.eclipse.mylyn.internal.tasks.core.OrphanedTasksContainer; > import org.eclipse.mylyn.internal.tasks.ui.AddExistingTaskJob; > import org.eclipse.mylyn.internal.tasks.ui.TasksUiImages; > import org.eclipse.mylyn.internal.tasks.ui.views.TaskElementLabelProvider; >@@ -257,7 +258,7 @@ > > Collections.sort(categories); > for (final AbstractTaskCategory category : categories) { >- if (!category.equals(TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer())) { >+ if (!(category instanceof OrphanedTasksContainer)) {//.equals(TasksUiPlugin.getTaskListManager().getTaskList().getArchiveContainer())) { > Action action = new Action() { > @Override > public void run() { >Index: src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java,v >retrieving revision 1.163 >diff -u -r1.163 TasksUiPlugin.java >--- src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java 6 Dec 2007 02:04:27 -0000 1.163 >+++ src/org/eclipse/mylyn/tasks/ui/TasksUiPlugin.java 6 Dec 2007 19:26:16 -0000 >@@ -482,7 +482,7 @@ > > // Add standard local task repository > if (taskRepositoryManager.getRepository(LocalRepositoryConnector.REPOSITORY_URL) == null) { >- TaskRepository localRepository = new TaskRepository(LocalRepositoryConnector.REPOSITORY_KIND, >+ TaskRepository localRepository = new TaskRepository(LocalRepositoryConnector.CONNECTOR_KIND, > LocalRepositoryConnector.REPOSITORY_URL, LocalRepositoryConnector.REPOSITORY_VERSION); > localRepository.setRepositoryLabel(LocalRepositoryConnector.REPOSITORY_LABEL); > localRepository.setAnonymous(true); >Index: src/org/eclipse/mylyn/tasks/ui/TaskListManager.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasks/ui/TaskListManager.java,v >retrieving revision 1.116 >diff -u -r1.116 TaskListManager.java >--- src/org/eclipse/mylyn/tasks/ui/TaskListManager.java 5 Sep 2007 21:03:22 -0000 1.116 >+++ src/org/eclipse/mylyn/tasks/ui/TaskListManager.java 6 Dec 2007 19:26:15 -0000 >@@ -497,7 +497,7 @@ > } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) { > taskList.addTask(newTask, view.getDrilledIntoCategory()); > } else { >- taskList.addTask(newTask, TasksUiPlugin.getTaskListManager().getTaskList().getDefaultCategory()); >+ taskList.addTask(newTask);//, TasksUiPlugin.getTaskListManager().getTaskList().getDefaultCategory()); > } > } else if (view != null && view.getDrilledIntoCategory() instanceof TaskCategory) { > taskList.addTask(newTask, view.getDrilledIntoCategory()); >@@ -506,7 +506,7 @@ > 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.getDefaultCategory()); >+ taskList.addTask(newTask); > } > return newTask; > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/planner/TaskActivityWizardPage.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/planner/TaskActivityWizardPage.java,v >retrieving revision 1.16 >diff -u -r1.16 TaskActivityWizardPage.java >--- src/org/eclipse/mylyn/internal/tasks/ui/planner/TaskActivityWizardPage.java 28 Aug 2007 03:55:26 -0000 1.16 >+++ src/org/eclipse/mylyn/internal/tasks/ui/planner/TaskActivityWizardPage.java 6 Dec 2007 19:26:15 -0000 >@@ -217,7 +217,7 @@ > List<AbstractTaskContainer> containers = new ArrayList<AbstractTaskContainer>(); > containers.addAll(manager.getTaskList().getUserCategories()); > containers.addAll(manager.getTaskList().getQueries()); >- containers.add(manager.getTaskList().getArchiveContainer()); >+ //containers.add(manager.getTaskList().getArchiveContainer()); > Collections.sort(containers, new Comparator<AbstractTaskContainer>() { > > public int compare(AbstractTaskContainer c1, AbstractTaskContainer c2) { >Index: src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java,v >retrieving revision 1.28 >diff -u -r1.28 SelectRepositoryPage.java >--- src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java 18 Oct 2007 21:46:13 -0000 1.28 >+++ src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java 6 Dec 2007 19:26:15 -0000 >@@ -159,7 +159,7 @@ > viewer.setSelection(new StructuredSelection(selectedRepository)); > } else { > TaskRepository localRepository = TasksUiPlugin.getRepositoryManager().getRepository( >- LocalRepositoryConnector.REPOSITORY_KIND, LocalRepositoryConnector.REPOSITORY_URL); >+ LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL); > viewer.setSelection(new StructuredSelection(localRepository)); > } > >#P org.eclipse.mylyn.tasks.tests >Index: src/org/eclipse/mylyn/tasks/tests/TaskListTest.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java,v >retrieving revision 1.9 >diff -u -r1.9 TaskListTest.java >--- src/org/eclipse/mylyn/tasks/tests/TaskListTest.java 10 Jul 2007 00:29:58 -0000 1.9 >+++ src/org/eclipse/mylyn/tasks/tests/TaskListTest.java 6 Dec 2007 19:26:16 -0000 >@@ -15,6 +15,7 @@ > > /** > * @author Mik Kersten >+ * @author Rob Elves > */ > public class TaskListTest extends TestCase { > >Index: src/org/eclipse/mylyn/tasks/tests/NewTaskWizardRepositorySelectionTest.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/NewTaskWizardRepositorySelectionTest.java,v >retrieving revision 1.3 >diff -u -r1.3 NewTaskWizardRepositorySelectionTest.java >--- src/org/eclipse/mylyn/tasks/tests/NewTaskWizardRepositorySelectionTest.java 22 Nov 2007 01:28:48 -0000 1.3 >+++ src/org/eclipse/mylyn/tasks/tests/NewTaskWizardRepositorySelectionTest.java 6 Dec 2007 19:26:16 -0000 >@@ -80,7 +80,7 @@ > > SelectRepositoryPage page = (SelectRepositoryPage) wizard.getPages()[0]; > TaskRepository localRepository = TasksUiPlugin.getRepositoryManager().getRepositories( >- LocalRepositoryConnector.REPOSITORY_KIND).iterator().next(); >+ LocalRepositoryConnector.CONNECTOR_KIND).iterator().next(); > assertEquals(localRepository, ((IStructuredSelection) page.getViewer().getSelection()).getFirstElement()); > > wizard.dispose(); >Index: src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java,v >retrieving revision 1.39 >diff -u -r1.39 AllTasksTests.java >--- src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java 22 Nov 2007 00:47:08 -0000 1.39 >+++ src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java 6 Dec 2007 19:26:16 -0000 >@@ -60,6 +60,7 @@ > suite.addTestSuite(PersonProposalProviderTest.class); > suite.addTestSuite(TaskRepositoryLocationTest.class); > suite.addTestSuite(AbstractTaskDataHandlerTest.class); >+ suite.addTestSuite(OrphanedTasksTest.class); > // $JUnit-END$ > > // suite.addTestSuite(BackgroundSaveTest.class); >Index: src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryQuery.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryQuery.java,v >retrieving revision 1.6 >diff -u -r1.6 MockRepositoryQuery.java >--- src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryQuery.java 26 Jun 2007 01:16:10 -0000 1.6 >+++ src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryQuery.java 6 Dec 2007 19:26:16 -0000 >@@ -15,11 +15,12 @@ > */ > public class MockRepositoryQuery extends AbstractRepositoryQuery { > >- public String MOCK_URL = "http://mock.repository"; >+ public String MOCK_QUERY_URL = MockRepositoryConnector.REPOSITORY_URL + ".query"; > > public MockRepositoryQuery(String description) { > super(description); >- super.setUrl(MOCK_URL); >+ super.setUrl(MOCK_QUERY_URL); >+ super.setRepositoryUrl(MockRepositoryConnector.REPOSITORY_URL); > } > > public MockRepositoryQuery(String description, String url) { >Index: src/org/eclipse/mylyn/tasks/tests/OrphanedTasksTest.java >=================================================================== >RCS file: src/org/eclipse/mylyn/tasks/tests/OrphanedTasksTest.java >diff -N src/org/eclipse/mylyn/tasks/tests/OrphanedTasksTest.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/tasks/tests/OrphanedTasksTest.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,247 @@ >+/******************************************************************************* >+ * Copyright (c) 2004, 2007 Mylyn project 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.tasks.tests; >+ >+import java.util.Set; >+ >+import junit.framework.TestCase; >+ >+import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; >+import org.eclipse.mylyn.internal.tasks.core.LocalTask; >+import org.eclipse.mylyn.internal.tasks.core.OrphanedTasksContainer; >+import org.eclipse.mylyn.internal.tasks.core.TaskCategory; >+import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery; >+import org.eclipse.mylyn.tasks.core.AbstractTask; >+import org.eclipse.mylyn.tasks.core.TaskList; >+import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; >+import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery; >+import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryTask; >+import org.eclipse.mylyn.tasks.ui.TasksUiPlugin; >+ >+/** >+ * @author Rob Elves >+ */ >+public class OrphanedTasksTest extends TestCase { >+ >+ private TaskList taskList; >+ >+ protected void setUp() throws Exception { >+ super.setUp(); >+ TasksUiPlugin.getTaskListManager().resetTaskList(); >+ taskList = TasksUiPlugin.getTaskListManager().getTaskList(); >+ assertTrue(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).isEmpty()); >+ } >+ >+ protected void tearDown() throws Exception { >+ super.tearDown(); >+ } >+ >+ /** >+ * y New local tasks should automatically be created in the Local orphaned folder >+ */ >+ public void testAddLocalTask() { >+ Set<AbstractTask> tasks = TasksUiPlugin.getTaskListManager().getTaskList().getRepositoryTasks( >+ LocalRepositoryConnector.REPOSITORY_URL); >+ assertTrue(tasks.isEmpty()); >+ AbstractTask localTask = TasksUiPlugin.getTaskListManager().createNewLocalTask("Task 1"); >+ assertNotNull(localTask); >+ assertEquals(1, localTask.getParentContainers().size()); >+ assertTrue(localTask.getParentContainers().iterator().next() instanceof OrphanedTasksContainer); >+ } >+ >+ /** >+ * When a local tasks is removed from a category it should be placed in the local repository orphaned container. >+ */ >+ public void testRemoveLocalTask() { >+ TaskCategory category = new TaskCategory("taskCategoryHandle"); >+ taskList.addCategory(category); >+ LocalTask newTask = new LocalTask("" + taskList.getNextLocalTaskId(), "new local task"); >+ taskList.addTask(newTask, category); >+ assertEquals(taskList.getOrphanContainers().size(), 1); >+ assertEquals(1, taskList.getCategories().size()); >+ assertTrue(taskList.getCategories().iterator().next().contains(newTask.getHandleIdentifier())); >+ taskList.removeFromCategory(category, newTask); >+ assertEquals(taskList.getOrphanContainers().size(), 1); >+ assertFalse(category.contains(newTask.getHandleIdentifier())); >+ assertTrue(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).contains( >+ newTask.getHandleIdentifier())); >+ assertEquals(1, newTask.getParentContainers().size()); >+ assertEquals(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).getHandleIdentifier(), >+ newTask.getParentContainers().iterator().next().getHandleIdentifier()); >+ } >+ >+ /** >+ * Local tasks in a removed category should be orphaned. >+ */ >+ public void testLocalTaskOrphanedInDeletedTaskCategory() { >+ assertTrue(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).isEmpty()); >+ TaskCategory category = new TaskCategory("taskCategoryHandle"); >+ taskList.addCategory(category); >+ LocalTask newTask = new LocalTask("" + taskList.getNextLocalTaskId(), "new local task"); >+ taskList.addTask(newTask, category); >+ assertTrue(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).isEmpty()); >+ taskList.deleteCategory(category); >+ assertTrue(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).contains( >+ newTask.getHandleIdentifier())); >+ >+ } >+ >+ /** >+ * Query removed with task in category, just query removed task remains. >+ */ >+ public void testTaskRemovedFromQuery() { >+ MockRepositoryTask mockTask = new MockRepositoryTask("1"); >+ mockTask.setLastReadTimeStamp("now"); >+ MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query"); >+ taskList.addQuery(mockQuery); >+ taskList.addTask(mockTask, mockQuery); >+ >+ taskList.removeFromQuery(mockQuery, mockTask); >+ >+ assertFalse(mockQuery.contains(mockTask.getHandleIdentifier())); >+ assertTrue(taskList.getOrphanContainer(MockRepositoryConnector.REPOSITORY_URL).contains( >+ mockTask.getHandleIdentifier())); >+ } >+ >+ /** >+ * Query removed with task in category, just query removed task remains. >+ */ >+ public void testTaskRemovedFromQueryButInCategory() { >+ MockRepositoryTask mockTask = new MockRepositoryTask("1"); >+ mockTask.setLastReadTimeStamp("now"); >+ MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query"); >+ taskList.addQuery(mockQuery); >+ taskList.addTask(mockTask, mockQuery); >+ >+ TaskCategory category = new TaskCategory("taskCategoryHandle"); >+ taskList.addCategory(category); >+ taskList.addTask(mockTask, category); >+ assertTrue(category.contains(mockTask.getHandleIdentifier())); >+ taskList.removeFromQuery(mockQuery, mockTask); >+ >+ assertFalse(mockQuery.contains(mockTask.getHandleIdentifier())); >+ assertEquals(1, taskList.getCategories().size()); >+ assertTrue(taskList.getCategories().iterator().next().contains(mockTask.getHandleIdentifier())); >+ >+ //* Repository tasks within a removed category that are not in a query should be orphaned. >+ >+ taskList.removeFromCategory(category, mockTask); >+ assertTrue(taskList.getOrphanContainer(MockRepositoryConnector.REPOSITORY_URL).contains( >+ mockTask.getHandleIdentifier())); >+ } >+ >+ /** >+ * Repository tasks that exists in a query are not orphaned. >+ */ >+ public void testRepositoryTaskInDeletedCategory() { >+ MockRepositoryTask mockTask = new MockRepositoryTask("1"); >+ MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query"); >+ taskList.addQuery(mockQuery); >+ taskList.addTask(mockTask, mockQuery); >+ >+ TaskCategory category = new TaskCategory("taskCategoryHandle"); >+ taskList.addCategory(category); >+ taskList.addTask(mockTask, category); >+ >+ assertTrue(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).isEmpty()); >+ taskList.deleteCategory(category); >+ assertNull(taskList.getOrphanContainer(MockRepositoryConnector.REPOSITORY_URL)); >+ assertNull(taskList.getOrphanContainer(MockRepositoryConnector.REPOSITORY_URL)); >+ assertEquals(0, taskList.getCategories().size()); >+ } >+ >+ /** >+ * Repository tasks that exist in another query are not orphaned >+ */ >+ public void testRemovalOfTaskInTwoQueries() { >+ MockRepositoryTask mockTask = new MockRepositoryTask("1"); >+ MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query 1"); >+ MockRepositoryQuery mockQuery2 = new MockRepositoryQuery("mock query 1"); >+ taskList.addQuery(mockQuery); >+ taskList.addQuery(mockQuery2); >+ taskList.addTask(mockTask, mockQuery); >+ taskList.addTask(mockTask, mockQuery2); >+ >+ taskList.removeFromQuery(mockQuery2, mockTask); >+ assertTrue(mockQuery2.isEmpty()); >+ assertFalse(mockQuery.isEmpty()); >+ assertNull(taskList.getOrphanContainer(MockRepositoryConnector.REPOSITORY_URL)); >+ assertEquals(0, taskList.getCategories().size()); >+ } >+ >+ /** >+ * Moving an orphan to a Category should result in the task only being present in the target Category >+ */ >+ public void testMoveLocalTask() { >+ TaskCategory category = new TaskCategory("taskCategoryHandle"); >+ taskList.addCategory(category); >+ LocalTask newTask = new LocalTask("" + taskList.getNextLocalTaskId(), "new local task"); >+ taskList.addTask(newTask, null); >+ assertTrue(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).contains( >+ newTask.getHandleIdentifier())); >+ taskList.moveToContainer(newTask, category); >+ assertFalse(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).contains( >+ newTask.getHandleIdentifier())); >+ } >+ >+ public void testAddRepositoryTask() { >+ MockRepositoryTask mockTask = new MockRepositoryTask("1"); >+ MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query"); >+ TasksUiPlugin.getTaskListManager().getTaskList().addQuery(mockQuery); >+ TasksUiPlugin.getTaskListManager().getTaskList().addTask(mockTask, mockQuery); >+ Set<AbstractTask> tasks = TasksUiPlugin.getTaskListManager().getTaskList().getRepositoryTasks( >+ MockRepositoryConnector.REPOSITORY_URL); >+ assertFalse(tasks.isEmpty()); >+ AbstractRepositoryQuery query = TasksUiPlugin.getTaskListManager().getTaskList().getQueryForHandle( >+ mockTask.getHandleIdentifier()); >+ assertEquals(mockQuery, query); >+ assertFalse(query.isEmpty()); >+ assertNull(TasksUiPlugin.getTaskListManager().getTaskList().getOrphanContainer( >+ MockRepositoryConnector.REPOSITORY_URL)); >+ } >+ >+ public void testMoveRepositoryTask() { >+ TaskList tasklist = TasksUiPlugin.getTaskListManager().getTaskList(); >+ assertTrue(tasklist.getAllTasks().isEmpty()); >+ >+ MockRepositoryTask mockTask = new MockRepositoryTask("1"); >+ MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query"); >+ TasksUiPlugin.getTaskListManager().getTaskList().addQuery(mockQuery); >+ TasksUiPlugin.getTaskListManager().getTaskList().addTask(mockTask, mockQuery); >+ >+ TaskCategory category = new TaskCategory("taskCategoryHandle"); >+ taskList.addCategory(category); >+ >+ taskList.moveToContainer(mockTask, category); >+ assertTrue(taskList.getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL).isEmpty()); >+ assertTrue(category.contains(mockTask.getHandleIdentifier())); >+ assertTrue(mockQuery.contains(mockTask.getHandleIdentifier())); >+ >+ } >+ >+ public void testRefactorOrphanedHandle() { >+ MockRepositoryTask mockTask = new MockRepositoryTask("1"); >+ mockTask.setLastReadTimeStamp("now"); >+ MockRepositoryQuery mockQuery = new MockRepositoryQuery("mock query"); >+ taskList.addQuery(mockQuery); >+ taskList.addTask(mockTask, mockQuery); >+ >+ taskList.removeFromQuery(mockQuery, mockTask); >+ >+ assertFalse(mockQuery.contains(mockTask.getHandleIdentifier())); >+ assertTrue(taskList.getOrphanContainer(MockRepositoryConnector.REPOSITORY_URL).contains( >+ mockTask.getHandleIdentifier())); >+ >+ taskList.refactorRepositoryUrl(MockRepositoryConnector.REPOSITORY_URL, MockRepositoryConnector.REPOSITORY_URL >+ + "new"); >+ assertTrue(taskList.getOrphanContainer(MockRepositoryConnector.REPOSITORY_URL + "new").contains( >+ mockTask.getHandleIdentifier())); >+ } >+ >+}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 181388
:
84602
| 84662 |
84842
|
85021
|
85034
|
85037
|
85039
|
85098
|
85142