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 124300 Details for
Bug 246149
delete task repository should delete the tasks and queries automatically
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
fixed according to comments
patch.txt (text/plain), 10.13 KB, created by
David Shepherd
on 2009-01-30 12:24:43 EST
(
hide
)
Description:
fixed according to comments
Filename:
MIME Type:
Creator:
David Shepherd
Created:
2009-01-30 12:24:43 EST
Size:
10.13 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#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.6 >diff -u -r1.6 Messages.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java 29 Jan 2009 20:52:17 -0000 1.6 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/Messages.java 30 Jan 2009 17:24:09 -0000 >@@ -103,6 +103,8 @@ > > public static String DeleteTaskRepositoryAction_Repository_In_Use_MESSAGE; > >+ public static String DeleteTaskRepositoryAction_Delete_Repository_In_Progress; >+ > public static String EditRepositoryPropertiesAction_Properties; > > public static String ExpandAllAction_Expand_All; >Index: src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskRepositoryAction.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskRepositoryAction.java,v >retrieving revision 1.27 >diff -u -r1.27 DeleteTaskRepositoryAction.java >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskRepositoryAction.java 13 Jan 2009 07:07:35 -0000 1.27 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/DeleteTaskRepositoryAction.java 30 Jan 2009 17:24:08 -0000 >@@ -12,13 +12,15 @@ > package org.eclipse.mylyn.internal.tasks.ui.actions; > > import java.util.ArrayList; >-import java.util.Collection; > import java.util.List; > import java.util.Set; > >+import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.Status; > import org.eclipse.jface.dialogs.MessageDialog; >+import org.eclipse.jface.dialogs.ProgressMonitorDialog; >+import org.eclipse.jface.operation.IRunnableWithProgress; > import org.eclipse.jface.viewers.IStructuredSelection; > import org.eclipse.mylyn.commons.core.StatusHandler; > import org.eclipse.mylyn.internal.tasks.core.AbstractTask; >@@ -29,6 +31,7 @@ > import org.eclipse.mylyn.tasks.core.IRepositoryQuery; > import org.eclipse.mylyn.tasks.core.ITask; > import org.eclipse.mylyn.tasks.core.TaskRepository; >+import org.eclipse.osgi.util.NLS; > import org.eclipse.ui.ISharedImages; > import org.eclipse.ui.IViewPart; > import org.eclipse.ui.PlatformUI; >@@ -57,70 +60,96 @@ > @Override > public void run() { > try { >+ //verify that only one repository is selected >+ IStructuredSelection selection = getStructuredSelection(); >+ Object[] selectedRepos = selection.toArray(); >+ if (selectedRepos == null || selectedRepos.length != 1) { >+ return; >+ } >+ //setup variables that store all artifacts to delete >+ final List<IRepositoryQuery> queriesToDelete = new ArrayList<IRepositoryQuery>(); >+ final List<AbstractTask> tasksToDelete = new ArrayList<AbstractTask>(); >+ if (!(selectedRepos[0] instanceof TaskRepository)) { >+ return; >+ } >+ final TaskRepository repoToDelete = ((TaskRepository) selectedRepos[0]); > >- boolean deleteConfirmed = MessageDialog.openQuestion(PlatformUI.getWorkbench() >- .getActiveWorkbenchWindow() >- .getShell(), Messages.DeleteTaskRepositoryAction_Confirm_Delete, Messages.DeleteTaskRepositoryAction_Delete_the_selected_task_repositories); >- if (deleteConfirmed) { >- IStructuredSelection selection = getStructuredSelection(); >+ // check for queries over this repository >+ Set<RepositoryQuery> queries = TasksUiInternal.getTaskList().getQueries(); >+ if (queries != null && queries.size() > 0) { >+ for (IRepositoryQuery query : queries) { >+ if (query.getRepositoryUrl().equals(repoToDelete.getRepositoryUrl())) { >+ queriesToDelete.add(query); >+ } >+ } >+ } > >- // check for queries over this repository >- Set<RepositoryQuery> queries = TasksUiInternal.getTaskList().getQueries(); >- List<TaskRepository> repositoriesInUse = new ArrayList<TaskRepository>(); >- List<TaskRepository> repositoriesToDelete = new ArrayList<TaskRepository>(); >- for (Object selectedObject : selection.toList()) { >- if (selectedObject instanceof TaskRepository) { >- TaskRepository taskRepository = (TaskRepository) selectedObject; >- if (queries != null && queries.size() > 0) { >- for (IRepositoryQuery query : queries) { >- if (query.getRepositoryUrl().equals(taskRepository.getRepositoryUrl())) { >- repositoriesInUse.add(taskRepository); >- break; >- } >- } >- } >- if (!repositoriesInUse.contains(taskRepository)) { >- repositoriesToDelete.add(taskRepository); >- } >+ // check for tasks from this repository >+ // bug 243975 >+ final Set<ITask> tasks = TasksUiPlugin.getTaskList().getTasks(repoToDelete.getRepositoryUrl()); >+ if (tasks != null && tasks.size() > 0) { >+ for (ITask task : tasks) { >+ if (task.getRepositoryUrl() != null >+ && task.getRepositoryUrl().equals(repoToDelete.getRepositoryUrl())) { >+ tasksToDelete.add((AbstractTask) task); > } > } >+ } >+ >+ //confirm that the user wants to delete all tasks and queries that are associated >+ Integer[] quantities = { tasksToDelete.size(), queriesToDelete.size() }; >+ boolean deleteConfirmed = MessageDialog.openQuestion(TasksUiInternal.getShell(), >+ Messages.DeleteTaskRepositoryAction_Confirm_Delete, NLS.bind( >+ Messages.DeleteTaskRepositoryAction_Delete_the_selected_task_repositories, quantities)); > >- // check for tasks from this repository >- // bug 243975 >- Collection<AbstractTask> tasks = TasksUiPlugin.getTaskList().getAllTasks(); >- for (Object selectedObject : selection.toList()) { >- if (selectedObject instanceof TaskRepository) { >- TaskRepository taskRepository = (TaskRepository) selectedObject; >- if (tasks != null && tasks.size() > 0) { >- for (ITask task : tasks) { >- if (task.getRepositoryUrl() != null >- && task.getRepositoryUrl().equals(taskRepository.getRepositoryUrl())) { >- repositoriesInUse.add(taskRepository); >- break; >+ //delete everything >+ if (deleteConfirmed) { >+ ProgressMonitorDialog monitor = new ProgressMonitorDialog(PlatformUI.getWorkbench() >+ .getActiveWorkbenchWindow() >+ .getShell()); >+ IRunnableWithProgress op = new IRunnableWithProgress() { >+ public void run(IProgressMonitor monitor) { >+ try { >+ monitor.beginTask( >+ Messages.DeleteTaskRepositoryAction_Delete_the_selected_task_repositories, >+ tasks.size()); >+ //delete the tasks >+ for (AbstractTask abstractTask : tasksToDelete) { >+ TasksUiPlugin.getTaskList().deleteTask(abstractTask); >+ if (monitor.isCanceled()) { >+ return; > } >+ monitor.worked(1); > } >- } >- if (repositoriesInUse.contains(taskRepository)) { >- repositoriesToDelete.remove(taskRepository); >+ //delete the queries >+ for (IRepositoryQuery query : queriesToDelete) { >+ TasksUiPlugin.getTaskList().deleteQuery((RepositoryQuery) query); >+ } >+ //delete the repo >+ TasksUiPlugin.getRepositoryManager().removeRepository(repoToDelete, >+ TasksUiPlugin.getDefault().getRepositoriesFilePath()); >+ // if repository is contributed via template, ensure it isn't added again >+ TaskRepositoryUtil.disableAddAutomatically(repoToDelete.getRepositoryUrl()); >+ } finally { >+ monitor.done(); > } > } >- } >- >- for (TaskRepository taskRepository : repositoriesToDelete) { >- TasksUiPlugin.getRepositoryManager().removeRepository(taskRepository, >- TasksUiPlugin.getDefault().getRepositoriesFilePath()); >- // if repository is contributed via template, ensure it isn't added again >- TaskRepositoryUtil.disableAddAutomatically(taskRepository.getRepositoryUrl()); >- } >- >- if (repositoriesInUse.size() > 0) { >- MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), >- Messages.DeleteTaskRepositoryAction_Repository_In_Use, >- Messages.DeleteTaskRepositoryAction_Repository_In_Use_MESSAGE); >- } >+ }; >+ PlatformUI.getWorkbench().getProgressService().busyCursorWhile(op); > } > } catch (Exception e) { > StatusHandler.fail(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, e.getMessage(), e)); > } > } >+ >+ @Override >+ protected boolean updateSelection(IStructuredSelection selection) { >+ if (selection != null && !selection.isEmpty()) { >+ Object[] array = selection.toArray(); >+ if (!(array.length == 1)) { >+ return getTaskRepository(selection.getFirstElement()) != null; >+ } >+ } >+ return false; >+ } > } >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.6 >diff -u -r1.6 messages.properties >--- src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties 29 Jan 2009 20:52:17 -0000 1.6 >+++ src/org/eclipse/mylyn/internal/tasks/ui/actions/messages.properties 30 Jan 2009 17:24:09 -0000 >@@ -44,10 +44,12 @@ > > DeleteTaskRepositoryAction_Confirm_Delete=Confirm Delete > DeleteTaskRepositoryAction_Delete_Repository=Delete Repository >-DeleteTaskRepositoryAction_Delete_the_selected_task_repositories=Delete the selected task repositories? >+DeleteTaskRepositoryAction_Delete_Repository_In_Progress=Deleting Repository and related artifacts.. >+DeleteTaskRepositoryAction_Delete_the_selected_task_repositories=This repository is being used by {0} task(s) and {1} queries. Would you like to delete the repository, tasks, and queries? > DeleteTaskRepositoryAction_Repository_In_Use=Repository In Use > DeleteTaskRepositoryAction_Repository_In_Use_MESSAGE=One or more of the selected repositories is being used by a query or a task and can not be deleted. > >+ > EditRepositoryPropertiesAction_Properties=Properties > > ExpandAllAction_Expand_All=Expand All
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 246149
:
124222
|
124223
|
124225
|
124226
|
124227
|
124230
|
124231
|
124300
|
124301
|
124305
|
124306
|
124367
|
124499
|
124500