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 169742 Details for
Bug 302907
[api] support categorization in Task Repositories view
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
v5
clipboard.txt (text/plain), 43.42 KB, created by
Robert Elves
on 2010-05-24 18:12:58 EDT
(
hide
)
Description:
v5
Filename:
MIME Type:
Creator:
Robert Elves
Created:
2010-05-24 18:12:58 EDT
Size:
43.42 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.bugzilla.ui >Index: src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositoryMigrator.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositoryMigrator.java >diff -N src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositoryMigrator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/bugzilla/ui/tasklist/BugzillaRepositoryMigrator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+/******************************************************************************* >+ * Copyright (c) 2004, 2008 Tasktop Technologies 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: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.bugzilla.ui.tasklist; >+ >+import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin; >+import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants; >+import org.eclipse.mylyn.tasks.core.AbstractRepositoryMigrator; >+import org.eclipse.mylyn.tasks.core.TaskRepository; >+ >+/** >+ * @author Robert Elves >+ * @since 3.4 >+ */ >+public class BugzillaRepositoryMigrator extends AbstractRepositoryMigrator { >+ >+ @Override >+ public String getConnectorKind() { >+ return BugzillaCorePlugin.CONNECTOR_KIND; >+ } >+ >+ @Override >+ public boolean migrateRepository(TaskRepository repository) { >+ if (repository.getProperty(IRepositoryConstants.PROPERTY_CATEGORY) == null) { >+ repository.setProperty(IRepositoryConstants.PROPERTY_CATEGORY, IRepositoryConstants.CATEGORY_BUGS); >+ return true; >+ } >+ return false; >+ } >+ >+} >#P org.eclipse.mylyn.tasks.core >Index: META-INF/MANIFEST.MF >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF,v >retrieving revision 1.365 >diff -u -r1.365 MANIFEST.MF >--- META-INF/MANIFEST.MF 11 Apr 2010 19:49:55 -0000 1.365 >+++ META-INF/MANIFEST.MF 24 May 2010 22:12:20 -0000 >@@ -14,6 +14,7 @@ > org.eclipse.mylyn.internal.tasks.core;x-friends:="org.eclipse.mylyn.tasks.ui,org.eclipse.mylyn.tasks.bugs", > org.eclipse.mylyn.internal.tasks.core.data;x-friends:="org.eclipse.mylyn.tasks.ui,org.eclipse.mylyn.tasks.bugs", > org.eclipse.mylyn.internal.tasks.core.externalization;x-friends:="org.eclipse.mylyn.tasks.ui,org.eclipse.mylyn.tasks.bugs", >+ org.eclipse.mylyn.internal.tasks.core.notifications;x-friends:="org.eclipse.mylyn.tasks.ui,org.eclipse.mylyn.tasks.bugs", > org.eclipse.mylyn.internal.tasks.core.sync;x-friends:="org.eclipse.mylyn.tasks.ui,org.eclipse.mylyn.tasks.bugs", > org.eclipse.mylyn.tasks.core, > org.eclipse.mylyn.tasks.core.data, >Index: src/org/eclipse/mylyn/internal/tasks/core/IRepositoryConstants.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/IRepositoryConstants.java,v >retrieving revision 1.5 >diff -u -r1.5 IRepositoryConstants.java >--- src/org/eclipse/mylyn/internal/tasks/core/IRepositoryConstants.java 13 Jan 2009 07:05:10 -0000 1.5 >+++ src/org/eclipse/mylyn/internal/tasks/core/IRepositoryConstants.java 24 May 2010 22:12:20 -0000 >@@ -29,6 +29,8 @@ > > public static final String PROPERTY_CONNECTOR_KIND = "kind"; //$NON-NLS-1$ > >+ public static final String PROPERTY_CATEGORY = "category"; //$NON-NLS-1$ >+ > public static final String PROPERTY_URL = "url"; //$NON-NLS-1$ > > public static final String PROPERTY_LABEL = "label"; //$NON-NLS-1$ >@@ -37,4 +39,10 @@ > > public static final String KIND_UNKNOWN = "<unknown>"; //$NON-NLS-1$ > >+ public static final String CATEGORY_TASKS = "org.eclipse.mylyn.category.tasks"; //$NON-NLS-1$ >+ >+ public static final String CATEGORY_BUGS = "org.eclipse.mylyn.category.bugs"; //$NON-NLS-1$ >+ >+ public static final String CATEGORY_OTHER = "org.eclipse.mylyn.category.other"; //$NON-NLS-1$ >+ > } >Index: src/org/eclipse/mylyn/internal/tasks/core/TaskRepositoryManager.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskRepositoryManager.java,v >retrieving revision 1.32 >diff -u -r1.32 TaskRepositoryManager.java >--- src/org/eclipse/mylyn/internal/tasks/core/TaskRepositoryManager.java 10 Jan 2010 05:02:07 -0000 1.32 >+++ src/org/eclipse/mylyn/internal/tasks/core/TaskRepositoryManager.java 24 May 2010 22:12:20 -0000 >@@ -33,6 +33,7 @@ > import org.eclipse.mylyn.commons.core.StatusHandler; > import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryDelta.Type; > import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; >+import org.eclipse.mylyn.tasks.core.AbstractRepositoryMigrator; > import org.eclipse.mylyn.tasks.core.IRepositoryListener; > import org.eclipse.mylyn.tasks.core.IRepositoryManager; > import org.eclipse.mylyn.tasks.core.ITask; >@@ -57,6 +58,7 @@ > > private final Map<String, AbstractRepositoryConnector> repositoryConnectors = new HashMap<String, AbstractRepositoryConnector>(); > >+ // connector kinds to corresponding repositories > private final Map<String, Set<TaskRepository>> repositoryMap = new HashMap<String, Set<TaskRepository>>(); > > private final Set<IRepositoryListener> listeners = new CopyOnWriteArraySet<IRepositoryListener>(); >@@ -67,6 +69,8 @@ > > public static final String PREFIX_LOCAL = "local-"; //$NON-NLS-1$ > >+ private static final Map<String, Category> repositoryCategories = new HashMap<String, Category>(); >+ > private final PropertyChangeListener PROPERTY_CHANGE_LISTENER = new PropertyChangeListener() { > public void propertyChange(PropertyChangeEvent evt) { > TaskRepositoryManager.this.notifyRepositorySettingsChanged((TaskRepository) evt.getSource(), >@@ -76,7 +80,16 @@ > > private final TaskRepositoriesExternalizer externalizer = new TaskRepositoriesExternalizer(); > >+ private List<AbstractRepositoryMigrator> migrators; >+ > public TaskRepositoryManager() { >+ this.migrators = Collections.emptyList(); >+ Category catTasks = new Category(IRepositoryConstants.CATEGORY_TASKS, "Tasks", 0); //$NON-NLS-1$ >+ repositoryCategories.put(catTasks.getId(), catTasks); >+ Category catBugs = new Category(IRepositoryConstants.CATEGORY_BUGS, "Bugs", 100); //$NON-NLS-1$ >+ repositoryCategories.put(catBugs.getId(), catBugs); >+ Category catOther = new Category(IRepositoryConstants.CATEGORY_OTHER, "Other", 200); //$NON-NLS-1$ >+ repositoryCategories.put(catOther.getId(), catOther); > } > > public synchronized Collection<AbstractRepositoryConnector> getRepositoryConnectors() { >@@ -118,6 +131,7 @@ > // TODO 4.0 return false to indicate that remove was unsuccessful > return; > } >+ > repository.addChangeListener(PROPERTY_CHANGE_LISTENER); > } > >@@ -182,6 +196,15 @@ > return sb.toString(); > } > >+ public Category getCategory(String id) { >+ Category category = repositoryCategories.get(IRepositoryConstants.CATEGORY_OTHER); >+ Category cat = repositoryCategories.get(id); >+ if (cat != null) { >+ category = cat; >+ } >+ return category; >+ } >+ > public TaskRepository getRepository(String kind, String urlString) { > Assert.isNotNull(kind); > Assert.isNotNull(urlString); >@@ -233,11 +256,11 @@ > return null; > } > >- public Set<TaskRepository> getRepositories(String kind) { >- Assert.isNotNull(kind); >+ public Set<TaskRepository> getRepositories(String connectorKind) { >+ Assert.isNotNull(connectorKind); > Set<TaskRepository> result; > synchronized (this) { >- result = repositoryMap.get(kind); >+ result = repositoryMap.get(connectorKind); > } > if (result == null) { > return Collections.emptySet(); >@@ -309,9 +332,14 @@ > if (removeHttpAuthMigration(repository)) { > migration = true; > } >+ if (applyMigrators(repository)) { >+ migration = true; >+ } > if (repositoryMap.containsKey(repository.getConnectorKind())) { > repositoryMap.get(repository.getConnectorKind()).add(repository); >+ > repository.addChangeListener(PROPERTY_CHANGE_LISTENER); >+ > } else { > orphanedRepositories.add(repository); > } >@@ -323,6 +351,33 @@ > } > } > >+ private boolean applyMigrators(final TaskRepository repository) { >+ final boolean[] result = new boolean[1]; >+ for (AbstractRepositoryMigrator migrator : migrators) { >+ if (migrator.getConnectorKind().equals(repository.getConnectorKind())) { >+ >+ final AbstractRepositoryMigrator finalRepositoryMigrator = migrator; >+ result[0] = false; >+ SafeRunner.run(new ISafeRunnable() { >+ >+ public void handleException(Throwable e) { >+ StatusHandler.log(new Status(IStatus.WARNING, ITasksCoreConstants.ID_PLUGIN, >+ "Repository migration failed for repository \"" + repository.getUrl() + "\"", e)); //$NON-NLS-1$ //$NON-NLS-2$ >+ } >+ >+ public void run() throws Exception { >+ if (finalRepositoryMigrator.migrateRepository(repository)) { >+ result[0] = true; >+ } >+ } >+ >+ }); >+ break; >+ } >+ } >+ return result[0]; >+ } >+ > @SuppressWarnings("deprecation") > private boolean removeHttpAuthMigration(TaskRepository repository) { > String httpusername = repository.getProperty(TaskRepository.AUTH_HTTP_USERNAME); >@@ -447,4 +502,13 @@ > } > } > >+ public Category getCategory(TaskRepository repository) { >+ String categoryId = repository.getProperty(IRepositoryConstants.PROPERTY_CATEGORY); >+ return getCategory(categoryId); >+ } >+ >+ public void initialize(List<AbstractRepositoryMigrator> repositoryMigrators) { >+ this.migrators = repositoryMigrators; >+ >+ } > } >Index: src/org/eclipse/mylyn/tasks/core/AbstractRepositoryMigrator.java >=================================================================== >RCS file: src/org/eclipse/mylyn/tasks/core/AbstractRepositoryMigrator.java >diff -N src/org/eclipse/mylyn/tasks/core/AbstractRepositoryMigrator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/tasks/core/AbstractRepositoryMigrator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,26 @@ >+/******************************************************************************* >+ * Copyright (c) 2004, 2008 Tasktop Technologies 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: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.tasks.core; >+ >+/** >+ * @author Robert Elves >+ * @since 3.4 >+ */ >+public abstract class AbstractRepositoryMigrator { >+ >+ public abstract String getConnectorKind(); >+ >+ public boolean migrateRepository(TaskRepository repository) { >+ return false; >+ } >+ >+} >Index: src/org/eclipse/mylyn/internal/tasks/core/Category.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/core/Category.java >diff -N src/org/eclipse/mylyn/internal/tasks/core/Category.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/core/Category.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,59 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Tasktop Technologies 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: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.core; >+ >+import org.eclipse.core.runtime.PlatformObject; >+ >+/** >+ * Categories include Tasks, Bugs, Other... >+ * >+ * @author Robert Elves >+ */ >+public class Category extends PlatformObject { >+ >+ private final String id; >+ >+ private final String label; >+ >+ private final int rank; >+ >+ public Category(String id, String label, int rank) { >+ this.id = id; >+ this.label = label; >+ this.rank = rank; >+ } >+ >+ public String getId() { >+ return id; >+ } >+ >+ public int compareTo(Object arg0) { >+ if (arg0 instanceof Category) { >+ return this.getRank() - ((Category) arg0).getRank(); >+ } >+ return 0; >+ } >+ >+ public int getRank() { >+ return rank; >+ } >+ >+ public String getLabel() { >+ return label; >+ } >+ >+ @Override >+ public String toString() { >+ return getLabel(); >+ }; >+ >+} >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java,v >retrieving revision 1.24 >diff -u -r1.24 Messages.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java 17 Apr 2010 06:13:51 -0000 1.24 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java 24 May 2010 22:12:21 -0000 >@@ -37,7 +37,7 @@ > > public static String AddRepositoryAction_Add_a_query_to_the_Task_List; > >- public static String AddRepositoryAction_Add_Task_Repository; >+ public static String AddRepositoryAction_Add_Team_Repository; > > public static String AddRepositoryAction_Do_not_show_again; > >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java,v >retrieving revision 1.24 >diff -u -r1.24 AddRepositoryAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java 5 Jun 2009 14:28:35 -0000 1.24 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/AddRepositoryAction.java 24 May 2010 22:12:21 -0000 >@@ -45,7 +45,7 @@ > > private static final String ID = "org.eclipse.mylyn.tasklist.repositories.add"; //$NON-NLS-1$ > >- public static final String TITLE = Messages.AddRepositoryAction_Add_Task_Repository; >+ public static final String TITLE = Messages.AddRepositoryAction_Add_Team_Repository; > > private boolean promptToAddQuery = true; > >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties,v >retrieving revision 1.29 >diff -u -r1.29 messages.properties >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties 19 May 2010 20:29:46 -0000 1.29 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties 24 May 2010 22:12:21 -0000 >@@ -17,7 +17,7 @@ > AddRepositoryAction_Add_new_query=Add new query > > AddRepositoryAction_Add_a_query_to_the_Task_List=Would you like to add a query to the Task List for this repository? >-AddRepositoryAction_Add_Task_Repository=Add Task Repository... >+AddRepositoryAction_Add_Team_Repository=Add Repository... > AddRepositoryAction_Do_not_show_again=Do not show again > AutoUpdateQueryAction_Synchronize_Automatically_Label=Synchronize Automatically > >@@ -56,7 +56,7 @@ > DeleteAction_Delete_task_from_task_list_context_planning_deleted=Delete the following task from the Task List? Contexts and planning information will be deleted for the selected task. The server copy will not be deleted and the task will remain in queries that match it if it is not deleted from the repository. > DeleteAction_Delete_tasks_from_task_list_context_planning_deleted=Delete the following tasks from the Task List? Contexts and planning information will be deleted for the selected tasks. The server copy will not be deleted and the tasks will remain in queries that match it if it is not deleted from the repository. > DeleteAction_Delete_the_planning_information_and_context_of_all_unmatched_tasks=Delete the planning information and context of all unmatched tasks? The server copy of these tasks will not be deleted and the task will remain in queries that match it. >-DeleteAction_Deleting_tasks_from_repositories=Deleting Tasks from Task Repositories >+DeleteAction_Deleting_tasks_from_repositories=Deleting Tasks from Team Repositories > DeleteAction_Not_supported=(not supported) > DeleteAction_Nothing_selected=Nothing selected. > DeleteAction_Permanently_delete_from_task_list=Permanently delete the following task from the Task List? >@@ -67,11 +67,11 @@ > > DeleteTaskEditorAction_Delete_Task=Delete Task > DeleteTaskRepositoryAction_Confirm_Delete=Confirm Delete >-DeleteTaskRepositoryAction_Delete_Specific_Task_Repository=Are you sure you want to delete task repository "{0}"? >+DeleteTaskRepositoryAction_Delete_Specific_Task_Repository=Are you sure you want to delete team repository "{0}"? > DeleteTaskRepositoryAction_Delete_Repository=Delete Repository > DeleteTaskRepositoryAction_Delete_Repository_In_Progress=Deleting repository and related artifacts > DeleteTaskRepositoryAction_Delete_the_selected_task_repositories=This repository is being used by {0} tasks and {1} queries. Do you wish to delete the repository, tasks, and queries? >-DeleteTaskRepositoryAction_Delete_Task_Repository_Failed=Delete Task Repository Failed >+DeleteTaskRepositoryAction_Delete_Task_Repository_Failed=Delete Team Repository Failed > > EditRepositoryPropertiesAction_Properties=Properties > >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java,v >retrieving revision 1.24 >diff -u -r1.24 TaskRepositoryLabelProvider.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java 13 Jan 2009 07:07:36 -0000 1.24 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoryLabelProvider.java 24 May 2010 22:12:21 -0000 >@@ -14,6 +14,7 @@ > import org.eclipse.jface.viewers.ILabelProvider; > import org.eclipse.jface.viewers.ILabelProviderListener; > import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages; >+import org.eclipse.mylyn.internal.tasks.core.Category; > import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; > import org.eclipse.mylyn.internal.tasks.ui.actions.DisconnectRepositoryAction; > import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; >@@ -37,7 +38,9 @@ > } > > public Image getImage(Object object) { >- if (object instanceof AbstractRepositoryConnector) { >+ if (object instanceof Category) { >+ return CommonImages.getImage(TasksUiImages.CATEGORY); >+ } else if (object instanceof AbstractRepositoryConnector) { > AbstractRepositoryConnector repositoryConnector = (AbstractRepositoryConnector) object; > Image image = TasksUiPlugin.getDefault().getBrandingIcon(repositoryConnector.getConnectorKind()); > if (image != null) { >@@ -67,6 +70,8 @@ > return label.toString(); > } else if (object instanceof AbstractRepositoryConnector) { > return ((AbstractRepositoryConnector) object).getLabel(); >+ } else if (object instanceof Category) { >+ return ((Category) object).getLabel(); > } else { > return null; > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java,v >retrieving revision 1.44 >diff -u -r1.44 TaskRepositoriesView.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java 13 Oct 2009 01:11:06 -0000 1.44 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesView.java 24 May 2010 22:12:21 -0000 >@@ -22,10 +22,9 @@ > import org.eclipse.jface.viewers.DecoratingLabelProvider; > import org.eclipse.jface.viewers.DoubleClickEvent; > import org.eclipse.jface.viewers.IDoubleClickListener; >-import org.eclipse.jface.viewers.IStructuredContentProvider; >-import org.eclipse.jface.viewers.TableViewer; >-import org.eclipse.jface.viewers.Viewer; >+import org.eclipse.jface.viewers.TreeViewer; > import org.eclipse.mylyn.commons.core.StatusHandler; >+import org.eclipse.mylyn.internal.tasks.core.Category; > import org.eclipse.mylyn.internal.tasks.core.IRepositoryModelListener; > import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryAdapter; > import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; >@@ -50,6 +49,7 @@ > import org.eclipse.ui.handlers.IHandlerService; > import org.eclipse.ui.part.ViewPart; > import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds; >+import org.eclipse.ui.themes.IThemeManager; > > /** > * @author Mik Kersten >@@ -62,7 +62,7 @@ > @Deprecated > public static final String ID = ITasksUiConstants.ID_VIEW_REPOSITORIES; > >- private TableViewer viewer; >+ private TreeViewer viewer; > > private final Action addRepositoryAction = new AddRepositoryAction(); > >@@ -121,18 +121,6 @@ > } > }; > >- static class ViewContentProvider implements IStructuredContentProvider { >- public void inputChanged(Viewer v, Object oldInput, Object newInput) { >- } >- >- public void dispose() { >- } >- >- public Object[] getElements(Object parent) { >- return TasksUi.getRepositoryManager().getAllRepositories().toArray(); >- } >- } >- > public TaskRepositoriesView() { > TasksUi.getRepositoryManager().addListener(REPOSITORY_LISTENER); > TasksUiPlugin.getDefault().addModelListener(MODEL_LISTENER); >@@ -172,27 +160,14 @@ > > @Override > public void createPartControl(Composite parent) { >- viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); >- viewer.setContentProvider(new ViewContentProvider()); >+ viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); >+ viewer.setContentProvider(new TeamRepositoriesContentProvider()); > viewer.setUseHashlookup(true); > viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(), > PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator())); > >- viewer.setSorter(new TaskRepositoriesSorter()); >+ viewer.setSorter(new TaskRepositoriesViewSorter()); > >-// new ViewerSorter() { >-// >-// @Override >-// public int compare(Viewer viewer, Object e1, Object e2) { >-// if (e1 instanceof TaskRepository && e2 instanceof TaskRepository) { >-// TaskRepository t1 = (TaskRepository) e1; >-// TaskRepository t2 = (TaskRepository) e2; >-// return (t1.getKind() + t1.getUrl()).compareTo(t2.getKind() + t2.getUrl()); >-// } else { >-// return super.compare(viewer, e1, e2); >-// } >-// } >-// }); > viewer.setInput(getViewSite()); > viewer.addDoubleClickListener(new IDoubleClickListener() { > public void doubleClick(DoubleClickEvent event) { >@@ -208,13 +183,19 @@ > } > }); > >- // FIXME remove listener when view is disposed >- TasksUi.getRepositoryManager().addListener(new TaskRepositoryListener()); >+ final IThemeManager themeManager = getSite().getWorkbenchWindow().getWorkbench().getThemeManager(); >+ new GradientDrawer(themeManager, getViewer()) { >+ @Override >+ protected boolean shouldApplyGradient(org.eclipse.swt.widgets.Event event) { >+ return event.item.getData() instanceof Category; >+ } >+ }; > > makeActions(); > hookContextMenu(); > hookGlobalActions(); > contributeToActionBars(); >+ getViewer().expandAll(); > getSite().setSelectionProvider(getViewer()); > } > >@@ -288,28 +269,12 @@ > public void refresh() { > if (viewer != null && !viewer.getControl().isDisposed()) { > viewer.refresh(); >+ viewer.expandAll(); > } > } > >- public TableViewer getViewer() { >+ public TreeViewer getViewer() { > return viewer; > } > >- public class TaskRepositoryListener extends TaskRepositoryAdapter { >- >- @Override >- public void repositorySettingsChanged(TaskRepository repository) { >- if (PlatformUI.isWorkbenchRunning() && !PlatformUI.getWorkbench().getDisplay().isDisposed()) { >- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { >- public void run() { >- if (!getViewer().getControl().isDisposed()) { >- getViewer().refresh(true); >- } >- } >- }); >- } >- } >- >- } >- > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/GradientDrawer.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/GradientDrawer.java,v >retrieving revision 1.1 >diff -u -r1.1 GradientDrawer.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/GradientDrawer.java 1 Mar 2010 21:44:18 -0000 1.1 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/GradientDrawer.java 24 May 2010 22:12:21 -0000 >@@ -40,7 +40,7 @@ > > private final Listener CATEGORY_GRADIENT_DRAWER = new Listener() { > public void handleEvent(Event event) { >- if (event.item.getData() instanceof ITaskContainer && !(event.item.getData() instanceof ITask)) { >+ if (shouldApplyGradient(event)) { > Scrollable scrollable = (Scrollable) event.widget; > GC gc = event.gc; > >@@ -99,6 +99,10 @@ > } > }; > >+ protected boolean shouldApplyGradient(Event event) { >+ return event.item.getData() instanceof ITaskContainer && !(event.item.getData() instanceof ITask); >+ } >+ > private final IPropertyChangeListener THEME_CHANGE_LISTENER = new IPropertyChangeListener() { > public void propertyChange(PropertyChangeEvent event) { > if (event.getProperty().equals(IThemeManager.CHANGE_CURRENT_THEME) >Index: plugin.properties >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/plugin.properties,v >retrieving revision 1.10 >diff -u -r1.10 plugin.properties >--- plugin.properties 21 Feb 2010 14:56:49 -0000 1.10 >+++ plugin.properties 24 May 2010 22:12:21 -0000 >@@ -25,7 +25,7 @@ > > views.category.name = Tasks > TaskListView.name = Task List >-TaskRepositoriesView.name = Task Repositories >+TaskRepositoriesView.name = Team Repositories > > newWizards.category.name = Tasks > NewLocalCategoryWizard.name = Category >@@ -49,8 +49,8 @@ > SynchronizeAllAction.label = Synchronize Changed > SynchronizeAllAction.tooltip = Synchronize Changed > RestoreTaskListAction.label = Restore Tasks from History... >-ShowTaskRepositoriesViewAction.label = Show Task Repositories View >-ShowTaskRepositoriesViewAction.tooltip = Show Task Repositories View >+ShowTaskRepositoriesViewAction.label = Show Team Repositories View >+ShowTaskRepositoriesViewAction.tooltip = Show Team Repositories View > OpenTaskSearchAction.label = Search Repository... > NewTaskAction.label = New Task > NewTaskAction.tooltip = New Task >@@ -144,10 +144,10 @@ > command.deactivateAllTasks.name = Deactivate Task > > TaskSearchPage.label = Task Search >-ProjectTaskRepositoryPage.name = Task Repository >+ProjectTaskRepositoryPage.name = Team Repository > >-commands.category.repositories.name = Task Repositories >-command.addTaskRepository.name = Add Task Repository... >+commands.category.repositories.name = Team Repositories >+command.addTaskRepository.name = Add Team Repository... > command.addTaskRepository.commandParameter.name = Repository Type > > TaskHyperlinkDetector.name = Tasks >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/plugin.xml,v >retrieving revision 1.377 >diff -u -r1.377 plugin.xml >--- plugin.xml 3 Apr 2010 01:33:20 -0000 1.377 >+++ plugin.xml 24 May 2010 22:12:21 -0000 >@@ -1115,6 +1115,9 @@ > class="org.eclipse.mylyn.internal.tasks.ui.LocalRepositoryConnectorUi" > name="%LocalRepositoryConnectorUi.name" > overlayIcon="icons/ovr16/overlay-local.gif"/> >+ <repositoryMigrator >+ class="org.eclipse.mylyn.internal.tasks.ui.LocalRepositoryMigrator"> >+ </repositoryMigrator> > </extension> > > <extension point="org.eclipse.ui.workbench.texteditor.hyperlinkDetectorTargets"> >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.40 >diff -u -r1.40 SelectRepositoryPage.java >--- src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java 24 Jul 2009 12:05:45 -0000 1.40 >+++ src/org/eclipse/mylyn/internal/tasks/ui/wizards/SelectRepositoryPage.java 24 May 2010 22:12:21 -0000 >@@ -26,26 +26,29 @@ > import org.eclipse.jface.viewers.DecoratingLabelProvider; > import org.eclipse.jface.viewers.IOpenListener; > import org.eclipse.jface.viewers.ISelectionChangedListener; >-import org.eclipse.jface.viewers.IStructuredContentProvider; > import org.eclipse.jface.viewers.IStructuredSelection; > import org.eclipse.jface.viewers.OpenEvent; > import org.eclipse.jface.viewers.SelectionChangedEvent; > import org.eclipse.jface.viewers.StructuredSelection; >-import org.eclipse.jface.viewers.TableViewer; >-import org.eclipse.jface.viewers.Viewer; >+import org.eclipse.jface.viewers.TreePath; >+import org.eclipse.jface.viewers.TreeSelection; >+import org.eclipse.jface.viewers.TreeViewer; > import org.eclipse.jface.wizard.IWizard; > import org.eclipse.jface.wizard.IWizardNode; > import org.eclipse.jface.wizard.WizardDialog; > import org.eclipse.jface.wizard.WizardSelectionPage; > import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages; >+import org.eclipse.mylyn.internal.tasks.core.Category; > import org.eclipse.mylyn.internal.tasks.core.ITaskRepositoryFilter; > import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; > import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager; > import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; > import org.eclipse.mylyn.internal.tasks.ui.actions.AddRepositoryAction; > import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; >-import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesSorter; >+import org.eclipse.mylyn.internal.tasks.ui.views.GradientDrawer; >+import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoriesViewSorter; > import org.eclipse.mylyn.internal.tasks.ui.views.TaskRepositoryLabelProvider; >+import org.eclipse.mylyn.internal.tasks.ui.views.TeamRepositoriesContentProvider; > import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; > import org.eclipse.mylyn.tasks.core.TaskRepository; > import org.eclipse.mylyn.tasks.ui.TasksUi; >@@ -60,9 +63,10 @@ > import org.eclipse.swt.layout.GridLayout; > import org.eclipse.swt.widgets.Button; > import org.eclipse.swt.widgets.Composite; >-import org.eclipse.swt.widgets.Table; >+import org.eclipse.swt.widgets.Tree; > import org.eclipse.ui.PlatformUI; > import org.eclipse.ui.handlers.IHandlerService; >+import org.eclipse.ui.themes.IThemeManager; > > /** > * @author Mik Kersten >@@ -72,7 +76,7 @@ > */ > public abstract class SelectRepositoryPage extends WizardSelectionPage { > >- private TableViewer viewer; >+ private TreeViewer viewer; > > protected MultiRepositoryAwareWizard wizard; > >@@ -80,19 +84,6 @@ > > private final ITaskRepositoryFilter taskRepositoryFilter; > >- class RepositoryContentProvider implements IStructuredContentProvider { >- >- public void inputChanged(Viewer v, Object oldInput, Object newInput) { >- } >- >- public void dispose() { >- } >- >- public Object[] getElements(Object parent) { >- return repositories.toArray(); >- } >- } >- > public SelectRepositoryPage(ITaskRepositoryFilter taskRepositoryFilter) { > super(Messages.SelectRepositoryPage_Select_a_repository); > >@@ -123,11 +114,11 @@ > GridLayout layout = new GridLayout(1, true); > container.setLayout(layout); > >- Table table = createTableViewer(container); >- viewer.setSorter(new TaskRepositoriesSorter()); >+ Tree tree = createTableViewer(container); >+ viewer.setSorter(new TaskRepositoriesViewSorter()); > > GridData gridData = new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL); >- table.setLayoutData(gridData); >+ tree.setLayoutData(gridData); > > Composite buttonContainer = new Composite(container, SWT.NULL); > GridLayout buttonLayout = new GridLayout(2, false); >@@ -182,9 +173,9 @@ > setControl(container); > } > >- protected Table createTableViewer(Composite container) { >- viewer = new TableViewer(container, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); >- viewer.setContentProvider(new RepositoryContentProvider()); >+ protected Tree createTableViewer(Composite container) { >+ viewer = new TreeViewer(container, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL); >+ viewer.setContentProvider(new TeamRepositoriesContentProvider()); > // viewer.setLabelProvider(new TaskRepositoryLabelProvider()); > viewer.setLabelProvider(new DecoratingLabelProvider(new TaskRepositoryLabelProvider(), > PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator())); >@@ -204,13 +195,24 @@ > > TaskRepository selectedRepository = TasksUiUtil.getSelectedRepository(null); > if (selectedRepository != null) { >- viewer.setSelection(new StructuredSelection(selectedRepository)); >+ Category category = ((TaskRepositoryManager) TasksUi.getRepositoryManager()).getCategory(selectedRepository); >+ Object[] path = { category, selectedRepository }; >+ viewer.setSelection(new TreeSelection(new TreePath(path))); > } else { > TaskRepository localRepository = TasksUi.getRepositoryManager().getRepository( > LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL); > viewer.setSelection(new StructuredSelection(localRepository)); > } > >+ final IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager(); >+ >+ new GradientDrawer(themeManager, getViewer()) { >+ @Override >+ protected boolean shouldApplyGradient(org.eclipse.swt.widgets.Event event) { >+ return event.item.getData() instanceof Category; >+ } >+ }; >+ > viewer.addOpenListener(new IOpenListener() { > > public void open(OpenEvent event) { >@@ -224,9 +226,10 @@ > } > }); > >- viewer.getTable().showSelection(); >- viewer.getTable().setFocus(); >- return viewer.getTable(); >+ viewer.expandAll(); >+ viewer.getTree().showSelection(); >+ viewer.getTree().setFocus(); >+ return viewer.getTree(); > } > > protected abstract IWizard createWizard(TaskRepository taskRepository); >@@ -308,7 +311,7 @@ > /** > * Public for testing. > */ >- public TableViewer getViewer() { >+ public TreeViewer getViewer() { > return viewer; > } > >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TeamRepositoriesContentProvider.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/ui/views/TeamRepositoriesContentProvider.java >diff -N src/org/eclipse/mylyn/internal/tasks/ui/views/TeamRepositoriesContentProvider.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TeamRepositoriesContentProvider.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,79 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Tasktop Technologies 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: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.ui.views; >+ >+import java.util.HashSet; >+import java.util.Set; >+ >+import org.eclipse.jface.viewers.ITreeContentProvider; >+import org.eclipse.jface.viewers.Viewer; >+import org.eclipse.mylyn.internal.tasks.core.Category; >+import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants; >+import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager; >+import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.mylyn.tasks.ui.TasksUi; >+ >+/** >+ * @author Robert Elves >+ */ >+public class TeamRepositoriesContentProvider implements ITreeContentProvider { >+ >+ private final TaskRepositoryManager manager; >+ >+ public TeamRepositoriesContentProvider() { >+ manager = ((TaskRepositoryManager) TasksUi.getRepositoryManager()); >+ } >+ >+ public void inputChanged(Viewer v, Object oldInput, Object newInput) { >+ } >+ >+ public void dispose() { >+ } >+ >+ public Object[] getElements(Object parent) { >+ >+ Set<Object> objects = new HashSet<Object>(); >+ //objects.addAll(TasksUi.getRepositoryManager().getAllRepositories()); >+ >+ objects.add(manager.getCategory(IRepositoryConstants.CATEGORY_TASKS)); >+ objects.add(manager.getCategory(IRepositoryConstants.CATEGORY_BUGS)); >+ objects.add(manager.getCategory(IRepositoryConstants.CATEGORY_OTHER)); >+ >+ return objects.toArray(); >+ } >+ >+ public Object[] getChildren(Object parentElement) { >+ if (parentElement instanceof Category) { >+ Set<Object> objects = new HashSet<Object>(); >+ for (TaskRepository repository : TasksUi.getRepositoryManager().getAllRepositories()) { >+ Category cat = manager.getCategory(repository); >+ if (cat.equals(parentElement)) { >+ objects.add(repository); >+ } >+// String categoryId = repository.getProperty(IRepositoryConstants.PROPERTY_CATEGORY); >+// if (categoryId != null && ((Category) parentElement).getId().equals(categoryId)) { >+// objects.add(repository); >+// } >+ } >+ return objects.toArray(); >+ } >+ return new Object[0]; >+ } >+ >+ public Object getParent(Object element) { >+ return null; >+ } >+ >+ public boolean hasChildren(Object element) { >+ return element instanceof Category; >+ } >+} >\ No newline at end of file >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesViewSorter.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesViewSorter.java >diff -N src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesViewSorter.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskRepositoriesViewSorter.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,67 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Tasktop Technologies 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: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.ui.views; >+ >+import org.eclipse.jface.viewers.Viewer; >+import org.eclipse.mylyn.internal.tasks.core.Category; >+import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants; >+import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager; >+import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.mylyn.tasks.ui.TasksUi; >+ >+/** >+ * @author Robert Elves >+ */ >+public class TaskRepositoriesViewSorter extends TaskRepositoriesSorter { >+ @Override >+ public int compare(Viewer viewer, Object e1, Object e2) { >+ >+ if (e1 instanceof Category && e2 instanceof Category) { >+ return ((Category) e1).compareTo(e2); >+ } >+ if (e1 instanceof Category && e2 instanceof TaskRepository) { >+ >+ Category cat1 = ((Category) e1); >+ >+ String categoryId = ((TaskRepository) e2).getProperty(IRepositoryConstants.PROPERTY_CATEGORY); >+ Category cat2 = ((TaskRepositoryManager) TasksUi.getRepositoryManager()).getCategory(categoryId); >+ >+ return cat1.compareTo(cat2); >+ >+ } else if (e1 instanceof TaskRepository && e2 instanceof Category) { >+ Category cat1 = ((Category) e2); >+ >+ String categoryId = ((TaskRepository) e1).getProperty(IRepositoryConstants.PROPERTY_CATEGORY); >+ Category cat2 = ((TaskRepositoryManager) TasksUi.getRepositoryManager()).getCategory(categoryId); >+ int result = cat2.compareTo(cat1); >+ if (result == 0) { >+ result = 1; >+ } >+ return result; >+ >+ } else if (e1 instanceof TaskRepository && e2 instanceof TaskRepository) { >+ String categoryId = ((TaskRepository) e1).getProperty(IRepositoryConstants.PROPERTY_CATEGORY); >+ Category cat1 = ((TaskRepositoryManager) TasksUi.getRepositoryManager()).getCategory(categoryId); >+ >+ String categoryId2 = ((TaskRepository) e2).getProperty(IRepositoryConstants.PROPERTY_CATEGORY); >+ Category cat2 = ((TaskRepositoryManager) TasksUi.getRepositoryManager()).getCategory(categoryId2); >+ >+ int result = cat1.compareTo(cat2); >+ if (result == 0) { >+ return super.compare(viewer, e1, e2); >+ } else { >+ return result; >+ } >+ } >+ return super.compare(viewer, e1, e2); >+ } >+} >Index: src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryMigrator.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryMigrator.java >diff -N src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryMigrator.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/ui/LocalRepositoryMigrator.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,39 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Tasktop Technologies 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: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.ui; >+ >+import org.eclipse.mylyn.internal.tasks.core.IRepositoryConstants; >+import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; >+import org.eclipse.mylyn.tasks.core.AbstractRepositoryMigrator; >+import org.eclipse.mylyn.tasks.core.TaskRepository; >+ >+/** >+ * @author Robert Elves >+ * @since 3.4 >+ */ >+public class LocalRepositoryMigrator extends AbstractRepositoryMigrator { >+ >+ @Override >+ public String getConnectorKind() { >+ return LocalRepositoryConnector.CONNECTOR_KIND; >+ } >+ >+ @Override >+ public boolean migrateRepository(TaskRepository repository) { >+ if (repository.getProperty(IRepositoryConstants.PROPERTY_CATEGORY) == null) { >+ repository.setProperty(IRepositoryConstants.PROPERTY_CATEGORY, IRepositoryConstants.CATEGORY_TASKS); >+ return true; >+ } >+ return false; >+ } >+ >+}
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 Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 302907
:
162480
|
162481
|
162482
|
162541
|
162542
|
164447
|
164448
|
167360
|
167361
|
168302
|
168303
|
168304
|
168305
|
169716
|
169717
|
169742
|
169748
|
169873