diff options
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/MylarTasklistPlugin.java')
-rw-r--r-- | org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/MylarTasklistPlugin.java | 48 |
1 files changed, 35 insertions, 13 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/MylarTasklistPlugin.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/MylarTasklistPlugin.java index b0823ccf7..dd69a3c9c 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/MylarTasklistPlugin.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/MylarTasklistPlugin.java @@ -61,6 +61,7 @@ public class MylarTasklistPlugin extends AbstractUIPlugin implements IStartup { public static final String REPORT_OPEN_INTERNAL = "org.eclipse.mylar.tasklist.report.open.internal"; public static final String REPORT_OPEN_EXTERNAL = "org.eclipse.mylar.tasklist.report.open.external"; public static final String MULTIPLE_ACTIVE_TASKS = "org.eclipse.mylar.tasklist.active.multipe"; + public static final String COPY_TASK_DATA = "org.eclipse.mylar.tasklist.preferences.copyTaskData"; public static final String PLUGIN_ID = "org.eclipse.mylar.tasklist"; public static final String FILE_EXTENSION = ".xml"; @@ -205,25 +206,17 @@ public class MylarTasklistPlugin extends AbstractUIPlugin implements IStartup { private static IPropertyChangeListener PREFERENCE_LISTENER = new IPropertyChangeListener() { public void propertyChange(PropertyChangeEvent event) { - // TODO Auto-generated method stub - if (event.getProperty().equals(MylarPlugin.MYLAR_DIR)) { - if (event.getOldValue() instanceof String) { - String prevDir = (String) event.getOldValue(); - MylarPlugin.getContextManager().updateMylarDirContents(prevDir); - getTaskListManager().updateTaskscapeReference(prevDir); - - String path = MylarPlugin.getDefault().getMylarDataDirectory() + File.separator + DEFAULT_TASK_LIST_FILE; - getTaskListManager().setTaskListFile(new File(path)); - } - } else if (event.getProperty().equals(MULTIPLE_ACTIVE_TASKS)) { + + if (event.getProperty().equals(MULTIPLE_ACTIVE_TASKS)) { TaskListView.getDefault().togglePreviousAction(!getPrefs().getBoolean(MULTIPLE_ACTIVE_TASKS)); TaskListView.getDefault().toggleNextAction(!getPrefs().getBoolean(MULTIPLE_ACTIVE_TASKS)); TaskListView.getDefault().clearTaskHistory(); - } else { - } + } } }; + + public MylarTasklistPlugin() { super(); plugin = this; @@ -317,6 +310,20 @@ public class MylarTasklistPlugin extends AbstractUIPlugin implements IStartup { return MylarPlugin.getDefault().getPreferenceStore(); } + + /** + * Sets the directory containing the task list file to use. + * Switches immediately to use the data at that location. + */ + public void setDataDirectory(String newDirPath){ + String taskListFilePath = newDirPath + File.separator + DEFAULT_TASK_LIST_FILE; + getTaskListManager().setTaskListFile(new File(taskListFilePath)); + getTaskListManager().createNewTaskList(); + getTaskListManager().readTaskList(); + + TaskListView.getDefault().clearTaskHistory(); + } + /** * TODO: make private */ @@ -472,6 +479,21 @@ public class MylarTasklistPlugin extends AbstractUIPlugin implements IStartup { copy(new File(backup), taskListFile); } + /** + * Copies all files in the current data directory to + * the specified folder. Will overwrite. + */ + public void copyDataDirContentsTo(String targetFolderPath){ + File mainDataDir = new File(MylarPlugin.getDefault().getMylarDataDirectory()); + + for ( File currFile : mainDataDir.listFiles()) { + if (currFile.isFile()){ + File destFile = new File(targetFolderPath + File.separator + currFile.getName()); + copy(currFile, destFile); + } + } + } + private boolean copy(File src, File dst) { try { InputStream in = new FileInputStream(src); |