Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2010-02-26 04:07:20 +0000
committerspingel2010-02-26 04:07:20 +0000
commite65344ca068ede6cc5b07d31b037e5d1939b8e9c (patch)
tree17c898c953cd6f09cc0e09979af3280309557468 /org.eclipse.mylyn.tasks.ui
parente4948989d90db570f3814ebd5e185713891ffb56 (diff)
downloadorg.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')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java2
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java69
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties2
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

Back to the top