diff options
author | mkersten | 2005-12-08 02:45:25 +0000 |
---|---|---|
committer | mkersten | 2005-12-08 02:45:25 +0000 |
commit | 5816fd0cd1ac9fca2315d48f417d09db234132b4 (patch) | |
tree | 11e8829ddb22a9fc89ca5f845b15a51564822dac | |
parent | 9f04018e5d02133cc563614a53fcf1d75c073837 (diff) | |
download | org.eclipse.mylyn.tasks-5816fd0cd1ac9fca2315d48f417d09db234132b4.tar.gz org.eclipse.mylyn.tasks-5816fd0cd1ac9fca2315d48f417d09db234132b4.tar.xz org.eclipse.mylyn.tasks-5816fd0cd1ac9fca2315d48f417d09db234132b4.zip |
Progress on: Bug 119300: fix setting of elapsed time to 0
https://bugs.eclipse.org/bugs/show_bug.cgi?id=119300
10 files changed, 50 insertions, 406 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ITask.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ITask.java index cb1359cb5..5264e53b0 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ITask.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ITask.java @@ -106,10 +106,19 @@ public interface ITask extends ITaskListElement { public abstract Date getReminderDate(); + /** + * TODO: move + */ public abstract boolean hasBeenReminded(); - + + /** + * TODO: move + */ public abstract void setReminded(boolean reminded); + /** + * TODO: move + */ public abstract boolean participatesInTaskHandles(); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskActivityTimer.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskActivityTimer.java index 8fd469c20..c71bbae14 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskActivityTimer.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskActivityTimer.java @@ -66,7 +66,6 @@ public class TaskActivityTimer implements ITimerThreadListener, IInteractionEven public void shellDeactivated(ShellEvent e) { fireTimedOut(); timer.setSuspended(true); - // windowDeactivationTime = new Date().getTime(); } public void shellActivated(ShellEvent e) { diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskList.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskList.java index 2437b04f7..2bfe13f02 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskList.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskList.java @@ -191,15 +191,15 @@ public class TaskList implements Serializable { private int largestTaskHandleHelper(List<ITask> tasks) { int ihandle = 0; int max = 0; - for (ITask t : tasks) { - if (t.participatesInTaskHandles()) { - String string = t.getHandleIdentifier().substring(t.getHandleIdentifier().indexOf('-') + 1, t.getHandleIdentifier().length()); + for (ITask task : tasks) { + if (task.participatesInTaskHandles()) { + String string = task.getHandleIdentifier().substring(task.getHandleIdentifier().indexOf('-') + 1, task.getHandleIdentifier().length()); if (!"".equals(string)) { ihandle = Integer.parseInt(string); } } max = Math.max(ihandle, max); - ihandle = largestTaskHandleHelper(t.getChildren()); + ihandle = largestTaskHandleHelper(task.getChildren()); max = Math.max(ihandle, max); } return max; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskListManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskListManager.java index 3c001f5a7..aa8a23e16 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskListManager.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskListManager.java @@ -31,11 +31,11 @@ import org.eclipse.mylar.tasklist.MylarTaskListPlugin; */ public class TaskListManager { - private Map<ITask, TaskTimer> timerMap = new HashMap<ITask, TaskTimer>(); + private Map<ITask, TaskActivityTimer> timerMap = new HashMap<ITask, TaskActivityTimer>(); private List<ITaskActivityListener> listeners = new ArrayList<ITaskActivityListener>(); - private TaskListWriter taskListWriter;// = new TaskListWriter(); + private TaskListWriter taskListWriter; private File taskListFile; @@ -47,15 +47,17 @@ public class TaskListManager { private static final String PREFIX_TASK = "task-"; - public static final long INACTIVITY_TIME_MILLIS; +// private int inactivityTimoutMillis = 1 * 60 * 1000; +// +// public static final long INACTIVITY_TIME_MILLIS; - static { - if (MylarPlugin.getContextManager() != null) { - INACTIVITY_TIME_MILLIS = MylarPlugin.getContextManager().getActivityTimeoutSeconds() * 1000; - } else { - INACTIVITY_TIME_MILLIS = 1 * 60 * 1000; - } - } +// static { +// if (MylarPlugin.getContextManager() != null) { +// INACTIVITY_TIME_MILLIS = MylarPlugin.getContextManager().getInactivityTimeout(); +// } else { +// INACTIVITY_TIME_MILLIS = 1 * 60 * 1000; +// } +// } public TaskListManager(TaskListWriter taskListWriter, File file, int startId) { this.taskListFile = file; @@ -150,10 +152,9 @@ public class TaskListManager { } public void deleteTask(ITask task) { - TaskTimer activeListener = timerMap.remove(task); - if (activeListener != null) - activeListener.stopTimer(); - taskList.setActive(task, false, false); + TaskActivityTimer activityTimer = timerMap.remove(task); + if (activityTimer != null) activityTimer.stopTimer(); + taskList.setActive(task, false); taskList.deleteTask(task); for (ITaskActivityListener listener : listeners) listener.tasklistModified(); } @@ -187,17 +188,18 @@ public class TaskListManager { taskList.clearActiveTasks(); } } - taskList.setActive(task, true, false); - TaskTimer activeListener = new TaskTimer(task); - timerMap.put(task, activeListener); + taskList.setActive(task, true); + int timout = MylarPlugin.getContextManager().getInactivityTimeout(); + TaskActivityTimer activityTimer = new TaskActivityTimer(task, timout); + activityTimer.startTimer(); + timerMap.put(task, activityTimer); for (ITaskActivityListener listener : listeners) listener.taskActivated(task); } public void deactivateTask(ITask task) { - TaskTimer activeListener = timerMap.remove(task); - if (activeListener != null) - activeListener.stopTimer(); - taskList.setActive(task, false, false); + TaskActivityTimer activeListener = timerMap.remove(task); + if (activeListener != null) activeListener.stopTimer(); + taskList.setActive(task, false); for (ITaskActivityListener listener : listeners) listener.taskDeactivated(task); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskTimer.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskTimer.java deleted file mode 100644 index b743570b5..000000000 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/internal/TaskTimer.java +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 - 2005 University Of British Columbia 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: - * University Of British Columbia - initial API and implementation - *******************************************************************************/ - -package org.eclipse.mylar.tasklist.internal; - -import java.util.Date; - -import org.eclipse.mylar.core.IInteractionEventListener; -import org.eclipse.mylar.core.InteractionEvent; -import org.eclipse.mylar.core.MylarPlugin; -import org.eclipse.mylar.core.util.ITimerThreadListener; -import org.eclipse.mylar.core.util.TimerThread; -import org.eclipse.mylar.tasklist.ITask; -import org.eclipse.swt.events.ShellEvent; -import org.eclipse.swt.events.ShellListener; -import org.eclipse.ui.PlatformUI; - -/** - * A Task uses this class to determine when it is active - * based on a timer that fires a timeout when there has been - * no activity and a shell listener that detects when the - * window has been deactivated. - * - * @author Shawn Minto - * @author Wesley Coelho (Added correction for PC sleep/hibernation errors) - */ -public class TaskTimer implements ITimerThreadListener, IInteractionEventListener, ShellListener { - - /** Amount of time for which discrepencies between timer and timestamp values will be ignored */ - private final static long SLOP_FACTOR_MILLIS = 1000 * 30; //30 seconds - - private TimerThread timer; - private ITask task; - private boolean isTaskStalled = false; - private long windowDeactivationTime = 0; - - public TaskTimer(ITask task){ - this.task = task; - timer = new TimerThread(MylarPlugin.getContextManager().getActivityTimeoutSeconds()); - timer.addListener(this); - timer.start(); - MylarPlugin.getDefault().addInteractionListener(this); - PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().addShellListener(this); - } - - /** Called by the timer when the user has been idle */ - public void fireTimedOut() { - task.setActive(task.isActive(), true); - isTaskStalled = true; - } - - public void interactionObserved(InteractionEvent event) { - timer.resetTimer(); - - if(isTaskStalled){ - task.setActive(task.isActive(), false); - } - isTaskStalled = false; - } - - public void start() {} - - public void stopTimer() { - timer.killTimer(); - MylarPlugin.getDefault().removeInteractionListener(this); - } - - public void stop() {} - - public void shellDeactivated(ShellEvent e) { - windowDeactivationTime = new Date().getTime(); - } - - /** - * Check for and correct PC Sleep/Hibernation error - */ - public void shellActivated(ShellEvent e) { - if (!isTaskStalled){ - long timeDifference = new Date().getTime() - windowDeactivationTime; - if (timeDifference > TaskListManager.INACTIVITY_TIME_MILLIS + SLOP_FACTOR_MILLIS){ - long newTime = task.getElapsedTimeLong() - timeDifference; - task.setElapsedTime("" + newTime); - } - } - } - - public void shellClosed(ShellEvent e) { - //Do nothing, deactivated will fire - } - - public void shellDeiconified(ShellEvent e) { - //Do nothing, wait for interaction to signal that the task is continuing - } - - public void shellIconified(ShellEvent e) { - //Do nothing, deactivated will fire - } -} diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TaskSorter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TaskSorter.java index f929ed0c4..399eb9507 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TaskSorter.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TaskSorter.java @@ -93,6 +93,6 @@ public class TaskSorter extends ViewerSorter { } private int compareDuration(ITask task1, ITask task2) { - return task1.getElapsedTimeLong() < task2.getElapsedTimeLong() ? 1 : -1; + return task1.getElapsedTime() < task2.getElapsedTime() ? 1 : -1; } } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TasksPlannerEditorInput.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TasksPlannerEditorInput.java index 9e1be876b..28b5c99a5 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TasksPlannerEditorInput.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TasksPlannerEditorInput.java @@ -99,7 +99,7 @@ public class TasksPlannerEditorInput implements IEditorInput { public long getTotalTimeSpentOnCompletedTasks() { long duration = 0; for (ITask t : completedTasks) { - duration += t.getElapsedTimeLong(); + duration += t.getElapsedTime(); } return duration; } @@ -107,7 +107,7 @@ public class TasksPlannerEditorInput implements IEditorInput { public long getTotalTimeSpentOnInProgressTasks() { long duration = 0; for (ITask t : inProgressTasks) { - duration += t.getElapsedTimeLong(); + duration += t.getElapsedTime(); } return duration; } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TasksPlannerLabelProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TasksPlannerLabelProvider.java index dd06e08b2..63cf7f4fe 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TasksPlannerLabelProvider.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/planner/ui/TasksPlannerLabelProvider.java @@ -65,7 +65,7 @@ public class TasksPlannerLabelProvider extends LabelProvider implements ITableLa return ""; } case 5: - return DateUtil.getFormattedDurationShort(task.getElapsedMillis()); + return DateUtil.getFormattedDurationShort(task.getElapsedTime()); case 6: return task.getEstimateTimeHours() + " hours"; } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/TaskInfoEditor.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/TaskInfoEditor.java index 9230d6c84..4f508d80e 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/TaskInfoEditor.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/TaskInfoEditor.java @@ -18,6 +18,7 @@ import java.util.List; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.mylar.core.MylarPlugin; +import org.eclipse.mylar.core.util.DateUtil; import org.eclipse.mylar.tasklist.ITask; import org.eclipse.mylar.tasklist.ITaskActivityListener; import org.eclipse.mylar.tasklist.MylarTaskListPlugin; @@ -453,7 +454,7 @@ public class TaskInfoEditor extends EditorPart { } }); - GridData estimatedSpinnerGridData = new org.eclipse.swt.layout.GridData(); + GridData estimatedSpinnerGridData = new GridData(); estimatedSpinnerGridData.horizontalAlignment = org.eclipse.swt.layout.GridData.FILL; estimatedSpinnerGridData.grabExcessHorizontalSpace = true; estimatedSpinnerGridData.verticalAlignment = org.eclipse.swt.layout.GridData.FILL; @@ -473,22 +474,21 @@ public class TaskInfoEditor extends EditorPart { label = toolkit.createLabel(container, "Elapsed time:"); label.setForeground(toolkit.getColors().getColor(FormColors.TITLE)); - String reminderDateString = ""; + + String elapsedTimeString = "0"; try { - if (task.getReminderDate() != null) { - reminderDateString = DateFormat.getDateInstance(DateFormat.SHORT).format(task.getReminderDate()); - } + elapsedTimeString = DateUtil.getFormattedDuration(task.getElapsedTime()); } catch (RuntimeException e) { MylarPlugin.fail(e, "Could not format reminder date", true); } + Text reminder = toolkit.createText(container, elapsedTimeString, SWT.BORDER); - Text text2 = toolkit.createText(container, reminderDateString, SWT.BORDER); TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB); td.grabHorizontal = true; td.colspan = 2; - text2.setLayoutData(td); - text2.setEditable(false); - text2.setEnabled(false); + reminder.setLayoutData(td); + reminder.setEditable(false); + reminder.setEnabled(false); label = toolkit.createLabel(container, "Creation date:"); label.setForeground(toolkit.getColors().getColor(FormColors.TITLE)); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/preferences/MylarTasklistPreferencePage.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/preferences/MylarTasklistPreferencePage.java deleted file mode 100644 index 82d2642cf..000000000 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/tasklist/ui/preferences/MylarTasklistPreferencePage.java +++ /dev/null @@ -1,260 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004 - 2005 University Of British Columbia 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: - * University Of British Columbia - initial API and implementation - *******************************************************************************/ -package org.eclipse.mylar.tasklist.ui.preferences; - -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.jface.preference.PreferencePage; -import org.eclipse.mylar.core.MylarPlugin; -import org.eclipse.mylar.tasklist.MylarTaskListPlugin; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.DirectoryDialog; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchPreferencePage; - -/** - * @author Mik Kersten - * @author Ken Sueda - */ -public class MylarTasklistPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { - - private Text taskDirectoryText = null; - - private Text taskURLPrefixText = null; - - private Text commitPrefixCompleted = null; - - private Text commitPrefixProgress = null; - - private Button browse = null; - - private Button copyExistingDataCheckbox = null; - - private Button reportEditor = null; - - private Button reportInternal = null; - - private Button multipleActive = null; - - public MylarTasklistPreferencePage() { - super(); - setPreferenceStore(MylarTaskListPlugin.getPrefs()); - } - - @Override - protected Control createContents(Composite parent) { - Composite container = new Composite(parent, SWT.NULL); - GridLayout layout = new GridLayout(1, false); - container.setLayout(layout); - - createCreationGroup(container); - createCommitGroup(container); - createTaskDirectoryControl(container); - createBugzillaReportOption(container); - createUserbooleanControl(container); - return container; - } - - public void init(IWorkbench workbench) { - // TODO Auto-generated method stub - } - - private void createUserbooleanControl(Composite parent) { - Composite container = new Composite(parent, SWT.NULL); - GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); - container.setLayoutData(gridData); - GridLayout gl = new GridLayout(1, false); - container.setLayout(gl); - // closeEditors = new Button(container, SWT.CHECK); - // closeEditors.setText("Close all editors on task deactivation (defaults to close only editors of interesting resources)"); - // closeEditors.setSelection(getPreferenceStore().getBoolean(MylarPlugin.AUTO_MANAGE_EDITORS)); - - multipleActive = new Button(container, SWT.CHECK); - multipleActive.setText("Enable multiple task contexts to be active"); - multipleActive.setSelection(getPreferenceStore().getBoolean(MylarTaskListPlugin.MULTIPLE_ACTIVE_TASKS)); - } - - private void createBugzillaReportOption(Composite parent) { - Group container = new Group(parent, SWT.SHADOW_ETCHED_IN); - container.setLayout(new GridLayout(2, false)); - container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - container.setText("Open Bug Reports With"); - reportEditor = new Button(container, SWT.RADIO); - reportEditor.setText("Bug editor"); - reportEditor.setSelection(getPreferenceStore().getBoolean(MylarTaskListPlugin.REPORT_OPEN_EDITOR)); - reportInternal = new Button(container, SWT.RADIO); - reportInternal.setText("Internal browser"); - reportInternal.setSelection(getPreferenceStore().getBoolean(MylarTaskListPlugin.REPORT_OPEN_INTERNAL)); - // reportExternal = new Button(container, SWT.RADIO); - // reportExternal.setText("External browser"); - // reportExternal.setSelection(getPreferenceStore().getBoolean(MylarTaskListPlugin.REPORT_OPEN_EXTERNAL)); - // reportExternal.setEnabled(false); - } - - @Override - public boolean performOk() { - String taskDirectory = taskDirectoryText.getText(); - taskDirectory = taskDirectory.replaceAll("\\\\", "/"); - if (!taskDirectory.equals(MylarPlugin.getDefault().getMylarDataDirectory())) { - //Order matters: - MylarTaskListPlugin.getDefault().getTaskListSaveManager().saveTaskListAndContexts(); - if (copyExistingDataCheckbox.getSelection()) { - MylarTaskListPlugin.getDefault().getTaskListSaveManager().copyDataDirContentsTo(taskDirectory); - } - getPreferenceStore().setValue(MylarPlugin.MYLAR_DIR, taskDirectory); - MylarTaskListPlugin.getDefault().setDataDirectory(MylarPlugin.getDefault().getMylarDataDirectory()); - } - - getPreferenceStore().setValue(MylarTaskListPlugin.COPY_TASK_DATA, copyExistingDataCheckbox.getSelection()); - getPreferenceStore().setValue(MylarTaskListPlugin.REPORT_OPEN_EDITOR, reportEditor.getSelection()); - getPreferenceStore().setValue(MylarTaskListPlugin.REPORT_OPEN_INTERNAL, reportInternal.getSelection()); - // getPreferenceStore().setValue(MylarTaskListPlugin.REPORT_OPEN_EXTERNAL, reportExternal.getSelection()); - getPreferenceStore().setValue(MylarTaskListPlugin.DEFAULT_URL_PREFIX, taskURLPrefixText.getText()); - getPreferenceStore().setValue(MylarTaskListPlugin.MULTIPLE_ACTIVE_TASKS, multipleActive.getSelection()); - - getPreferenceStore().setValue(MylarTaskListPlugin.COMMIT_PREFIX_COMPLETED, commitPrefixCompleted.getText()); - getPreferenceStore().setValue(MylarTaskListPlugin.COMMIT_PREFIX_PROGRESS, commitPrefixProgress.getText()); - return true; - } - - @Override - public boolean performCancel() { - // closeEditors.setSelection(getPreferenceStore().getBoolean(MylarPlugin.AUTO_MANAGE_EDITORS)); - reportEditor.setSelection(getPreferenceStore().getBoolean(MylarTaskListPlugin.REPORT_OPEN_EDITOR)); - reportInternal.setSelection(getPreferenceStore().getBoolean(MylarTaskListPlugin.REPORT_OPEN_INTERNAL)); - // reportExternal.setSelection(getPreferenceStore().getBoolean(MylarTaskListPlugin.REPORT_OPEN_EXTERNAL)); - multipleActive.setSelection(getPreferenceStore().getBoolean(MylarTaskListPlugin.MULTIPLE_ACTIVE_TASKS)); - // saveCombo.setText(getPreferenceStore().getString(MylarTaskListPlugin.SAVE_TASKLIST_MODE)); - return true; - } - - public void performDefaults() { - super.performDefaults(); - - IPath rootPath = ResourcesPlugin.getWorkspace().getRoot().getLocation(); - String taskDirectory = rootPath.toString() + "/" + MylarPlugin.MYLAR_DIR_NAME; - taskDirectoryText.setText(taskDirectory); - - copyExistingDataCheckbox.setSelection(getPreferenceStore().getDefaultBoolean(MylarTaskListPlugin.COPY_TASK_DATA)); - reportEditor.setSelection(getPreferenceStore().getDefaultBoolean(MylarTaskListPlugin.REPORT_OPEN_EDITOR)); - reportInternal.setSelection(getPreferenceStore().getDefaultBoolean(MylarTaskListPlugin.REPORT_OPEN_INTERNAL)); - // reportExternal.setSelection(getPreferenceStore().getDefaultBoolean(MylarTaskListPlugin.REPORT_OPEN_EXTERNAL)); - taskURLPrefixText.setText(getPreferenceStore().getDefaultString(MylarTaskListPlugin.DEFAULT_URL_PREFIX)); - - commitPrefixCompleted.setText(getPreferenceStore().getDefaultString(MylarTaskListPlugin.COMMIT_PREFIX_COMPLETED)); - commitPrefixProgress.setText(getPreferenceStore().getDefaultString(MylarTaskListPlugin.COMMIT_PREFIX_PROGRESS)); - - multipleActive.setSelection(getPreferenceStore().getDefaultBoolean(MylarTaskListPlugin.MULTIPLE_ACTIVE_TASKS)); - } - - private Label createLabel(Composite parent, String text) { - Label label = new Label(parent, SWT.LEFT); - label.setText(text); - GridData data = new GridData(); - data.horizontalSpan = 2; - data.horizontalAlignment = GridData.BEGINNING; - label.setLayoutData(data); - return label; - } - - private void createTaskDirectoryControl(Composite parent) { - Group taskDirComposite = new Group(parent, SWT.SHADOW_ETCHED_IN); - taskDirComposite.setText("Task Directory"); - taskDirComposite.setLayout(new GridLayout(2, false)); - taskDirComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - String taskDirectory = getPreferenceStore().getString(MylarPlugin.MYLAR_DIR); - taskDirectory = taskDirectory.replaceAll("\\\\", "/"); - taskDirectoryText = new Text(taskDirComposite, SWT.BORDER); - taskDirectoryText.setText(taskDirectory); - taskDirectoryText.setEditable(false); - taskDirectoryText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - browse = createButton(taskDirComposite, "Browse..."); - browse.addSelectionListener(new SelectionAdapter() { - - @Override - public void widgetSelected(SelectionEvent e) { - DirectoryDialog dialog = new DirectoryDialog(getShell()); - dialog.setText("Folder Selection"); - dialog.setMessage("Specify the folder for tasks"); - String dir = taskDirectoryText.getText(); - dir = dir.replaceAll("\\\\", "/"); - dialog.setFilterPath(dir); - - dir = dialog.open(); - if (dir == null || dir.equals("")) - return; - taskDirectoryText.setText(dir); - } - }); - - copyExistingDataCheckbox = new Button(taskDirComposite, SWT.CHECK); - copyExistingDataCheckbox.setText("Copy existing data to new location"); - copyExistingDataCheckbox.setSelection(getPreferenceStore().getBoolean(MylarTaskListPlugin.COPY_TASK_DATA)); - - } - - private void createCreationGroup(Composite parent) { - Group group = new Group(parent, SWT.SHADOW_ETCHED_IN); - group.setText("Task Creation"); - group.setLayout(new GridLayout(1, false)); - group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label urlLabel = createLabel(group, "Web link prefix (e.g. https://bugs.eclipse.org/bugs/show_bug.cgi?id=)"); - urlLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - - String taskURLPrefix = getPreferenceStore().getString(MylarTaskListPlugin.DEFAULT_URL_PREFIX); - taskURLPrefixText = new Text(group, SWT.BORDER); - taskURLPrefixText.setText(taskURLPrefix); - taskURLPrefixText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - } - - private void createCommitGroup(Composite parent) { - Group group = new Group(parent, SWT.SHADOW_ETCHED_IN); - group.setText("Task Commit"); - group.setLayout(new GridLayout(2, false)); - group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label completedLabel = createLabel(group, "Completed prefix: "); - completedLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - - String completedPrefix = getPreferenceStore().getString(MylarTaskListPlugin.COMMIT_PREFIX_COMPLETED); - commitPrefixCompleted = new Text(group, SWT.BORDER); - commitPrefixCompleted.setText(completedPrefix); - commitPrefixCompleted.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Label progressLabel = createLabel(group, "Uncompleted prefix: "); - progressLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING)); - - String progressPrefix = getPreferenceStore().getString(MylarTaskListPlugin.COMMIT_PREFIX_PROGRESS); - commitPrefixProgress = new Text(group, SWT.BORDER); - commitPrefixProgress.setText(progressPrefix); - commitPrefixProgress.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - } - - private Button createButton(Composite parent, String text) { - Button button = new Button(parent, SWT.TRAIL); - button.setText(text); - button.setVisible(true); - return button; - } -} |