Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkersten2008-05-22 02:59:15 +0000
committermkersten2008-05-22 02:59:15 +0000
commitbf965350c0c1021d9a56bac98b8c8a397c008afb (patch)
tree1b3f3dcff8d6fd00ed6962da00910fd793abfda6 /org.eclipse.mylyn.tasks.ui/src
parent90eca5c971d3f14975e55e1ca9e052d942a4596f (diff)
downloadorg.eclipse.mylyn.tasks-bf965350c0c1021d9a56bac98b8c8a397c008afb.tar.gz
org.eclipse.mylyn.tasks-bf965350c0c1021d9a56bac98b8c8a397c008afb.tar.xz
org.eclipse.mylyn.tasks-bf965350c0c1021d9a56bac98b8c8a397c008afb.zip
NEW - bug 230320: [api] extract context externalization from InteractionContextManager
https://bugs.eclipse.org/bugs/show_bug.cgi?id=230320
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java4
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AttachmentUtil.java17
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java3
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java3
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java3
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java40
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/WorkspaceAwareContextStore.java47
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskImportAction.java63
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java39
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java5
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListElementImporter.java7
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java29
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java135
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java6
14 files changed, 152 insertions, 249 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java
index 75e38bd38..701288c4a 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java
@@ -32,7 +32,7 @@ public class ActivityExternalizationParticipant extends AbstractExternalizationP
Assert.isNotNull(context);
switch (context.getKind()) {
case SAVE:
- ContextCore.getContextManager().saveActivityContext();
+ ContextCore.getContextManager().saveActivityMetaContext();
setDirty(false);
break;
case LOAD:
@@ -80,7 +80,7 @@ public class ActivityExternalizationParticipant extends AbstractExternalizationP
@Override
public void save(String rootPath, IProgressMonitor monitor) throws CoreException {
- ContextCore.getContextManager().saveActivityContext();
+ ContextCore.getContextManager().saveActivityMetaContext();
setDirty(false);
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AttachmentUtil.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AttachmentUtil.java
index 2ef5eb5d0..18e9bd72f 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AttachmentUtil.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/AttachmentUtil.java
@@ -31,6 +31,7 @@ import org.eclipse.jface.operation.IRunnableContext;
import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.mylyn.commons.core.StatusHandler;
import org.eclipse.mylyn.context.core.ContextCore;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.TaskAttachment;
import org.eclipse.mylyn.internal.tasks.core.TaskDataStorageManager;
@@ -73,11 +74,13 @@ public class AttachmentUtil {
*
* @return false, if operation is not supported by repository
*/
+ @SuppressWarnings("restriction")
@Deprecated
public static boolean attachContext(AbstractAttachmentHandler attachmentHandler, TaskRepository repository,
ITask task, String longComment, IProgressMonitor monitor) throws CoreException {
- ContextCore.getContextManager().saveContext(task.getHandleIdentifier());
- final File sourceContextFile = ContextCore.getContextManager().getFileForContext(task.getHandleIdentifier());
+ ContextCore.getContextStore().saveContext(task.getHandleIdentifier());
+ final File sourceContextFile = ContextCorePlugin.getContextStore()
+ .getFileForContext(task.getHandleIdentifier());
SynchronizationState previousState = task.getSynchronizationState();
@@ -105,8 +108,8 @@ public class AttachmentUtil {
public static boolean postContext(AbstractRepositoryConnector connector, TaskRepository repository, ITask task,
String comment, IProgressMonitor monitor) throws CoreException {
AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler();
- ContextCore.getContextManager().saveContext(task.getHandleIdentifier());
- File file = ContextCore.getContextManager().getFileForContext(task.getHandleIdentifier());
+ ContextCore.getContextStore().saveContext(task.getHandleIdentifier());
+ File file = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
if (file != null && file.exists()) {
FileTaskAttachmentSource attachment = new FileTaskAttachmentSource(file);
attachment.setDescription(CONTEXT_DESCRIPTION);
@@ -308,6 +311,7 @@ public class AttachmentUtil {
return ContextCore.getContextManager().hasContext(task.getHandleIdentifier());
}
+ @SuppressWarnings("restriction")
@Deprecated
public static boolean isContext(RepositoryAttachment attachment) {
return CONTEXT_DESCRIPTION.equals(attachment.getDescription())
@@ -324,12 +328,13 @@ public class AttachmentUtil {
*
* @return false, if operation is not supported by repository
*/
+ @SuppressWarnings("restriction")
@Deprecated
public static boolean retrieveContext(AbstractAttachmentHandler attachmentHandler, TaskRepository repository,
ITask task, RepositoryAttachment attachment, String destinationPath, IProgressMonitor monitor)
throws CoreException {
- File destinationContextFile = ContextCore.getContextManager().getFileForContext(task.getHandleIdentifier());
+ File destinationContextFile = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
// TODO: add functionality for not overwriting previous context
if (destinationContextFile.exists()) {
@@ -360,7 +365,7 @@ public class AttachmentUtil {
public static boolean getContext(AbstractRepositoryConnector connector, TaskRepository repository, ITask task,
TaskAttribute attribute, IProgressMonitor monitor) throws CoreException {
AbstractTaskAttachmentHandler attachmentHandler = connector.getTaskAttachmentHandler();
- File file = ContextCore.getContextManager().getFileForContext(task.getHandleIdentifier());
+ File file = ContextCorePlugin.getContextStore().getFileForContext(task.getHandleIdentifier());
try {
FileOutputStream out = new FileOutputStream(file);
try {
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java
index e2ec13c2e..c2756740c 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ITasksUiPreferenceConstants.java
@@ -53,4 +53,7 @@ public interface ITasksUiPreferenceConstants {
public static final String LOCAL_SUB_TASKS_ENABLED = "org.eclipse.mylyn.tasks.ui.subtasks.local";
+ // NOTE: legacy name, do not change
+ public static final String PREF_DATA_DIR = "org.eclipse.mylyn.data.dir";
+
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java
index 2cae783bf..921f53e68 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/RefactorRepositoryUrlOperation.java
@@ -67,6 +67,7 @@ public class RefactorRepositoryUrlOperation extends TaskListModifyOperation {
}
}
+ @SuppressWarnings("restriction")
public void refactorContextFileNames() {
File dataDir = new File(TasksUiPlugin.getDefault().getDataDirectory(), ITasksCoreConstants.CONTEXTS_DIRECTORY);
@@ -86,7 +87,7 @@ public class RefactorRepositoryUrlOperation extends TaskListModifyOperation {
if (oldUrl.equals(storedUrl)) {
String id = RepositoryTaskHandleUtil.getTaskId(storedHandle);
String newHandle = RepositoryTaskHandleUtil.getHandle(newUrl, id);
- File newFile = ContextCore.getContextManager().getFileForContext(newHandle);
+ File newFile = ContextCorePlugin.getContextStore().getFileForContext(newHandle);
file.renameTo(newFile);
}
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java
index 58cd289d1..8292340c1 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskListBackupManager.java
@@ -33,7 +33,6 @@ import org.eclipse.core.runtime.jobs.JobChangeAdapter;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.mylyn.internal.context.core.ContextPreferenceContstants;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
@@ -279,7 +278,7 @@ public class TaskListBackupManager implements IPropertyChangeListener {
}
public void propertyChange(PropertyChangeEvent event) {
- if (event.getProperty().equals(ContextPreferenceContstants.PREF_DATA_DIR)) {
+ if (event.getProperty().equals(ITasksUiPreferenceConstants.PREF_DATA_DIR)) {
if (export != null) {
export.cancel();
export = null;
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java
index d7faf6bd6..48adc64f7 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java
@@ -49,7 +49,7 @@ import org.eclipse.mylyn.commons.core.StatusHandler;
import org.eclipse.mylyn.commons.net.WebClientLog;
import org.eclipse.mylyn.commons.net.WebUtil;
import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.context.core.ContextPreferenceContstants;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractNotification;
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonColors;
import org.eclipse.mylyn.internal.tasks.core.AbstractSearchHandler;
@@ -485,7 +485,7 @@ public class TasksUiPlugin extends AbstractUIPlugin {
// initialize framework and settings
WebUtil.init();
WebClientLog.setLoggingEnabled(DEBUG_HTTPCLIENT);
- initializeDefaultPreferences(getPreferenceStore());
+ initializePreferences(getPreferenceStore());
File dataDir = new File(getDataDirectory());
dataDir.mkdirs();
@@ -714,7 +714,7 @@ public class TasksUiPlugin extends AbstractUIPlugin {
}
public String getDataDirectory() {
- return getPreferenceStore().getString(ContextPreferenceContstants.PREF_DATA_DIR);
+ return getPreferenceStore().getString(ITasksUiPreferenceConstants.PREF_DATA_DIR);
}
/**
@@ -723,15 +723,16 @@ public class TasksUiPlugin extends AbstractUIPlugin {
*
* @throws CoreException
*/
+ @SuppressWarnings("restriction")
public void setDataDirectory(final String newPath, IProgressMonitor monitor) throws CoreException {
-
externalizationManager.saveNow(monitor);
- // TODO: backup now?
- //TasksUiPlugin.getBackupManager().backupNow(true);
loadDataDirectory(newPath);
- getPreferenceStore().setValue(ContextPreferenceContstants.PREF_DATA_DIR, newPath);
- ContextCore.getContextStore().contextStoreMoved();
-
+ getPreferenceStore().setValue(ITasksUiPreferenceConstants.PREF_DATA_DIR, newPath);
+ File newFile = new File(newPath, ITasksCoreConstants.CONTEXTS_DIRECTORY);
+ if (!newFile.exists()) {
+ newFile.mkdirs();
+ }
+ ContextCorePlugin.getContextStore().setContextDirectory(newFile);
}
public void reloadDataDirectory() throws CoreException {
@@ -786,7 +787,11 @@ public class TasksUiPlugin extends AbstractUIPlugin {
/**
* called on startup and when the mylyn data structures are reloaded from disk
*/
+ @SuppressWarnings("restriction")
private void loadDataSources() {
+ File storeFile = getContextStoreDir();
+ ContextCorePlugin.getContextStore().setContextDirectory(storeFile);
+
externalizationManager.reLoad();
// TODO: Move management of template repositories to TaskRepositoryManager
loadTemplateRepositories();
@@ -797,9 +802,16 @@ public class TasksUiPlugin extends AbstractUIPlugin {
taskActivityManager.reloadPlanningData();
}
- @Override
- protected void initializeDefaultPreferences(IPreferenceStore store) {
- store.setDefault(ContextPreferenceContstants.PREF_DATA_DIR, getDefaultDataDirectory());
+ private File getContextStoreDir() {
+ File storeFile = new File(getDataDirectory(), ITasksCoreConstants.CONTEXTS_DIRECTORY);
+ if (!storeFile.exists()) {
+ storeFile.mkdirs();
+ }
+ return storeFile;
+ }
+
+ private void initializePreferences(IPreferenceStore store) {
+ store.setDefault(ITasksUiPreferenceConstants.PREF_DATA_DIR, getDefaultDataDirectory());
store.setDefault(ITasksUiPreferenceConstants.GROUP_SUBTASKS, true);
store.setDefault(ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED, true);
store.setDefault(ITasksUiPreferenceConstants.FILTER_PRIORITY, PriorityLevel.P5.toString());
@@ -962,10 +974,6 @@ public class TasksUiPlugin extends AbstractUIPlugin {
return overlayIcons.get(repositoryType);
}
-// public boolean isInitialized() {
-// return initialized;
-// }
-
public IHyperlinkDetector[] getTaskHyperlinkDetectors() {
return hyperlinkDetectors.toArray(new IHyperlinkDetector[1]);
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/WorkspaceAwareContextStore.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/WorkspaceAwareContextStore.java
deleted file mode 100644
index 7d947a12a..000000000
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/WorkspaceAwareContextStore.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * 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.ui;
-
-import java.io.File;
-
-import org.eclipse.mylyn.context.core.AbstractContextStore;
-import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-
-/**
- * @author Mik Kersten
- */
-public class WorkspaceAwareContextStore extends AbstractContextStore {
-
- private File rootDirectory;
-
- private File contextDirectory;
-
- @Override
- public synchronized void init() {
- rootDirectory = new File(TasksUiPlugin.getDefault().getDataDirectory());
- if (!rootDirectory.exists()) {
- rootDirectory.mkdir();
- }
-
- contextDirectory = new File(rootDirectory, ITasksCoreConstants.CONTEXTS_DIRECTORY);
- if (!contextDirectory.exists()) {
- contextDirectory.mkdir();
- }
- }
-
- @Override
- public File getRootDirectory() {
- return rootDirectory;
- }
-
- @Override
- public File getContextDirectory() {
- return contextDirectory;
- }
-}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskImportAction.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskImportAction.java
index d5ff7e3ec..75b2573be 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskImportAction.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/actions/TaskImportAction.java
@@ -9,25 +9,18 @@
package org.eclipse.mylyn.internal.tasks.ui.actions;
import java.io.File;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.Collection;
import java.util.Set;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.core.InteractionContext;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
-import org.eclipse.mylyn.internal.tasks.core.TaskList;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
-import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView;
import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IViewActionDelegate;
@@ -65,23 +58,14 @@ public class TaskImportAction extends Action implements IViewActionDelegate {
if (path != null) {
File file = new File(path);
if (file.isFile()) {
-
- Map<AbstractTask, InteractionContext> taskContexts = new HashMap<AbstractTask, InteractionContext>();
-
- List<AbstractTask> readTasks = TasksUiPlugin.getTaskListManager().getTaskListWriter().readTasks(file);
- for (AbstractTask task : readTasks) {
- // deactivate all tasks
- task.setActive(false);
- taskContexts.put(task, ContextCorePlugin.getContextManager().loadContext(
- task.getHandleIdentifier(), file));
- }
Set<TaskRepository> repositories = TasksUiPlugin.getTaskListManager()
.getTaskListWriter()
.readRepositories(file);
-
- if (taskContexts.size() > 0) {
- importTasks(taskContexts, repositories, shell);
- refreshTaskListView();
+ Collection<AbstractTask> readTasks = TasksUiPlugin.getTaskListManager().getTaskListWriter().readTasks(
+ file);
+ if (readTasks.size() > 0) {
+ TasksUiInternal.importTasks(readTasks, repositories, file, shell);
+// refreshTaskListView();
} else {
MessageDialog.openError(shell, "Task Import Error",
"The specified file is not an exported task. Please, check that you have provided the correct file.");
@@ -91,39 +75,4 @@ public class TaskImportAction extends Action implements IViewActionDelegate {
}
return;
}
-
- public void refreshTaskListView() {
- if (TaskListView.getFromActivePerspective() != null) {
- TaskListView.getFromActivePerspective().refresh();
- }
- }
-
- /**
- * @param queries
- * @param repositories
- * @param shell
- * @return true if any task imported
- */
- public void importTasks(Map<AbstractTask, InteractionContext> taskContexts, Set<TaskRepository> repositories,
- Shell shell) {
- TasksUiPlugin.getRepositoryManager().insertRepositories(repositories,
- TasksUiPlugin.getDefault().getRepositoriesFilePath());
-
- for (AbstractTask loadedTask : taskContexts.keySet()) {
- TaskList taskList = TasksUiPlugin.getTaskList();
- if (taskList.getTask(loadedTask.getHandleIdentifier()) != null) {
- boolean confirmed = MessageDialog.openConfirm(shell, ITasksUiConstants.TITLE_DIALOG, "Task '"
- + loadedTask.getSummary()
- + "' already exists. Do you want to override it's context with the source?");
- if (confirmed) {
- ContextCorePlugin.getContextManager().importContext(taskContexts.get(loadedTask));
- }
- } else {
- ContextCorePlugin.getContextManager().importContext(taskContexts.get(loadedTask));
- TasksUiInternal.getTaskList().addTask(loadedTask);
- }
- }
-
- }
-
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java
index 33599a105..1807238f4 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskPlanningEditor.java
@@ -8,7 +8,6 @@
package org.eclipse.mylyn.internal.tasks.ui.editors;
-import java.io.File;
import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;
@@ -24,7 +23,6 @@ import org.eclipse.jface.text.TextEvent;
import org.eclipse.jface.text.TextViewer;
import org.eclipse.mylyn.commons.core.DateUtil;
import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.context.core.ContextCore;
import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractRetrieveTitleFromUrlJob;
import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
import org.eclipse.mylyn.internal.provisional.commons.ui.DatePicker;
@@ -33,9 +31,9 @@ import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
import org.eclipse.mylyn.internal.tasks.core.LocalTask;
import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil;
import org.eclipse.mylyn.internal.tasks.core.TaskContainerDelta;
+import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
import org.eclipse.mylyn.internal.tasks.ui.ScheduleDatePicker;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
import org.eclipse.mylyn.internal.tasks.ui.actions.ToggleTaskActivationAction;
import org.eclipse.mylyn.internal.tasks.ui.deprecated.TaskFormPage;
import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
@@ -887,41 +885,6 @@ public class TaskPlanningEditor extends TaskFormPage {
return completionDateString;
}
- // TODO: unused, delete?
- void createResourcesSection(Composite parent) {
- Section section = toolkit.createSection(parent, ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE);
- section.setText("Resources");
- section.setLayout(new GridLayout());
- section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
- section.addExpansionListener(new IExpansionListener() {
- public void expansionStateChanging(ExpansionEvent e) {
- form.reflow(true);
- }
-
- public void expansionStateChanged(ExpansionEvent e) {
- form.reflow(true);
- }
- });
-
- Composite container = toolkit.createComposite(section);
- section.setClient(container);
- GridLayout layout = new GridLayout();
- layout.numColumns = 2;
- container.setLayout(layout);
- container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
- toolkit.createLabel(container, "Task context file:");
- File contextFile = ContextCore.getContextManager().getFileForContext(task.getHandleIdentifier());
- if (contextFile != null) {
- pathText = toolkit.createText(container, contextFile.getAbsolutePath(), SWT.NONE);
- pathText.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TEXT_BORDER);
- GridDataFactory.fillDefaults().hint(400, SWT.DEFAULT).applyTo(pathText);
- pathText.setEditable(false);
- pathText.setEnabled(true);
- }
- toolkit.paintBordersFor(container);
- }
-
@Override
public void dispose() {
if (timingListener != null) {
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java
index 7504b603a..a7db9699f 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskDataExportOperation.java
@@ -30,6 +30,7 @@ import org.eclipse.mylyn.commons.core.StatusHandler;
import org.eclipse.mylyn.context.core.ContextCore;
import org.eclipse.mylyn.context.core.IInteractionContextManager;
import org.eclipse.mylyn.internal.commons.core.ZipFileUtil;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager;
@@ -44,7 +45,7 @@ import org.eclipse.mylyn.tasks.core.ITask;
* @author Mik Kersten
* @author Rob Elves
*
- * TODO: Move into internal.tasks.core
+ * TODO: Move into internal.tasks.core
*/
public class TaskDataExportOperation implements IRunnableWithProgress {
@@ -203,7 +204,7 @@ public class TaskDataExportOperation implements IRunnableWithProgress {
// copy
}
- File sourceTaskContextFile = ContextCore.getContextManager().getFileForContext(
+ File sourceTaskContextFile = ContextCorePlugin.getContextStore().getFileForContext(
task.getHandleIdentifier());
File destTaskFile = new File(destinationDirectory + File.separator
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListElementImporter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListElementImporter.java
index 98a635d71..2ff685e25 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListElementImporter.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TaskListElementImporter.java
@@ -44,7 +44,6 @@ import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.mylyn.commons.core.StatusHandler;
import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.core.InteractionContext;
import org.eclipse.mylyn.internal.context.core.InteractionContextExternalizer;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
@@ -611,7 +610,7 @@ public class TaskListElementImporter {
/**
* @param Query
- * document to read.
+ * document to read.
*/
public List<RepositoryQuery> readQueryDocument(Document doc) {
List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
@@ -681,8 +680,8 @@ public class TaskListElementImporter {
writeTaskList(doc, outputStream);
// write context data
- InteractionContext context = ContextCorePlugin.getContextManager().loadContext(task.getHandleIdentifier());
- contextExternalizer.writeContext(context, outputStream);
+ ContextCorePlugin.getContextStore().export(task.getHandleIdentifier(), outputStream);
+
if (repositories.size() > 0) {
repositoriesExternalizer.writeRepositories(repositories, outputStream);
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java
index ff552d5f7..c91487db9 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/TasksUiInternal.java
@@ -8,9 +8,11 @@
package org.eclipse.mylyn.internal.tasks.ui.util;
+import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -39,6 +41,7 @@ import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.mylyn.commons.core.CoreUtil;
import org.eclipse.mylyn.commons.core.StatusHandler;
import org.eclipse.mylyn.commons.net.Policy;
+import org.eclipse.mylyn.context.core.ContextCore;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
import org.eclipse.mylyn.internal.tasks.core.ITaskJobFactory;
@@ -680,4 +683,30 @@ public class TasksUiInternal {
}
}
+ public static void importTasks(Collection<AbstractTask> tasks, Set<TaskRepository> repositories, File zipFile,
+ Shell shell) {
+ TasksUiPlugin.getRepositoryManager().insertRepositories(repositories,
+ TasksUiPlugin.getDefault().getRepositoriesFilePath());
+
+ for (AbstractTask loadedTask : tasks) {
+ // need to deactivate since activation is managed centrally
+ loadedTask.setActive(false);
+
+ TaskList taskList = TasksUiPlugin.getTaskList();
+ if (taskList.getTask(loadedTask.getHandleIdentifier()) != null) {
+ boolean confirmed = MessageDialog.openConfirm(shell, "Import Task", "Task '" + loadedTask.getSummary()
+ + "' already exists. Do you want to override it's context with the source?");
+ if (confirmed) {
+ // ContextCore.getContextStore().importContext(taskContexts.get(loadedTask));
+ ContextCore.getContextStore().importContext(loadedTask.getHandleIdentifier(), zipFile);
+ }
+ } else {
+ // ContextCore.getContextStore().importContext(taskContexts.get(loadedTask));
+ ContextCore.getContextStore().importContext(loadedTask.getHandleIdentifier(), zipFile);
+ getTaskList().addTask(loadedTask);
+ }
+ }
+
+ }
+
}
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java
index dfbce047e..233d6c410 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListDropAdapter.java
@@ -12,10 +12,8 @@ import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import org.eclipse.core.runtime.CoreException;
@@ -28,9 +26,6 @@ import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerDropAdapter;
import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.context.core.ContextCore;
-import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
-import org.eclipse.mylyn.internal.context.core.InteractionContext;
import org.eclipse.mylyn.internal.provisional.commons.ui.AbstractRetrieveTitleFromUrlJob;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
@@ -40,19 +35,16 @@ import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer;
import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer;
import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
+import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
import org.eclipse.mylyn.internal.tasks.ui.TaskListModifyOperation;
import org.eclipse.mylyn.internal.tasks.ui.TaskTransfer;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
-import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants;
import org.eclipse.mylyn.internal.tasks.ui.actions.QueryImportAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskActivateAction;
-import org.eclipse.mylyn.internal.tasks.ui.actions.TaskImportAction;
import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector;
import org.eclipse.mylyn.tasks.core.ITask;
import org.eclipse.mylyn.tasks.core.ITaskElement;
import org.eclipse.mylyn.tasks.core.TaskRepository;
-import org.eclipse.mylyn.tasks.ui.ITasksUiConstants;
import org.eclipse.mylyn.tasks.ui.TasksUi;
import org.eclipse.mylyn.tasks.ui.TasksUiUtil;
import org.eclipse.swt.dnd.DND;
@@ -115,71 +107,72 @@ public class TaskListDropAdapter extends ViewerDropAdapter {
tasksToMove.add(newTask);
} else if (FileTransfer.getInstance().isSupportedType(currentTransfer)) {
// transfer the context if the target is a Task
- if (getCurrentTarget() instanceof ITask) {
- AbstractTask targetTask = (AbstractTask) getCurrentTarget();
- final String[] names = (String[]) data;
- boolean confirmed = MessageDialog.openConfirm(getViewer().getControl().getShell(),
- ITasksUiConstants.TITLE_DIALOG,
- "Overwrite the context of the target task with the source's?");
- if (confirmed) {
- String path = names[0];
- File file = new File(path);
- if (ContextCore.getContextManager().isValidContextFile(file)) {
- ContextCore.getContextManager().copyContext(targetTask.getHandleIdentifier(), file);
- new TaskActivateAction().run(targetTask);
- }
- }
- } else {
- // otherwise it is queries or tasks
- final String[] names = (String[]) data;
- List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
- Map<AbstractTask, InteractionContext> taskContexts = new HashMap<AbstractTask, InteractionContext>();
- Set<TaskRepository> repositories = new HashSet<TaskRepository>();
-
- for (String path : names) {
- File file = new File(path);
- if (file.isFile()) {
- List<RepositoryQuery> readQueries;
- try {
- readQueries = TasksUiPlugin.getTaskListManager().getTaskListWriter().readQueries(
- file);
- if (readQueries.size() > 0) {
- queries.addAll(readQueries);
- repositories.addAll(TasksUiPlugin.getTaskListManager()
- .getTaskListWriter()
- .readRepositories(file));
- } else {
- List<AbstractTask> readTasks = TasksUiPlugin.getTaskListManager()
- .getTaskListWriter()
- .readTasks(file);
- for (AbstractTask task : readTasks) {
- taskContexts.put(task, ContextCorePlugin.getContextManager().loadContext(
- task.getHandleIdentifier(), file));
- }
- repositories.addAll(TasksUiPlugin.getTaskListManager()
- .getTaskListWriter()
- .readRepositories(file));
- }
- } catch (IOException e) {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- MessageDialog.openError(null, "Query Import Error",
- "The specified file is not an exported query. Please, check that you have provided the correct file.");
- }
- });
+// if (getCurrentTarget() instanceof ITask) {
+// final AbstractTask targetTask = (AbstractTask) getCurrentTarget();
+// final String[] names = (String[]) data;
+// PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
+//
+// public void run() {
+// boolean confirmed = MessageDialog.openConfirm(getViewer().getControl().getShell(),
+// "Task Import", "Overwrite the context of the target task with the source's?");
+// if (confirmed) {
+// String path = names[0];
+// File file = new File(path);
+// boolean succeeded = ContextCore.getContextStore().copyContext(file,
+// targetTask.getHandleIdentifier());
+// if (succeeded) {
+// new TaskActivateAction().run(targetTask);
+// }
+// }
+// }
+// });
+// } else {
+ // otherwise it is queries or tasks
+ final String[] names = (String[]) data;
+ for (String path : names) {
+ final File file = new File(path);
+ final List<RepositoryQuery> queries = new ArrayList<RepositoryQuery>();
+ final Set<TaskRepository> repositories = new HashSet<TaskRepository>();
+ final List<AbstractTask> readTasks = TasksUiPlugin.getTaskListManager()
+ .getTaskListWriter()
+ .readTasks(file);
+ if (file.isFile()) {
+ List<RepositoryQuery> readQueries;
+ try {
+ readQueries = TasksUiPlugin.getTaskListManager().getTaskListWriter().readQueries(file);
+ if (readQueries.size() > 0) {
+ queries.addAll(readQueries);
+ repositories.addAll(TasksUiPlugin.getTaskListManager()
+ .getTaskListWriter()
+ .readRepositories(file));
+ } else {
+ repositories.addAll(TasksUiPlugin.getTaskListManager()
+ .getTaskListWriter()
+ .readRepositories(file));
}
+ } catch (IOException e) {
+ PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
+ public void run() {
+ MessageDialog.openError(null, "Query Import Error",
+ "The specified file is not an exported query. Please, check that you have provided the correct file.");
+ }
+ });
}
-
}
- if (queries.size() > 0) {
- new QueryImportAction().importQueries(queries, repositories, getViewer().getControl()
- .getShell());
- } else {
- TaskImportAction action = new TaskImportAction();
- action.importTasks(taskContexts, repositories, getViewer().getControl().getShell());
- action.refreshTaskListView();
- }
+ // FIXME: remove async exec
+ PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
+ public void run() {
+ // TODO: we should consider batching this up
+ if (queries.size() > 0) {
+ new QueryImportAction().importQueries(queries, repositories,
+ getViewer().getControl().getShell());
+ } else {
+ TasksUiInternal.importTasks(readTasks, repositories, file, getViewer().getControl()
+ .getShell());
+ }
+ }
+ });
}
}
@@ -279,7 +272,7 @@ public class TaskListDropAdapter extends ViewerDropAdapter {
/**
* @param data
- * string containing url and title separated by <quote>\n</quote>
+ * string containing url and title separated by <quote>\n</quote>
* @return true if task succesfully created, false otherwise
*/
public boolean createTaskFromUrl(Object data) {
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java
index 4a56deade..86ccadbe1 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/wizards/TaskDataExportWizard.java
@@ -21,8 +21,8 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.context.core.ContextCore;
import org.eclipse.mylyn.context.core.IInteractionContextManager;
+import org.eclipse.mylyn.internal.context.core.ContextCorePlugin;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
@@ -153,8 +153,8 @@ public class TaskDataExportWizard extends Wizard implements IExportWizard {
if (exportPage.exportTaskContexts()) {
for (ITask task : taskContextsToExport) {
- File contextFile = ContextCore.getContextManager()
- .getFileForContext(task.getHandleIdentifier());
+ File contextFile = ContextCorePlugin.getContextStore().getFileForContext(
+ task.getHandleIdentifier());
File destTaskFile = new File(destDir + File.separator + contextFile.getName());
if (destTaskFile.exists()) {
if (!MessageDialog.openConfirm(getShell(), "Confirm File Replace",

Back to the top