diff options
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java')
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java deleted file mode 100644 index 7e35e8435..000000000 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/SynchronizeSelectedAction.java +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************************* - * 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.tasks.ui.actions; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.mylyn.internal.tasks.core.AbstractTask; -import org.eclipse.mylyn.internal.tasks.core.LocalTask; -import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; -import org.eclipse.mylyn.internal.tasks.core.TaskCategory; -import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; -import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; -import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; -import org.eclipse.mylyn.tasks.core.IRepositoryQuery; -import org.eclipse.mylyn.tasks.core.ITask; -import org.eclipse.mylyn.tasks.core.TaskRepository; -import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState; -import org.eclipse.mylyn.tasks.ui.TasksUi; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.IViewActionDelegate; -import org.eclipse.ui.IViewPart; -import org.eclipse.ui.actions.ActionDelegate; -import org.eclipse.ui.actions.ActionFactory; - -/** - * @author Mik Kersten - * @author Rob Elves - */ -public class SynchronizeSelectedAction extends ActionDelegate implements IViewActionDelegate { - - private final Map<AbstractRepositoryConnector, List<RepositoryQuery>> queriesToSyncMap = new LinkedHashMap<AbstractRepositoryConnector, List<RepositoryQuery>>(); - - private final Map<AbstractRepositoryConnector, List<ITask>> tasksToSyncMap = new LinkedHashMap<AbstractRepositoryConnector, List<ITask>>(); - - @Override - public void run(IAction action) { - - if (TaskListView.getFromActivePerspective() != null) { - - ISelection selection = TaskListView.getFromActivePerspective().getViewer().getSelection(); - for (Object obj : ((IStructuredSelection) selection).toList()) { - if (obj instanceof IRepositoryQuery) { - final RepositoryQuery repositoryQuery = (RepositoryQuery) obj; - AbstractRepositoryConnector client = TasksUi.getRepositoryManager().getRepositoryConnector( - repositoryQuery.getConnectorKind()); - if (client != null) { - List<RepositoryQuery> queriesToSync = queriesToSyncMap.get(client); - if (queriesToSync == null) { - queriesToSync = new ArrayList<RepositoryQuery>(); - queriesToSyncMap.put(client, queriesToSync); - } - queriesToSync.add(repositoryQuery); - } - } else if (obj instanceof TaskCategory) { - TaskCategory cat = (TaskCategory) obj; - for (ITask task : cat.getChildren()) { - AbstractRepositoryConnector client = TasksUi.getRepositoryManager().getRepositoryConnector( - task.getConnectorKind()); - addTaskToSync(client, task); - } - } else if (obj instanceof ITask) { - AbstractTask repositoryTask = (AbstractTask) obj; - AbstractRepositoryConnector client = TasksUi.getRepositoryManager().getRepositoryConnector( - repositoryTask.getConnectorKind()); - addTaskToSync(client, repositoryTask); - } - } - - if (!queriesToSyncMap.isEmpty()) { - // determine which repositories to synch changed tasks for - HashMap<TaskRepository, Set<RepositoryQuery>> repositoriesToSync = new HashMap<TaskRepository, Set<RepositoryQuery>>(); - for (AbstractRepositoryConnector connector : queriesToSyncMap.keySet()) { - List<RepositoryQuery> queriesToSync = queriesToSyncMap.get(connector); - if (queriesToSync == null || queriesToSync.isEmpty()) { - continue; - } - - for (RepositoryQuery query : queriesToSync) { - TaskRepository repos = TasksUi.getRepositoryManager().getRepository(query.getConnectorKind(), - query.getRepositoryUrl()); - Set<RepositoryQuery> queries = repositoriesToSync.get(repos); - if (queries == null) { - queries = new HashSet<RepositoryQuery>(); - repositoriesToSync.put(repos, queries); - } - queries.add(query); - } - } - - for (Map.Entry<TaskRepository, Set<RepositoryQuery>> entry : repositoriesToSync.entrySet()) { - TaskRepository repository = entry.getKey(); - AbstractRepositoryConnector connector = TasksUi.getRepositoryManager().getRepositoryConnector( - repository.getConnectorKind()); - Set<RepositoryQuery> queries = entry.getValue(); - TasksUiInternal.synchronizeQueries(connector, repository, queries, null, true); - } - } - if (!tasksToSyncMap.isEmpty()) { - for (AbstractRepositoryConnector connector : tasksToSyncMap.keySet()) { - List<ITask> tasksToSync = tasksToSyncMap.get(connector); - if (tasksToSync != null && tasksToSync.size() > 0) { - TasksUiInternal.synchronizeTasks(connector, new HashSet<ITask>(tasksToSync), true, null); - } - } - } - - } - - queriesToSyncMap.clear(); - tasksToSyncMap.clear(); - } - - private void addTaskToSync(AbstractRepositoryConnector connector, ITask task) { - if (connector == null // - || task instanceof LocalTask // - || task.getSynchronizationState() == SynchronizationState.OUTGOING_NEW) { - return; - } - - List<ITask> tasksToSync = tasksToSyncMap.get(connector); - if (tasksToSync == null) { - tasksToSync = new ArrayList<ITask>(); - tasksToSyncMap.put(connector, tasksToSync); - } - tasksToSync.add(task); - } - - private IAction action; - - @Override - public void init(IAction action) { - this.action = action; - } - - public void init(IViewPart view) { - IActionBars actionBars = view.getViewSite().getActionBars(); - actionBars.setGlobalActionHandler(ActionFactory.REFRESH.getId(), action); - actionBars.updateActionBars(); - } - -} |