diff options
author | spingel | 2010-02-26 04:07:20 +0000 |
---|---|---|
committer | spingel | 2010-02-26 04:07:20 +0000 |
commit | e65344ca068ede6cc5b07d31b037e5d1939b8e9c (patch) | |
tree | 17c898c953cd6f09cc0e09979af3280309557468 /org.eclipse.mylyn.tasks.ui | |
parent | e4948989d90db570f3814ebd5e185713891ffb56 (diff) | |
download | org.eclipse.mylyn.tasks-e65344ca068ede6cc5b07d31b037e5d1939b8e9c.tar.gz org.eclipse.mylyn.tasks-e65344ca068ede6cc5b07d31b037e5d1939b8e9c.tar.xz org.eclipse.mylyn.tasks-e65344ca068ede6cc5b07d31b037e5d1939b8e9c.zip |
NEW - bug 276113: [patch] allow typing in task data directory field
https://bugs.eclipse.org/bugs/show_bug.cgi?id=276113
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui')
3 files changed, 30 insertions, 43 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java index 24ba69140..38bb2f0d8 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java @@ -43,7 +43,7 @@ public class Messages extends NLS { public static String TasksUiPreferencePage_Data_directory_; - public static String TasksUiPreferencePage_Destination_folder_does_not_exist; + public static String TasksUiPreferencePage_Destination_folder_cannot_be_created; public static String TasksUiPreferencePage_Display_notifications_for_overdue_tasks_and_incoming_changes; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java index 45c7b3989..319b01076 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java @@ -7,6 +7,7 @@ * * Contributors: * Tasktop Technologies - initial API and implementation + * Abner Ballardo - fix for bug 276113 *******************************************************************************/ package org.eclipse.mylyn.internal.tasks.ui.preferences; @@ -90,8 +91,6 @@ public class TasksUiPreferencePage extends PreferencePage implements IWorkbenchP private Button notificationEnabledButton = null; - private int taskDataDirectoryAction = -1; - private final FormToolkit toolkit; private Spinner timeoutMinutes; @@ -224,7 +223,7 @@ public class TasksUiPreferencePage extends PreferencePage implements IWorkbenchP taskDirectory = taskDirectory.replaceAll(BACKSLASH_MULTI, FORWARDSLASH); if (!taskDirectory.equals(TasksUiPlugin.getDefault().getDataDirectory())) { - if (taskDataDirectoryAction == IDialogConstants.OK_ID) { + if (checkForExistingTasklist(taskDirectory)) { Exception exception = null; try { TasksUiPlugin.getDefault().setDataDirectory(taskDirectory); @@ -243,9 +242,9 @@ public class TasksUiPreferencePage extends PreferencePage implements IWorkbenchP taskDirectoryText.setText(originalDirectory); } } - - } else if (taskDataDirectoryAction == IDialogConstants.CANCEL_ID) { - // shouldn't get here + } else { + taskDirectoryText.setFocus(); + return false; } } @@ -296,19 +295,9 @@ public class TasksUiPreferencePage extends PreferencePage implements IWorkbenchP @Override public void performDefaults() { super.performDefaults(); - String taskDirectory = TasksUiPlugin.getDefault().getDefaultDataDirectory(); - if (!taskDirectory.equals(TasksUiPlugin.getDefault().getDataDirectory())) { - checkForExistingTasklist(taskDirectory); - if (taskDataDirectoryAction != IDialogConstants.CANCEL_ID) { - taskDirectoryText.setText(taskDirectory); -// backupFolderText.setText(taskDirectory + FORWARDSLASH + ITasksCoreConstants.DEFAULT_BACKUP_FOLDER_NAME); -// backupNow.setEnabled(false); - } - } else { - taskDirectoryText.setText(taskDirectory); + taskDirectoryText.setText(TasksUiPlugin.getDefault().getDefaultDataDirectory()); // backupFolderText.setText(taskDirectory + FORWARDSLASH + ITasksCoreConstants.DEFAULT_BACKUP_FOLDER_NAME); // backupNow.setEnabled(true); - } notificationEnabledButton.setSelection(getPreferenceStore().getDefaultBoolean( ITasksUiPreferenceConstants.NOTIFICATIONS_ENABLED)); @@ -430,7 +419,6 @@ public class TasksUiPreferencePage extends PreferencePage implements IWorkbenchP taskDirectory = taskDirectory.replaceAll(BACKSLASH_MULTI, FORWARDSLASH); taskDirectoryText = new Text(dataDirComposite, SWT.BORDER); taskDirectoryText.setText(taskDirectory); - taskDirectoryText.setEditable(false); taskDirectoryText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); browse = new Button(dataDirComposite, SWT.TRAIL); @@ -451,11 +439,7 @@ public class TasksUiPreferencePage extends PreferencePage implements IWorkbenchP return; } dir = dir.replaceAll(BACKSLASH_MULTI, FORWARDSLASH); - checkForExistingTasklist(dir); - - if (taskDataDirectoryAction != IDialogConstants.CANCEL_ID) { - taskDirectoryText.setText(dir); - } + taskDirectoryText.setText(dir); } }); @@ -599,27 +583,30 @@ public class TasksUiPreferencePage extends PreferencePage implements IWorkbenchP return "" + minutes; //$NON-NLS-1$ } - private void checkForExistingTasklist(String dir) { + private boolean checkForExistingTasklist(String dir) { File newDataFolder = new File(dir); - if (newDataFolder.exists()) { - - MessageDialog dialogConfirm = new MessageDialog( - null, - Messages.TasksUiPreferencePage_Confirm_Task_List_data_directory_change, - null, - Messages.TasksUiPreferencePage_A_new_empty_Task_List_will_be_created_in_the_chosen_directory_if_one_does_not_already_exists, - MessageDialog.WARNING, new String[] { IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL }, - IDialogConstants.CANCEL_ID); - taskDataDirectoryAction = dialogConfirm.open(); - - for (TaskEditor taskEditor : TasksUiInternal.getActiveRepositoryTaskEditors()) { - TasksUiInternal.closeTaskEditorInAllPages(taskEditor.getTaskEditorInput().getTask(), true); - } - - } else { + if (!newDataFolder.exists() && !newDataFolder.mkdirs()) { MessageDialog.openWarning(getControl().getShell(), Messages.TasksUiPreferencePage_Change_data_directory, - Messages.TasksUiPreferencePage_Destination_folder_does_not_exist); + Messages.TasksUiPreferencePage_Destination_folder_cannot_be_created); + return false; + } + + MessageDialog dialogConfirm = new MessageDialog( + null, + Messages.TasksUiPreferencePage_Confirm_Task_List_data_directory_change, + null, + Messages.TasksUiPreferencePage_A_new_empty_Task_List_will_be_created_in_the_chosen_directory_if_one_does_not_already_exists, + MessageDialog.WARNING, new String[] { IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL }, + IDialogConstants.CANCEL_ID); + int taskDataDirectoryAction = dialogConfirm.open(); + if (taskDataDirectoryAction != IDialogConstants.OK_ID) { + return false; + } + + for (TaskEditor taskEditor : TasksUiInternal.getActiveRepositoryTaskEditors()) { + TasksUiInternal.closeTaskEditorInAllPages(taskEditor.getTaskEditorInput().getTask(), true); } + return true; } @Override diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties index 99fdddece..5bf2a204d 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties @@ -17,7 +17,7 @@ TasksUiPreferencePage_Browse_=Browse... TasksUiPreferencePage_Change_data_directory=Change data directory TasksUiPreferencePage_Confirm_Task_List_data_directory_change=Confirm Task List data directory change TasksUiPreferencePage_Data_directory_=Data directory: -TasksUiPreferencePage_Destination_folder_does_not_exist=Destination folder does not exist. +TasksUiPreferencePage_Destination_folder_cannot_be_created=Destination folder cannot be created. TasksUiPreferencePage_Display_notifications_for_overdue_tasks_and_incoming_changes=Display notifications for overdue tasks and incoming changes TasksUiPreferencePage_Enable_inactivity_timeouts=Enable inactivity timeouts TasksUiPreferencePage_Enable_Time_Tracking=Track time spent within Eclipse when a task is active |