Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 149399 Details for
Bug 291084
make time tracking optional and opt-in
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
updated patch
clipboard.txt (text/plain), 63.69 KB, created by
Steffen Pingel
on 2009-10-12 19:04:49 EDT
(
hide
)
Description:
updated patch
Filename:
MIME Type:
Creator:
Steffen Pingel
Created:
2009-10-12 19:04:49 EDT
Size:
63.69 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.tasks.ui >Index: src/org/eclipse/mylyn/internal/tasks/ui/messages.properties >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/messages.properties,v >retrieving revision 1.15 >diff -u -r1.15 messages.properties >--- src/org/eclipse/mylyn/internal/tasks/ui/messages.properties 7 Oct 2009 22:17:56 -0000 1.15 >+++ src/org/eclipse/mylyn/internal/tasks/ui/messages.properties 12 Oct 2009 23:07:47 -0000 >@@ -38,6 +38,7 @@ > ScheduleTaskMenuContributor_Not_Scheduled=Not Scheduled > ScheduleTaskMenuContributor_Schedule_for=Schedule for > >+TaskActivationExternalizationParticipant_Task_Activation_History=Task Activation History > TaskHistoryDropDown_Activate_Task_=Activate Task... > TaskHistoryDropDown_Deactivate_Task=Deactivate Task > >Index: src/org/eclipse/mylyn/internal/tasks/ui/Messages.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/Messages.java,v >retrieving revision 1.10 >diff -u -r1.10 Messages.java >--- src/org/eclipse/mylyn/internal/tasks/ui/Messages.java 7 Oct 2009 22:17:56 -0000 1.10 >+++ src/org/eclipse/mylyn/internal/tasks/ui/Messages.java 12 Oct 2009 23:07:46 -0000 >@@ -63,6 +63,8 @@ > > public static String ScheduleTaskMenuContributor_Schedule_for; > >+ public static String TaskActivationExternalizationParticipant_Task_Activation_History; >+ > public static String TaskHistoryDropDown_Activate_Task_; > > public static String TaskHistoryDropDown_Deactivate_Task; >Index: src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java,v >retrieving revision 1.123 >diff -u -r1.123 TasksUiPlugin.java >--- src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java 8 Oct 2009 03:41:16 -0000 1.123 >+++ src/org/eclipse/mylyn/internal/tasks/ui/TasksUiPlugin.java 12 Oct 2009 23:07:46 -0000 >@@ -35,6 +35,7 @@ > import org.eclipse.core.resources.ResourcesPlugin; > import org.eclipse.core.runtime.Assert; > import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IPath; > import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.ISafeRunnable; > import org.eclipse.core.runtime.IStatus; >@@ -91,6 +92,7 @@ > import org.eclipse.mylyn.tasks.ui.AbstractTaskRepositoryLinkProvider; > import org.eclipse.mylyn.tasks.ui.TasksUi; > import org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditorPageFactory; >+import org.eclipse.osgi.util.NLS; > import org.eclipse.swt.graphics.Image; > import org.eclipse.swt.widgets.Display; > import org.eclipse.ui.IStartup; >@@ -355,6 +357,8 @@ > > private final Set<IRepositoryModelListener> listeners = new HashSet<IRepositoryModelListener>(); > >+ private File activationHistoryFile; >+ > private static TaskList taskList; > > private static RepositoryModel repositoryModel; >@@ -413,6 +417,7 @@ > } > } > } >+ > //taskActivityMonitor.reloadActivityTime(); > } catch (Throwable t) { > StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, >@@ -444,7 +449,6 @@ > activeContextExternalizationParticipant.registerListeners(); > return new Status(IStatus.OK, TasksUiPlugin.ID_PLUGIN, IStatus.OK, "", null); //$NON-NLS-1$ > } >- > } > > public TasksUiPlugin() { >@@ -514,6 +518,7 @@ > taskList.addChangeListener(taskListExternalizationParticipant); > > taskActivityManager = new TaskActivityManager(repositoryManager, taskList); >+ > taskActivityManager.addActivationListener(taskListExternalizationParticipant); > > // initialize >@@ -579,6 +584,15 @@ > taskActivityManager.addActivityListener(ACTIVITY_EXTERNALIZTAION_PARTICIPANT); > taskActivityMonitor.setExternalizationParticipant(ACTIVITY_EXTERNALIZTAION_PARTICIPANT); > >+ // initialize externalization for task activation history >+ IPath stateLocation = Platform.getStateLocation(getBundle()); >+ activationHistoryFile = stateLocation.append("TaskActivationHistory.xml").toFile(); //$NON-NLS-1$ >+ TaskActivationExternalizationParticipant taskActivationExternalizationParticipant = new TaskActivationExternalizationParticipant( >+ externalizationManager, taskList, taskActivityManager.getTaskActivationHistory(), >+ activationHistoryFile); >+ taskActivityManager.addActivationListener(taskActivationExternalizationParticipant); >+ externalizationManager.addParticipant(taskActivationExternalizationParticipant); >+ > // initialize managers > initializeDataSources(); > >@@ -646,8 +660,8 @@ > repositoryManager.addRepository(taskRepository); > } > } catch (Throwable t) { >- StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, >- "Could not load repository template", t)); //$NON-NLS-1$ >+ StatusHandler.log(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, NLS.bind( >+ "Could not load repository template for repository {0}", template.repositoryUrl), t)); //$NON-NLS-1$ > } > } > } >@@ -799,6 +813,26 @@ > taskActivityMonitor.reloadActivityTime(); > taskActivityManager.reloadPlanningData(); > >+ if (!activationHistoryFile.exists() && taskActivityManager.getTaskActivationHistory().getSize() == 0) { >+ // fall back to activity history >+ List<ITask> tasks = taskActivityMonitor.getActivationHistory(); >+ for (ITask task : tasks) { >+ taskActivityManager.getTaskActivationHistory().addTask((AbstractTask) task); >+ } >+ } >+ >+ if (!MonitorUiPlugin.getDefault().getPreferenceStore().getBoolean( >+ MonitorUiPlugin.ACTIVITY_TRACKING_ENABLED + ".checked")) { //$NON-NLS-1$ >+ if (!taskActivityMonitor.getActivationHistory().isEmpty()) { >+ // tasks have been active before so fore preference enabled >+ MonitorUiPlugin.getDefault().getPreferenceStore().setValue(MonitorUiPlugin.ACTIVITY_TRACKING_ENABLED, >+ true); >+ } >+ MonitorUiPlugin.getDefault().getPreferenceStore().setValue( >+ MonitorUiPlugin.ACTIVITY_TRACKING_ENABLED + ".checked", true); //$NON-NLS-1$ >+ MonitorUiPlugin.getDefault().savePluginPreferences(); >+ } >+ > // inform listeners that initialization is complete > for (final IRepositoryModelListener listener : listeners) { > SafeRunner.run(new ISafeRunnable() { >Index: src/org/eclipse/mylyn/internal/tasks/ui/TaskActivityMonitor.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskActivityMonitor.java,v >retrieving revision 1.23 >diff -u -r1.23 TaskActivityMonitor.java >--- src/org/eclipse/mylyn/internal/tasks/ui/TaskActivityMonitor.java 24 Jul 2009 12:05:46 -0000 1.23 >+++ src/org/eclipse/mylyn/internal/tasks/ui/TaskActivityMonitor.java 12 Oct 2009 23:07:46 -0000 >@@ -11,6 +11,7 @@ > > package org.eclipse.mylyn.internal.tasks.ui; > >+import java.util.ArrayList; > import java.util.List; > > import org.eclipse.core.runtime.IStatus; >@@ -42,6 +43,8 @@ > > private final TaskList taskList; > >+ private final List<ITask> activationHistory; >+ > private final AbstractContextListener CONTEXT_LISTENER = new AbstractContextListener() { > > @Override >@@ -64,6 +67,7 @@ > this.taskActivityManager = taskActivityManager; > this.contextManager = contextManager; > this.taskList = TasksUiPlugin.getTaskList(); >+ this.activationHistory = new ArrayList<ITask>(); > } > > public void start() { >@@ -77,7 +81,7 @@ > if ((event.getDelta().equals(InteractionContextManager.ACTIVITY_DELTA_ACTIVATED))) { > AbstractTask activatedTask = taskList.getTask(event.getStructureHandle()); > if (activatedTask != null) { >- taskActivityManager.getTaskActivationHistory().addTask(activatedTask); >+ activationHistory.add(activatedTask); > return true; > } > } >@@ -119,6 +123,7 @@ > } > > public void reloadActivityTime() { >+ activationHistory.clear(); > taskActivityManager.clearActivity(); > List<InteractionEvent> events = contextManager.getActivityMetaContext().getInteractionHistory(); > for (InteractionEvent event : events) { >@@ -129,17 +134,21 @@ > /** > * Returns the task corresponding to the interaction event history item at the specified position > */ >- protected ITask getHistoryTaskAt(int pos) { >- InteractionEvent event = contextManager.getActivityMetaContext().getInteractionHistory().get(pos); >- if (event.getDelta().equals(InteractionContextManager.ACTIVITY_DELTA_ACTIVATED)) { >- return TasksUiPlugin.getTaskList().getTask(event.getStructureHandle()); >- } else { >- return null; >- } >- } >+// protected ITask getHistoryTaskAt(int pos) { >+// InteractionEvent event = contextManager.getActivityMetaContext().getInteractionHistory().get(pos); >+// if (event.getDelta().equals(InteractionContextManager.ACTIVITY_DELTA_ACTIVATED)) { >+// return TasksUiPlugin.getTaskList().getTask(event.getStructureHandle()); >+// } else { >+// return null; >+// } >+// } > > public void setExternalizationParticipant(ActivityExternalizationParticipant participant) { > this.externalizationParticipant = participant; > } > >+ public List<ITask> getActivationHistory() { >+ return new ArrayList<ITask>(activationHistory); >+ } >+ > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java,v >retrieving revision 1.18 >diff -u -r1.18 ActivityExternalizationParticipant.java >--- src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java 24 Jul 2009 12:05:46 -0000 1.18 >+++ src/org/eclipse/mylyn/internal/tasks/ui/ActivityExternalizationParticipant.java 12 Oct 2009 23:07:46 -0000 >@@ -17,7 +17,9 @@ > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.jobs.ISchedulingRule; >+import org.eclipse.jface.util.IPropertyChangeListener; > import org.eclipse.mylyn.internal.context.core.ContextCorePlugin; >+import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin; > import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants; > import org.eclipse.mylyn.internal.tasks.core.externalization.AbstractExternalizationParticipant; > import org.eclipse.mylyn.internal.tasks.core.externalization.ExternalizationManager; >@@ -40,6 +42,13 @@ > > public ActivityExternalizationParticipant(ExternalizationManager manager) { > this.manager = manager; >+ MonitorUiPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(new IPropertyChangeListener() { >+ public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) { >+ if (event.getProperty().equals(MonitorUiPlugin.ACTIVITY_TRACKING_ENABLED)) { >+ requestSave(); >+ } >+ } >+ }); > } > > @Override >@@ -47,7 +56,8 @@ > Assert.isNotNull(context); > switch (context.getKind()) { > case SAVE: >- if (ContextCorePlugin.getDefault() != null && ContextCorePlugin.getContextManager() != null) { >+ if (ContextCorePlugin.getDefault() != null && MonitorUiPlugin.getDefault().isActivityTrackingEnabled() >+ && ContextCorePlugin.getContextManager() != null) { > setDirty(false); > ContextCorePlugin.getContextManager().saveActivityMetaContext(); > } >@@ -105,10 +115,14 @@ > > public void elapsedTimeUpdated(ITask task, long newElapsedTime) { > if (System.currentTimeMillis() - lastUpdate > 1000 * 60) { >- setDirty(true); >- manager.requestSave(); >- lastUpdate = System.currentTimeMillis(); >+ requestSave(); > } > } > >+ private void requestSave() { >+ setDirty(true); >+ manager.requestSave(); >+ lastUpdate = System.currentTimeMillis(); >+ } >+ > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPlanningPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPlanningPart.java,v >retrieving revision 1.27 >diff -u -r1.27 TaskEditorPlanningPart.java >--- src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPlanningPart.java 12 Oct 2009 09:19:54 -0000 1.27 >+++ src/org/eclipse/mylyn/internal/tasks/ui/editors/TaskEditorPlanningPart.java 12 Oct 2009 23:07:47 -0000 >@@ -88,4 +88,8 @@ > part.dispose(); > } > >+ public PlanningPart getPlanningPart() { >+ return part; >+ } >+ > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/editors/PlanningPart.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/editors/PlanningPart.java,v >retrieving revision 1.26 >diff -u -r1.26 PlanningPart.java >--- src/org/eclipse/mylyn/internal/tasks/ui/editors/PlanningPart.java 12 Oct 2009 09:19:54 -0000 1.26 >+++ src/org/eclipse/mylyn/internal/tasks/ui/editors/PlanningPart.java 12 Oct 2009 23:07:47 -0000 >@@ -16,17 +16,16 @@ > > import org.eclipse.core.runtime.Assert; > import org.eclipse.jface.action.ToolBarManager; >-import org.eclipse.jface.dialogs.MessageDialog; > import org.eclipse.jface.layout.GridDataFactory; > import org.eclipse.jface.text.ITextListener; > import org.eclipse.jface.text.TextEvent; >+import org.eclipse.jface.util.IPropertyChangeListener; > import org.eclipse.mylyn.commons.core.DateUtil; >-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages; >+import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin; > import org.eclipse.mylyn.internal.provisional.commons.ui.CommonTextSupport; > import org.eclipse.mylyn.internal.provisional.commons.ui.CommonUiUtil; > import org.eclipse.mylyn.internal.provisional.commons.ui.DatePicker; > import org.eclipse.mylyn.internal.tasks.core.AbstractTask; >-import org.eclipse.mylyn.internal.tasks.core.DateRange; > import org.eclipse.mylyn.internal.tasks.core.DayDateRange; > import org.eclipse.mylyn.internal.tasks.core.ITaskListChangeListener; > import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil; >@@ -35,7 +34,6 @@ > import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; > import org.eclipse.mylyn.internal.tasks.ui.util.PlatformUtil; > import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; >-import org.eclipse.mylyn.monitor.ui.MonitorUi; > import org.eclipse.mylyn.tasks.core.ITask; > import org.eclipse.mylyn.tasks.core.ITaskActivityListener; > import org.eclipse.mylyn.tasks.core.TaskActivityAdapter; >@@ -65,10 +63,7 @@ > import org.eclipse.ui.forms.IManagedForm; > import org.eclipse.ui.forms.events.ExpansionAdapter; > import org.eclipse.ui.forms.events.ExpansionEvent; >-import org.eclipse.ui.forms.events.HyperlinkAdapter; >-import org.eclipse.ui.forms.events.HyperlinkEvent; > import org.eclipse.ui.forms.widgets.FormToolkit; >-import org.eclipse.ui.forms.widgets.ImageHyperlink; > import org.eclipse.ui.forms.widgets.Section; > > /** >@@ -86,14 +81,12 @@ > > private DatePicker dueDatePicker; > >- private Text elapsedTimeText; >+ private Text activeTimeText; > >- private Spinner estimatedTime; >+ private Spinner estimatedTimeSpinner; > > private ScheduleDatePicker scheduleDatePicker; > >- private Label scheduledText; >- > private static final String PERSONAL_NOTES = Messages.PlanningPart_Personal_Notes; > > private final ITaskListChangeListener TASK_LIST_LISTENER = new TaskListChangeAdapter() { >@@ -126,21 +119,36 @@ > if (task.equals(PlanningPart.this.getTask())) { > PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { > public void run() { >- if (elapsedTimeText != null && !elapsedTimeText.isDisposed()) { >- updateElapsedTime(); >+ if (activeTimeText != null && !activeTimeText.isDisposed()) { >+ updateActiveTime(); > } > } > }); >+ } >+ } >+ }; > >+ private final IPropertyChangeListener ACTIVITY_PROPERTY_LISTENER = new org.eclipse.jface.util.IPropertyChangeListener() { >+ >+ public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) { >+ if (event.getProperty().equals(MonitorUiPlugin.ACTIVITY_TRACKING_ENABLED)) { >+ PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { >+ public void run() { >+ if (activeTimeText != null && !activeTimeText.isDisposed()) { >+ updateActiveTime(); >+ } >+ } >+ }); > } > } >+ > }; > > private CommonTextSupport textSupport; > > private TaskFormPage page; > >- private Composite actualTimeComposite; >+ private Composite activeTimeComposite; > > private ToolBarManager toolBarManager; > >@@ -150,10 +158,11 @@ > > private Composite sectionClient; > >- private Composite toolbarComposite; >+ private boolean activeTimeEnabled; > > public PlanningPart(int sectionStyle) { > super(sectionStyle, Messages.PersonalPart_Personal_Planning); >+ this.activeTimeEnabled = true; > this.needsNotes = true; > } > >@@ -199,8 +208,8 @@ > getTask().setReminded(false); > } > >- if (estimatedTime != null) { >- getTask().setEstimatedTimeHours(estimatedTime.getSelection()); >+ if (estimatedTimeSpinner != null) { >+ getTask().setEstimatedTimeHours(estimatedTimeSpinner.getSelection()); > } > > if (dueDatePicker != null && dueDatePicker.getDate() != null) { >@@ -239,6 +248,7 @@ > > TasksUiInternal.getTaskList().addChangeListener(TASK_LIST_LISTENER); > TasksUiPlugin.getTaskActivityManager().addActivityListener(timingListener); >+ MonitorUiPlugin.getDefault().getPreferenceStore().addPropertyChangeListener(ACTIVITY_PROPERTY_LISTENER); > > setSection(toolkit, section); > return section; >@@ -247,7 +257,7 @@ > private void expandSection(FormToolkit toolkit, Section section) { > sectionClient = toolkit.createComposite(section); > GridLayout layout = EditorUtil.createSectionClientLayout(); >- layout.numColumns = (needsDueDate) ? 8 : 6; >+ layout.numColumns = (needsDueDate) ? 6 : 4; > sectionClient.setLayout(layout); > > createScheduledDatePicker(toolkit, sectionClient); >@@ -259,7 +269,7 @@ > > createEstimatedTime(toolkit, sectionClient); > >- createActualTime(toolkit, sectionClient); >+// createActualTime(toolkit, composite); > > if (needsNotes()) { > createNotesArea(toolkit, sectionClient, layout.numColumns); >@@ -352,66 +362,70 @@ > > } > >- private void createActualTime(FormToolkit toolkit, Composite toolbarComposite) { >- actualTimeComposite = toolkit.createComposite(toolbarComposite); >- actualTimeComposite.setBackground(null); >- actualTimeComposite.setBackgroundMode(SWT.INHERIT_FORCE); >+ private void createActiveTimeControl(FormToolkit toolkit, Composite toolbarComposite) { >+ activeTimeComposite = toolkit.createComposite(toolbarComposite); >+ activeTimeComposite.setBackground(null); >+ activeTimeComposite.setBackgroundMode(SWT.INHERIT_FORCE); > RowLayout rowLayout = new RowLayout(); > rowLayout.center = true; > rowLayout.marginTop = 0; > rowLayout.marginBottom = 0; > rowLayout.marginLeft = 0; > rowLayout.marginRight = 0; >- actualTimeComposite.setLayout(rowLayout); >+ activeTimeComposite.setLayout(rowLayout); > >- Label label = toolkit.createLabel(actualTimeComposite, Messages.TaskEditorPlanningPart_Active); >+ Label label = toolkit.createLabel(activeTimeComposite, Messages.TaskEditorPlanningPart_Active); > label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); > label.setToolTipText(Messages.TaskEditorPlanningPart_Time_working_on_this_task); > label.setBackground(null); > >- elapsedTimeText = new Text(actualTimeComposite, SWT.FLAT | SWT.READ_ONLY); >- elapsedTimeText.setFont(EditorUtil.TEXT_FONT); >- elapsedTimeText.setData(FormToolkit.KEY_DRAW_BORDER, Boolean.FALSE); >- toolkit.adapt(elapsedTimeText, true, false); >- elapsedTimeText.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); >- elapsedTimeText.setBackground(null); >- updateElapsedTime(); >- elapsedTimeText.setEditable(false); >- >- ImageHyperlink resetActivityTimeButton = toolkit.createImageHyperlink(actualTimeComposite, SWT.NONE); >- resetActivityTimeButton.setBackground(null); >- resetActivityTimeButton.setImage(CommonImages.getImage(CommonImages.FIND_CLEAR_DISABLED)); >- resetActivityTimeButton.setHoverImage(CommonImages.getImage(CommonImages.FIND_CLEAR)); >- resetActivityTimeButton.setToolTipText(Messages.TaskEditorPlanningPart_Reset); >- resetActivityTimeButton.addHyperlinkListener(new HyperlinkAdapter() { >- @Override >- public void linkActivated(HyperlinkEvent e) { >- if (MessageDialog.openConfirm(getControl().getShell(), >- Messages.TaskEditorPlanningPart_Confirm_Activity_Time_Deletion, >- Messages.TaskEditorPlanningPart_Do_you_wish_to_reset_your_activity_time_on_this_task_)) { >- MonitorUi.getActivityContextManager().removeActivityTime(getTask().getHandleIdentifier(), 0l, >- System.currentTimeMillis()); >- } >- } >- }); >- } >+ activeTimeText = new Text(activeTimeComposite, SWT.FLAT | SWT.READ_ONLY); >+ activeTimeText.setFont(EditorUtil.TEXT_FONT); >+ activeTimeText.setData(FormToolkit.KEY_DRAW_BORDER, Boolean.FALSE); >+ toolkit.adapt(activeTimeText, true, false); >+ activeTimeText.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); >+ activeTimeText.setBackground(null); >+ updateActiveTime(); >+ activeTimeText.setEditable(false); >+ >+// ImageHyperlink resetActivityTimeButton = toolkit.createImageHyperlink(activeTimeComposite, SWT.NONE); >+// resetActivityTimeButton.setBackground(null); >+// resetActivityTimeButton.setImage(CommonImages.getImage(CommonImages.FIND_CLEAR_DISABLED)); >+// resetActivityTimeButton.setHoverImage(CommonImages.getImage(CommonImages.FIND_CLEAR)); >+// resetActivityTimeButton.setToolTipText(Messages.TaskEditorPlanningPart_Reset); >+// resetActivityTimeButton.addHyperlinkListener(new HyperlinkAdapter() { >+// @Override >+// public void linkActivated(HyperlinkEvent e) { >+// if (MessageDialog.openConfirm(getControl().getShell(), >+// Messages.TaskEditorPlanningPart_Confirm_Activity_Time_Deletion, >+// Messages.TaskEditorPlanningPart_Do_you_wish_to_reset_your_activity_time_on_this_task_)) { >+// MonitorUi.getActivityContextManager().removeActivityTime(getTask().getHandleIdentifier(), 0l, >+// System.currentTimeMillis()); >+// } >+// } >+// }); >+ } >+ >+ private void updateActiveTime() { >+ long elapsedTime = 0; >+ if (isActiveTimeEnabled() && MonitorUiPlugin.getDefault().isActivityTrackingEnabled()) { >+ elapsedTime = TasksUiPlugin.getTaskActivityManager().getElapsedTime(getTask()); >+ } > >- private void updateElapsedTime() { >- long elapsedTime = TasksUiPlugin.getTaskActivityManager().getElapsedTime(getTask()); > if (elapsedTime > 0) { >- if (actualTimeComposite != null && !actualTimeComposite.isVisible()) { >- actualTimeComposite.setVisible(true); >+ if (activeTimeComposite != null && !activeTimeComposite.isVisible()) { >+ activeTimeComposite.setVisible(true); > } > } else { >- if (actualTimeComposite != null) { >- actualTimeComposite.setVisible(false); >+ if (activeTimeComposite != null) { >+ activeTimeComposite.setVisible(false); > } > } > String elapsedTimeString = DateUtil.getFormattedDurationShort(elapsedTime); > if (elapsedTimeString.equals("")) { //$NON-NLS-1$ > elapsedTimeString = Messages.TaskEditorPlanningPart_0_SECOUNDS; > } >- elapsedTimeText.setText(elapsedTimeString); >+ activeTimeText.setText(elapsedTimeString); > > } > >@@ -450,28 +464,39 @@ > > private void createEstimatedTime(FormToolkit toolkit, Composite parent) { > Label label = toolkit.createLabel(parent, Messages.TaskEditorPlanningPart_Estimated); >- label.setToolTipText(Messages.PlanningPart_Estimated_Time_Hours); > label.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); > > Composite composite = createComposite(parent, 2, toolkit); > > // Estimated time >- estimatedTime = new Spinner(composite, SWT.FLAT); >- estimatedTime.setDigits(0); >- estimatedTime.setMaximum(9999); >- estimatedTime.setMinimum(0); >- estimatedTime.setIncrement(1); >- estimatedTime.setSelection(getTask().getEstimatedTimeHours()); >+ estimatedTimeSpinner = new Spinner(composite, SWT.FLAT); >+ estimatedTimeSpinner.setDigits(0); >+ estimatedTimeSpinner.setMaximum(10000); >+ estimatedTimeSpinner.setMinimum(0); >+ estimatedTimeSpinner.setIncrement(1); >+ estimatedTimeSpinner.setSelection(getTask().getEstimatedTimeHours()); > if (!PlatformUtil.spinnerHasNativeBorder()) { >- estimatedTime.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER); >+ estimatedTimeSpinner.setData(FormToolkit.KEY_DRAW_BORDER, FormToolkit.TREE_BORDER); > } >- estimatedTime.addModifyListener(new ModifyListener() { >+ estimatedTimeSpinner.addModifyListener(new ModifyListener() { > public void modifyText(ModifyEvent e) { >- if (getTask().getEstimatedTimeHours() != estimatedTime.getSelection()) { >+ if (getTask().getEstimatedTimeHours() != estimatedTimeSpinner.getSelection()) { > markDirty(); > } > } > }); >+ >+// ImageHyperlink clearEstimated = toolkit.createImageHyperlink(composite, SWT.NONE); >+// clearEstimated.setImage(CommonImages.getImage(CommonImages.FIND_CLEAR_DISABLED)); >+// clearEstimated.setHoverImage(CommonImages.getImage(CommonImages.FIND_CLEAR)); >+// clearEstimated.setToolTipText(Messages.TaskEditorPlanningPart_Clear); >+// clearEstimated.addHyperlinkListener(new HyperlinkAdapter() { >+// @Override >+// public void linkActivated(HyperlinkEvent e) { >+// estimatedTime.setSelection(0); >+// markDirty(); >+// } >+// }); > toolkit.paintBordersFor(composite); > } > >@@ -503,6 +528,7 @@ > public void dispose() { > TasksUiPlugin.getTaskActivityManager().removeActivityListener(timingListener); > TasksUiInternal.getTaskList().removeChangeListener(TASK_LIST_LISTENER); >+ MonitorUiPlugin.getDefault().getPreferenceStore().removePropertyChangeListener(ACTIVITY_PROPERTY_LISTENER); > > if (toolBarManager != null) { > toolBarManager.dispose(); >@@ -512,7 +538,7 @@ > @Override > protected void setSection(FormToolkit toolkit, Section section) { > if (section.getTextClient() == null) { >- toolbarComposite = toolkit.createComposite(section); >+ Composite toolbarComposite = toolkit.createComposite(section); > toolbarComposite.setBackground(null); > RowLayout rowLayout = new RowLayout(); > rowLayout.marginLeft = 0; >@@ -522,8 +548,7 @@ > rowLayout.center = true; > toolbarComposite.setLayout(rowLayout); > >- //createActualTime(toolkit, toolbarComposite); >- createScheduledText(toolkit, toolbarComposite); >+ createActiveTimeControl(toolkit, toolbarComposite); > > ToolBarManager toolBarManager = new ToolBarManager(SWT.FLAT); > fillToolBar(toolBarManager); >@@ -542,17 +567,6 @@ > super.setSection(toolkit, section); > } > >- private void createScheduledText(FormToolkit toolkit, Composite toolbarComposite) { >- DateRange scheduledForDate = getTask().getScheduledForDate(); >- String scheduledString = Messages.TaskEditorPlanningPart_No_scheduled_date; >- if (scheduledForDate != null) { >- scheduledString = scheduledForDate.toString(); >- } >- scheduledText = toolkit.createLabel(toolbarComposite, scheduledString, SWT.READ_ONLY); >- scheduledText.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); >- scheduledText.setBackground(null); >- } >- > protected void fillToolBar(ToolBarManager toolBarManager) { > } > >@@ -574,30 +588,30 @@ > > @Override > protected void refresh(boolean discardChanges) { >- if (getTask().getScheduledForDate() != null) { >- if (scheduleDatePicker != null && !scheduleDatePicker.isDisposed()) { >+ if (scheduleDatePicker != null && !scheduleDatePicker.isDisposed()) { >+ if (getTask().getScheduledForDate() != null) { > scheduleDatePicker.setScheduledDate(getTask().getScheduledForDate()); >- } >- if (scheduledText != null && !scheduledText.isDisposed()) { >- scheduledText.setText(getTask().getScheduledForDate().toString()); >- toolbarComposite.getParent().layout(true); >- >- } >- } else { >- if (scheduleDatePicker != null && !scheduleDatePicker.isDisposed()) { >+ } else { > scheduleDatePicker.setScheduledDate(null); > } >- if (scheduledText != null && !scheduledText.isDisposed()) { >- scheduledText.setText(Messages.TaskEditorPlanningPart_No_scheduled_date); >- toolbarComposite.getParent().layout(true); >- } > } > >- if (estimatedTime != null && !estimatedTime.isDisposed()) { >- estimatedTime.setSelection(getTask().getEstimatedTimeHours()); >+ if (estimatedTimeSpinner != null && !estimatedTimeSpinner.isDisposed()) { >+ estimatedTimeSpinner.setSelection(getTask().getEstimatedTimeHours()); > } > > // TODO refresh notes > } > >+ public boolean isActiveTimeEnabled() { >+ return activeTimeEnabled; >+ } >+ >+ public void setActiveTimeEnabled(boolean activeTimeEnabled) { >+ this.activeTimeEnabled = activeTimeEnabled; >+ if (activeTimeComposite != null && !activeTimeComposite.isDisposed()) { >+ updateActiveTime(); >+ } >+ } >+ > } >Index: src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java,v >retrieving revision 1.1 >diff -u -r1.1 Messages.java >--- src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java 5 Dec 2008 02:25:12 -0000 1.1 >+++ src/org/eclipse/mylyn/internal/tasks/ui/preferences/Messages.java 12 Oct 2009 23:07:47 -0000 >@@ -41,6 +41,8 @@ > > public static String TasksUiPreferencePage_Enable_inactivity_timeouts; > >+ public static String TasksUiPreferencePage_Enable_Time_Tracking; >+ > public static String TasksUiPreferencePage_Error_applying_Task_List_data_directory_changes; > > public static String TasksUiPreferencePage_Folder_Selection; >@@ -79,6 +81,8 @@ > > public static String TasksUiPreferencePage_Task_Timing; > >+ public static String TasksUiPreferencePage_Track_Time_Spent; >+ > public static String TasksUiPreferencePage_Use_the_Restore_dialog_to_recover_missing_tasks; > > public static String TasksUiPreferencePage_Web_Browser; >Index: src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java,v >retrieving revision 1.36 >diff -u -r1.36 TasksUiPreferencePage.java >--- src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java 24 Jul 2009 12:05:47 -0000 1.36 >+++ src/org/eclipse/mylyn/internal/tasks/ui/preferences/TasksUiPreferencePage.java 12 Oct 2009 23:07:47 -0000 >@@ -99,6 +99,12 @@ > > private Combo weekStartCombo; > >+ private Button activityTrackingEnabledButton; >+ >+ private Label timeoutLabel1; >+ >+ private Label timeoutLabel2; >+ > public TasksUiPreferencePage() { > super(); > setPreferenceStore(TasksUiPlugin.getDefault().getPreferenceStore()); >@@ -112,20 +118,20 @@ > GridLayout layout = new GridLayout(1, false); > container.setLayout(layout); > >- if (getContainer() instanceof IWorkbenchPreferenceContainer) { >- String message = Messages.TasksUiPreferencePage_See_X_for_configuring_Task_List_colors; >- new PreferenceLinkArea(container, SWT.NONE, "org.eclipse.ui.preferencePages.ColorsAndFonts", message, //$NON-NLS-1$ >- (IWorkbenchPreferenceContainer) getContainer(), null); >- } >- > createTaskRefreshScheduleGroup(container); > createSchedulingGroup(container); > createOpenWith(container); >+ createTaskActivityGroup(container); > Composite advanced = createAdvancedSection(container); >- createTaskActivityGroup(advanced); > createTaskDataControl(advanced); >- createLinks(container); > >+ if (getContainer() instanceof IWorkbenchPreferenceContainer) { >+ String message = Messages.TasksUiPreferencePage_See_X_for_configuring_Task_List_colors; >+ new PreferenceLinkArea(advanced, SWT.NONE, "org.eclipse.ui.preferencePages.ColorsAndFonts", message, //$NON-NLS-1$ >+ (IWorkbenchPreferenceContainer) getContainer(), null); >+ } >+ >+ createLinks(advanced); > updateRefreshGroupEnablements(); > applyDialogFont(container); > return container; >@@ -199,7 +205,9 @@ > timeoutEnabledButton.getSelection()); > MonitorUiPlugin.getDefault().getPreferenceStore().setValue(ActivityContextManager.ACTIVITY_TIMEOUT, > timeoutMinutes.getSelection() * (60 * 1000)); >- //backupNow.setEnabled(true); >+ >+ MonitorUiPlugin.getDefault().getPreferenceStore().setValue(MonitorUiPlugin.ACTIVITY_TRACKING_ENABLED, >+ activityTrackingEnabledButton.getSelection()); > > String taskDirectory = taskDirectoryText.getText(); > taskDirectory = taskDirectory.replaceAll(BACKSLASH_MULTI, FORWARDSLASH); >@@ -262,6 +270,10 @@ > timeoutMinutes.setSelection(minutes); > timeoutEnabledButton.setSelection(MonitorUiPlugin.getDefault().getPreferenceStore().getBoolean( > ActivityContextManager.ACTIVITY_TIMEOUT_ENABLED)); >+ >+ activityTrackingEnabledButton.setSelection(MonitorUiPlugin.getDefault().getPreferenceStore().getBoolean( >+ MonitorUiPlugin.ACTIVITY_TRACKING_ENABLED)); >+ > return true; > } > >@@ -306,6 +318,10 @@ > timeoutMinutes.setSelection(activityTimeoutMinutes); > timeoutEnabledButton.setSelection(MonitorUiPlugin.getDefault().getPreferenceStore().getDefaultBoolean( > ActivityContextManager.ACTIVITY_TIMEOUT_ENABLED)); >+ >+ activityTrackingEnabledButton.setSelection(MonitorUiPlugin.getDefault().getPreferenceStore().getDefaultBoolean( >+ MonitorUiPlugin.ACTIVITY_TRACKING_ENABLED)); >+ > updateRefreshGroupEnablements(); > } > >@@ -413,54 +429,11 @@ > > if (taskDataDirectoryAction != IDialogConstants.CANCEL_ID) { > taskDirectoryText.setText(dir); >-// backupFolderText.setText(dir + FORWARDSLASH + ITasksCoreConstants.DEFAULT_BACKUP_FOLDER_NAME); >-// backupNow.setEnabled(false); > } > } > > }); > >-// Composite backupComposite = new Composite(taskDataGroup, SWT.NULL); >-// gridLayout = new GridLayout(5, false); >-// gridLayout.marginWidth = 0; >-// gridLayout.marginHeight = 0; >-// backupComposite.setLayout(gridLayout); >-// backupComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); >- >-// label = new Label(backupComposite, SWT.NULL); >-// label.setText("Backup every"); >-// backupScheduleTimeText = new Text(backupComposite, SWT.BORDER | SWT.RIGHT); >-// final GridData gridData_1 = new GridData(); >-// gridData_1.widthHint = 13; >-// backupScheduleTimeText.setLayoutData(gridData_1); >-// >-// backupScheduleTimeText.setText("" + getPreferenceStore().getInt(TasksUiPreferenceConstants.BACKUP_SCHEDULE)); >-// backupScheduleTimeText.addModifyListener(new ModifyListener() { >-// public void modifyText(ModifyEvent e) { >-// updateRefreshGroupEnablements(); >-// } >-// }); >-// >-// label = new Label(backupComposite, SWT.NONE); >-// label.setText("days to"); >- >-// String backupDirectory = TasksUiPlugin.getDefault().getBackupFolderPath();// getPreferenceStore().getString(TaskListPreferenceConstants.BACKUP_FOLDER); >-// backupDirectory = backupDirectory.replaceAll(BACKSLASH_MULTI, FORWARDSLASH); >-// backupFolderText = new Text(backupComposite, SWT.BORDER); >-// backupFolderText.setText(backupDirectory); >-// backupFolderText.setEditable(false); >-// backupFolderText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); >-// >-// backupNow = new Button(backupComposite, SWT.NONE); >-// backupNow.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); >-// backupNow.setText("Backup Now"); >-// backupNow.addSelectionListener(new SelectionAdapter() { >-// >-// @Override >-// public void widgetSelected(SelectionEvent e) { >-// TasksUiPlugin.getBackupManager().backupNow(true); >-// } >-// }); > } > > private void createSchedulingGroup(Composite container) { >@@ -485,71 +458,6 @@ > weekStartCombo.add(CommonMessages.Saturday); > weekStartCombo.select(getPreferenceStore().getInt(ITasksUiPreferenceConstants.WEEK_START_DAY) - 1); > >-// Label workWeekBeginLabel = new Label(group, SWT.NONE); >-// workWeekBeginLabel.setText(START_DAY_LABEL); >-// workWeekBegin = new Combo(group, SWT.READ_ONLY); >-// // Calendar.SUNDAY = 1 >-// workWeekBegin.add("SUNDAY"); >-// workWeekBegin.add("MONDAY"); >-// workWeekBegin.add("TUESDAY"); >-// workWeekBegin.add("WEDNESDAY"); >-// workWeekBegin.add("THURSDAY"); >-// workWeekBegin.add("FRIDAY"); >-// workWeekBegin.add("SATURDAY"); >-// workWeekBegin.select(getPreferenceStore().getInt(TaskListPreferenceConstants.PLANNING_STARTDAY) >-// - 1); >- >-// Label workWeekEndLabel = new Label(group, SWT.NONE); >-// workWeekEndLabel.setText(END_DAY_LABEL); >-// workWeekEnd = new Combo(group, SWT.READ_ONLY); >-// workWeekEnd.add("SUNDAY"); >-// workWeekEnd.add("MONDAY"); >-// workWeekEnd.add("TUESDAY"); >-// workWeekEnd.add("WEDNESDAY"); >-// workWeekEnd.add("THURSDAY"); >-// workWeekEnd.add("FRIDAY"); >-// workWeekEnd.add("SATURDAY"); >-// workWeekEnd.select(getPreferenceStore().getInt(TaskListPreferenceConstants.PLANNING_ENDDAY) >-// - 1); >- >-// Label hourDayStartLabel = new Label(group, SWT.NONE); >-// hourDayStartLabel.setText(START_HOUR_LABEL); >-// hourDayStart = new Spinner(group, SWT.BORDER); >-// hourDayStart.setDigits(0); >-// hourDayStart.setIncrement(1); >-// hourDayStart.setMaximum(23); >-// hourDayStart.setMinimum(0); >-// hourDayStart.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_STARTHOUR)); >-// hourDayStart.addSelectionListener(new SelectionAdapter() { >-// >-// @Override >-// public void widgetSelected(SelectionEvent e) { >-// updateRefreshGroupEnablements(); >-// } >-// >-// }); >-// >-// Label spacer = new Label(group, SWT.NONE); >-// GridDataFactory.fillDefaults().hint(40, SWT.DEFAULT).applyTo(spacer); >-// >-// Label hourDayEndLabel = new Label(group, SWT.NONE); >-// hourDayEndLabel.setText(END_HOUR_LABEL); >-// >-// hourDayEnd = new Spinner(group, SWT.BORDER); >-// hourDayEnd.setDigits(0); >-// hourDayEnd.setIncrement(1); >-// hourDayEnd.setMaximum(23); >-// hourDayEnd.setMinimum(0); >-// hourDayEnd.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_ENDHOUR)); >-// hourDayEnd.addSelectionListener(new SelectionAdapter() { >-// >-// @Override >-// public void widgetSelected(SelectionEvent e) { >-// updateRefreshGroupEnablements(); >-// } >-// >-// }); >- > } > > private void createTaskActivityGroup(Composite container) { >@@ -558,9 +466,24 @@ > group.setLayout(new GridLayout(3, false)); > group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); > >+ boolean activityTrackingEnabled = MonitorUiPlugin.getDefault().getPreferenceStore().getBoolean( >+ MonitorUiPlugin.ACTIVITY_TRACKING_ENABLED); >+ > boolean timeoutEnabled = MonitorUiPlugin.getDefault().getPreferenceStore().getBoolean( > ActivityContextManager.ACTIVITY_TIMEOUT_ENABLED); > >+ activityTrackingEnabledButton = new Button(group, SWT.CHECK); >+ activityTrackingEnabledButton.setText(Messages.TasksUiPreferencePage_Enable_Time_Tracking); >+ activityTrackingEnabledButton.setSelection(activityTrackingEnabled); >+ activityTrackingEnabledButton.setToolTipText(Messages.TasksUiPreferencePage_Track_Time_Spent); >+ activityTrackingEnabledButton.addSelectionListener(new SelectionAdapter() { >+ @Override >+ public void widgetSelected(SelectionEvent e) { >+ updateRefreshGroupEnablements(); >+ } >+ }); >+ GridDataFactory.swtDefaults().span(3, 1).applyTo(activityTrackingEnabledButton); >+ > timeoutEnabledButton = new Button(group, SWT.CHECK); > timeoutEnabledButton.setText(Messages.TasksUiPreferencePage_Enable_inactivity_timeouts); > timeoutEnabledButton.setSelection(timeoutEnabled); >@@ -573,8 +496,8 @@ > }); > GridDataFactory.swtDefaults().span(3, 1).applyTo(timeoutEnabledButton); > >- Label timeoutLabel = new Label(group, SWT.NONE); >- timeoutLabel.setText(Messages.TasksUiPreferencePage_Stop_time_accumulation_after); >+ timeoutLabel1 = new Label(group, SWT.NONE); >+ timeoutLabel1.setText(Messages.TasksUiPreferencePage_Stop_time_accumulation_after); > timeoutMinutes = new Spinner(group, SWT.BORDER); > timeoutMinutes.setDigits(0); > timeoutMinutes.setIncrement(5); >@@ -593,119 +516,14 @@ > > }); > >- timeoutLabel = new Label(group, SWT.NONE); >- timeoutLabel.setText(Messages.TasksUiPreferencePage_minutes_of_inactivity); >+ timeoutLabel2 = new Label(group, SWT.NONE); >+ timeoutLabel2.setText(Messages.TasksUiPreferencePage_minutes_of_inactivity); > >-// Label spacer = new Label(group, SWT.NONE); >-// GridDataFactory.fillDefaults().hint(40, SWT.DEFAULT).applyTo(spacer); >-// >-// Label hourDayEndLabel = new Label(group, SWT.NONE); >-// hourDayEndLabel.setText(END_HOUR_LABEL); >-// >-// hourDayEnd = new Spinner(group, SWT.BORDER); >-// hourDayEnd.setDigits(0); >-// hourDayEnd.setIncrement(1); >-// hourDayEnd.setMaximum(23); >-// hourDayEnd.setMinimum(0); >-// hourDayEnd.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_ENDHOUR)); >-// hourDayEnd.addSelectionListener(new SelectionAdapter() { >-// >-// @Override >-// public void widgetSelected(SelectionEvent e) { >-// updateRefreshGroupEnablements(); >-// } >-// >-// }); >- >- } >- >-// private void createSchedulingGroup(Composite container) { >-// Group group = new Group(container, SWT.SHADOW_ETCHED_IN); >-// group.setText(GROUP_WORK_WEEK_LABEL); >-// group.setLayout(new GridLayout(5, false)); >-// group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); >-// >-// // Label workWeekBeginLabel = new Label(group, SWT.NONE); >-// // workWeekBeginLabel.setText(START_DAY_LABEL); >-// // workWeekBegin = new Combo(group, SWT.READ_ONLY); >-// // // Calendar.SUNDAY = 1 >-// // workWeekBegin.add("SUNDAY"); >-// // workWeekBegin.add("MONDAY"); >-// // workWeekBegin.add("TUESDAY"); >-// // workWeekBegin.add("WEDNESDAY"); >-// // workWeekBegin.add("THURSDAY"); >-// // workWeekBegin.add("FRIDAY"); >-// // workWeekBegin.add("SATURDAY"); >-// // workWeekBegin.select(getPreferenceStore().getInt(TaskListPreferenceConstants.PLANNING_STARTDAY) >-// // - 1); >-// // >-// // Label workWeekEndLabel = new Label(group, SWT.NONE); >-// // workWeekEndLabel.setText(END_DAY_LABEL); >-// // workWeekEnd = new Combo(group, SWT.READ_ONLY); >-// // workWeekEnd.add("SUNDAY"); >-// // workWeekEnd.add("MONDAY"); >-// // workWeekEnd.add("TUESDAY"); >-// // workWeekEnd.add("WEDNESDAY"); >-// // workWeekEnd.add("THURSDAY"); >-// // workWeekEnd.add("FRIDAY"); >-// // workWeekEnd.add("SATURDAY"); >-// // workWeekEnd.select(getPreferenceStore().getInt(TaskListPreferenceConstants.PLANNING_ENDDAY) >-// // - 1); >-// >-// Label hourDayStartLabel = new Label(group, SWT.NONE); >-// hourDayStartLabel.setText(START_HOUR_LABEL); >-// hourDayStart = new Spinner(group, SWT.BORDER); >-// hourDayStart.setDigits(0); >-// hourDayStart.setIncrement(1); >-// hourDayStart.setMaximum(23); >-// hourDayStart.setMinimum(0); >-// hourDayStart.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_STARTHOUR)); >-// hourDayStart.addSelectionListener(new SelectionAdapter() { >-// >-// @Override >-// public void widgetSelected(SelectionEvent e) { >-// updateRefreshGroupEnablements(); >-// } >-// >-// }); >-// >-// Label spacer = new Label(group, SWT.NONE); >-// GridDataFactory.fillDefaults().hint(40, SWT.DEFAULT).applyTo(spacer); >-// >-// Label hourDayEndLabel = new Label(group, SWT.NONE); >-// hourDayEndLabel.setText(END_HOUR_LABEL); >-// >-// hourDayEnd = new Spinner(group, SWT.BORDER); >-// hourDayEnd.setDigits(0); >-// hourDayEnd.setIncrement(1); >-// hourDayEnd.setMaximum(23); >-// hourDayEnd.setMinimum(0); >-// hourDayEnd.setSelection(getPreferenceStore().getInt(TasksUiPreferenceConstants.PLANNING_ENDHOUR)); >-// hourDayEnd.addSelectionListener(new SelectionAdapter() { >-// >-// @Override >-// public void widgetSelected(SelectionEvent e) { >-// updateRefreshGroupEnablements(); >-// } >-// >-// }); >-// >-// } >+ } > > public void updateRefreshGroupEnablements() { > String errorMessage = null; > >-// try { >-// long number = Integer.parseInt(backupScheduleTimeText.getText()); >-// if (number <= 0) { >-// errorMessage = "Backup schedule time must be > 0"; >-// } else if (backupFolderText.getText() == "") { >-// errorMessage = "Backup destination folder must be specified"; >-// } >-// } catch (NumberFormatException e) { >-// errorMessage = "Backup schedule time must be valid integer"; >-// } >- > if (enableBackgroundSynch.getSelection()) { > try { > long number = Long.parseLong(synchScheduleTime.getText()); >@@ -717,17 +535,22 @@ > } > } > >-// if (hourDayEnd.getSelection() <= hourDayStart.getSelection()) { >-// errorMessage = "Planning: Work day start must be before end."; >-// } >- > setErrorMessage(errorMessage); > setValid(errorMessage == null); > >- synchScheduleTime.setEnabled(enableBackgroundSynch.getSelection()); >- >- timeoutMinutes.setEnabled(timeoutEnabledButton.getSelection()); >- >+ if (activityTrackingEnabledButton.getSelection()) { >+ timeoutEnabledButton.setEnabled(true); >+ synchScheduleTime.setEnabled(enableBackgroundSynch.getSelection()); >+ timeoutMinutes.setEnabled(timeoutEnabledButton.getSelection()); >+ timeoutLabel1.setEnabled(timeoutEnabledButton.getSelection()); >+ timeoutLabel2.setEnabled(timeoutEnabledButton.getSelection()); >+ } else { >+ timeoutEnabledButton.setEnabled(false); >+ synchScheduleTime.setEnabled(false); >+ timeoutMinutes.setEnabled(false); >+ timeoutLabel1.setEnabled(false); >+ timeoutLabel2.setEnabled(false); >+ } > } > > private String getMinutesString() { >Index: src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties,v >retrieving revision 1.3 >diff -u -r1.3 messages.properties >--- src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties 24 Jul 2009 12:05:47 -0000 1.3 >+++ src/org/eclipse/mylyn/internal/tasks/ui/preferences/messages.properties 12 Oct 2009 23:07:47 -0000 >@@ -16,6 +16,7 @@ > TasksUiPreferencePage_Destination_folder_does_not_exist=Destination folder does not exist. > 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 > TasksUiPreferencePage_Error_applying_Task_List_data_directory_changes=Error applying Task List data directory changes. The previous setting will be restored. > TasksUiPreferencePage_Folder_Selection=Folder Selection > TasksUiPreferencePage_If_disabled=If disabled, time accumulates while a task is active with no timeout due to inactivity. >@@ -34,7 +35,8 @@ > TasksUiPreferencePage_Task_Data=Task Data > TasksUiPreferencePage_Task_Data_Directory_Error=Task Data Directory Error > TasksUiPreferencePage_Task_Editing=Task Editing >-TasksUiPreferencePage_Task_Timing=Task Timing >+TasksUiPreferencePage_Task_Timing=Time Tracking >+TasksUiPreferencePage_Track_Time_Spent=Track time spent within Eclipse when a task is active > TasksUiPreferencePage_Use_the_Restore_dialog_to_recover_missing_tasks=Use the Restore dialog to recover missing tasks > TasksUiPreferencePage_Web_Browser=Web Browser > TasksUiPreferencePage_Week_Start=Week Start: >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties,v >retrieving revision 1.9 >diff -u -r1.9 messages.properties >--- src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties 24 Jul 2009 12:05:45 -0000 1.9 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/messages.properties 12 Oct 2009 23:07:47 -0000 >@@ -35,6 +35,7 @@ > TaskListSorter_Catagory_and_Repository=Category and Repository > TaskListSorter_No_Grouping=None > >+TaskListToolTip_Active_X=Active: {0} > TaskListToolTip_Automatic_container_for_all_local_tasks=Automatic container for all local tasks\nwith no category set > TaskListToolTip_Automatic_container_for_repository_tasks=Automatic container for repository tasks\nnot matched by any query > TaskListToolTip_Due=Due: {0}, {1} ({2}) >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java,v >retrieving revision 1.8 >diff -u -r1.8 Messages.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java 24 Jul 2009 12:05:45 -0000 1.8 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/Messages.java 12 Oct 2009 23:07:47 -0000 >@@ -69,6 +69,8 @@ > > public static String TaskListSorter_No_Grouping; > >+ public static String TaskListToolTip_Active_X; >+ > public static String TaskListToolTip_Automatic_container_for_all_local_tasks; > > public static String TaskListToolTip_Automatic_container_for_repository_tasks; >Index: src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java,v >retrieving revision 1.71 >diff -u -r1.71 TaskListToolTip.java >--- src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java 20 Sep 2009 07:14:44 -0000 1.71 >+++ src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListToolTip.java 12 Oct 2009 23:07:47 -0000 >@@ -21,6 +21,7 @@ > import org.eclipse.core.runtime.IStatus; > import org.eclipse.jface.layout.GridDataFactory; > import org.eclipse.mylyn.commons.core.DateUtil; >+import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin; > import org.eclipse.mylyn.internal.provisional.commons.ui.CommonFonts; > import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages; > import org.eclipse.mylyn.internal.provisional.commons.ui.CommonUiUtil; >@@ -180,19 +181,16 @@ > if (element instanceof ScheduledTaskContainer) { > ScheduledTaskContainer container = (ScheduledTaskContainer) element; > int estimateTotal = 0; >- long elapsedTotal = 0; >+ long activeTotal = 0; > for (ITask child : container.getChildren()) { > if (child instanceof AbstractTask) { > estimateTotal += ((AbstractTask) child).getEstimatedTimeHours(); >- elapsedTotal += TasksUiPlugin.getTaskActivityManager().getElapsedTime(child, >+ activeTotal += TasksUiPlugin.getTaskActivityManager().getElapsedTime(child, > container.getDateRange()); > } > } > StringBuilder sb = new StringBuilder(); >- sb.append(NLS.bind(Messages.TaskListToolTip_Estimate, estimateTotal)); >- sb.append("\n"); //$NON-NLS-1$ >- sb.append(NLS.bind(Messages.TaskListToolTip_Elapsed, DateUtil.getFormattedDurationShort(elapsedTotal))); >- sb.append("\n"); //$NON-NLS-1$ >+ appendEstimateAndActive(sb, estimateTotal, activeTotal); > return sb.toString(); > } else if (element instanceof ITask) { > ITask task = (ITask) element; >@@ -232,6 +230,17 @@ > } > } > >+ private void appendEstimateAndActive(StringBuilder sb, int estimateTotal, long activeTotal) { >+ if (!MonitorUiPlugin.getDefault().isActivityTrackingEnabled()) { >+ return; >+ } >+ >+ sb.append(NLS.bind(Messages.TaskListToolTip_Estimate, estimateTotal)); >+ sb.append("\n"); //$NON-NLS-1$ >+ sb.append(NLS.bind(Messages.TaskListToolTip_Active_X, DateUtil.getFormattedDurationShort(activeTotal))); >+ sb.append("\n"); //$NON-NLS-1$ >+ } >+ > private String getRepositoryLabel(String repositoryKind, String repositoryUrl) { > TaskRepository repository = TasksUi.getRepositoryManager().getRepository(repositoryKind, repositoryUrl); > if (repository != null) { >@@ -245,28 +254,6 @@ > } > > private String getActivityText(IRepositoryElement element) { >-// if (element instanceof ScheduledTaskDelegate) { >-// ScheduledTaskDelegate task = (ScheduledTaskDelegate) element; >-// >-// StringBuilder sb = new StringBuilder(); >-// Date date = task.getScheduledForDate(); >-// if (date != null) { >-// sb.append("Scheduled for: "); >-// sb.append(new SimpleDateFormat("E").format(date)).append(", "); >-// sb.append(DateFormat.getDateInstance(DateFormat.LONG).format(date)); >-// sb.append(" (").append(DateFormat.getTimeInstance(DateFormat.SHORT).format(date)).append(")\n"); >-// } >-// >-// long elapsed = TasksUiPlugin.getTaskActivityManager().getElapsedTime(task.getCorrespondingTask(), >-// task.getDateRangeContainer().getStart(), task.getDateRangeContainer().getEnd()); >-// String elapsedTimeString = DateUtil.getFormattedDurationShort(elapsed); >-// sb.append("Elapsed: "); >-// sb.append(elapsedTimeString); >-// sb.append("\n"); >-// >-// return sb.toString(); >-// } else >-// > if (element instanceof ITask) { > AbstractTask task = (AbstractTask) element; > >@@ -286,11 +273,8 @@ > sb.append(NLS.bind(Messages.TaskListToolTip_Scheduled, scheduledDate.toString())); > sb.append("\n"); //$NON-NLS-1$ > } >- > long elapsed = TasksUiPlugin.getTaskActivityManager().getElapsedTime(task); >- sb.append(NLS.bind(Messages.TaskListToolTip_Elapsed, DateUtil.getFormattedDurationShort(elapsed))); >- sb.append("\n"); //$NON-NLS-1$ >- >+ appendEstimateAndActive(sb, (task).getEstimatedTimeHours(), elapsed); > return sb.toString(); > } > return null; >Index: src/org/eclipse/mylyn/internal/tasks/ui/TaskActivationExternalizationParticipant.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/tasks/ui/TaskActivationExternalizationParticipant.java >diff -N src/org/eclipse/mylyn/internal/tasks/ui/TaskActivationExternalizationParticipant.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/tasks/ui/TaskActivationExternalizationParticipant.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,162 @@ >+/******************************************************************************* >+ * Copyright (c) 2009 Tasktop Technologies 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: >+ * Tasktop Technologies - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.tasks.ui; >+ >+import java.io.File; >+import java.io.FileReader; >+import java.io.FileWriter; >+import java.io.IOException; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.Status; >+import org.eclipse.core.runtime.jobs.ISchedulingRule; >+import org.eclipse.mylyn.internal.tasks.core.AbstractTask; >+import org.eclipse.mylyn.internal.tasks.core.ITasksCoreConstants; >+import org.eclipse.mylyn.internal.tasks.core.TaskActivationHistory; >+import org.eclipse.mylyn.internal.tasks.core.TaskList; >+import org.eclipse.mylyn.internal.tasks.core.externalization.AbstractExternalizationParticipant; >+import org.eclipse.mylyn.internal.tasks.core.externalization.ExternalizationManager; >+import org.eclipse.mylyn.tasks.core.ITask; >+import org.eclipse.mylyn.tasks.core.ITaskActivationListener; >+import org.eclipse.ui.IMemento; >+import org.eclipse.ui.XMLMemento; >+ >+/** >+ * @author Steffen Pingel >+ */ >+public class TaskActivationExternalizationParticipant extends AbstractExternalizationParticipant implements >+ ITaskActivationListener { >+ >+ private final ExternalizationManager externalizationManager; >+ >+ private boolean dirty; >+ >+ private final TaskActivationHistory activationHistory; >+ >+ private final File file; >+ >+ private final TaskList taskList; >+ >+ public TaskActivationExternalizationParticipant(ExternalizationManager externalizationManager, TaskList taskList, >+ TaskActivationHistory history, File file) { >+ this.externalizationManager = externalizationManager; >+ this.taskList = taskList; >+ this.activationHistory = history; >+ this.file = file; >+ } >+ >+ @Override >+ public String getDescription() { >+ return Messages.TaskActivationExternalizationParticipant_Task_Activation_History; >+ } >+ >+ @Override >+ public ISchedulingRule getSchedulingRule() { >+ return ITasksCoreConstants.ACTIVITY_SCHEDULING_RULE; >+ } >+ >+ @Override >+ public boolean isDirty() { >+ return dirty; >+ } >+ >+ private void requestSave() { >+ synchronized (TaskActivationExternalizationParticipant.this) { >+ dirty = true; >+ } >+ externalizationManager.requestSave(); >+ } >+ >+ @Override >+ public void load(File sourceFile, IProgressMonitor monitor) throws CoreException { >+ try { >+ activationHistory.clear(); >+ if (file.exists()) { >+ FileReader reader = new FileReader(file); >+ try { >+ XMLMemento memento = XMLMemento.createReadRoot(reader); >+ IMemento[] items = memento.getChildren("task"); //$NON-NLS-1$ >+ for (IMemento child : items) { >+ String handle = child.getString("handle"); //$NON-NLS-1$ >+ if (handle != null) { >+ AbstractTask task = taskList.getTask(handle); >+ if (task != null) { >+ activationHistory.addTaskInternal(task); >+ } >+ } >+ } >+ } finally { >+ reader.close(); >+ } >+ } >+ } catch (IOException e) { >+ throw new CoreException(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, >+ "Failed to load task activation history", e)); //$NON-NLS-1$ >+ } >+ } >+ >+ @Override >+ public void save(File targetFile, IProgressMonitor monitor) throws CoreException { >+ synchronized (TaskActivationExternalizationParticipant.this) { >+ dirty = false; >+ } >+ >+ XMLMemento memento = XMLMemento.createWriteRoot("taskActivationHistory"); //$NON-NLS-1$ >+ for (AbstractTask task : activationHistory.getPreviousTasks()) { >+ IMemento child = memento.createChild("task"); //$NON-NLS-1$ >+ child.putString("handle", task.getHandleIdentifier()); //$NON-NLS-1$ >+ } >+ >+ try { >+ file.getParentFile().mkdirs(); >+ FileWriter writer = new FileWriter(file); >+ try { >+ memento.save(writer); >+ } finally { >+ writer.close(); >+ } >+ } catch (IOException e) { >+ throw new CoreException(new Status(IStatus.ERROR, TasksUiPlugin.ID_PLUGIN, >+ "Failed to save task activation history", e)); //$NON-NLS-1$ >+ } >+ } >+ >+ @Override >+ public String getFileName() { >+ return file.getName(); >+ } >+ >+ @Override >+ public File getFile(String rootPath) throws CoreException { >+ return file; >+ } >+ >+ public void preTaskActivated(ITask task) { >+ // ignore >+ } >+ >+ public void preTaskDeactivated(ITask task) { >+ // ignore >+ } >+ >+ public void taskActivated(ITask task) { >+ activationHistory.addTask((AbstractTask) task); >+ requestSave(); >+ } >+ >+ public void taskDeactivated(ITask task) { >+ // ignore >+ } >+ >+} >#P org.eclipse.mylyn.tasks.core >Index: src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java,v >retrieving revision 1.75 >diff -u -r1.75 TaskActivityManager.java >--- src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java 8 Oct 2009 01:16:50 -0000 1.75 >+++ src/org/eclipse/mylyn/internal/tasks/core/TaskActivityManager.java 12 Oct 2009 23:07:50 -0000 >@@ -144,7 +144,8 @@ > > public void clearActivity() { > activeTasks.clear(); >- taskActivationHistory.clear(); >+ // handled in TaskActivationExternalizationParticipant now >+ //taskActivationHistory.clear(); > taskElapsedTimeMap.clear(); > workingSetElapsedTimeMap.clear(); > } >#P org.eclipse.mylyn.context.ui >Index: src/org/eclipse/mylyn/internal/context/ui/ContextUiPlugin.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.context.ui/src/org/eclipse/mylyn/internal/context/ui/ContextUiPlugin.java,v >retrieving revision 1.42 >diff -u -r1.42 ContextUiPlugin.java >--- src/org/eclipse/mylyn/internal/context/ui/ContextUiPlugin.java 7 Oct 2009 23:15:05 -0000 1.42 >+++ src/org/eclipse/mylyn/internal/context/ui/ContextUiPlugin.java 12 Oct 2009 23:07:51 -0000 >@@ -42,12 +42,12 @@ > import org.eclipse.mylyn.context.core.AbstractContextStructureBridge; > import org.eclipse.mylyn.context.core.ContextChangeEvent; > import org.eclipse.mylyn.context.core.ContextCore; >+import org.eclipse.mylyn.context.core.IInteractionContext; > import org.eclipse.mylyn.context.core.IInteractionElement; > import org.eclipse.mylyn.context.core.IInteractionRelation; > import org.eclipse.mylyn.context.ui.AbstractContextUiBridge; > import org.eclipse.mylyn.context.ui.IContextUiStartup; > import org.eclipse.mylyn.internal.context.ui.wizards.RetrieveLatestContextDialog; >-import org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin; > import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil; > import org.eclipse.mylyn.monitor.ui.MonitorUi; > import org.eclipse.mylyn.tasks.core.ITask; >@@ -186,7 +186,7 @@ > > private static final ITaskActivationListener TASK_ACTIVATION_LISTENER = new TaskActivationAdapter() { > >- @SuppressWarnings({ "restriction" }) >+ @SuppressWarnings("restriction") > @Override > public void taskActivated(ITask task) { > if (CoreUtil.TEST_MODE) { >@@ -243,13 +243,8 @@ > } > } > >- @SuppressWarnings("restriction") > private void lazyStart(IWorkbench workbench) { > try { >- MonitorUiPlugin.getDefault() >- .getPreferenceStore() >- .setValue(MonitorUiPlugin.PREF_USER_ACTIVITY_ENABLED, true); >- MonitorUiPlugin.getDefault().savePluginPreferences(); > ContextCore.getContextManager().addListener(viewerManager); > MonitorUi.addWindowPartListener(contentOutlineManager); > perspectiveManager.addManagedPerspective(ITasksUiConstants.ID_PERSPECTIVE_PLANNING); >#P org.eclipse.mylyn.monitor.ui >Index: src/org/eclipse/mylyn/internal/monitor/ui/MonitorUiPlugin.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/org.eclipse.mylyn.monitor.ui/src/org/eclipse/mylyn/internal/monitor/ui/MonitorUiPlugin.java,v >retrieving revision 1.18 >diff -u -r1.18 MonitorUiPlugin.java >--- src/org/eclipse/mylyn/internal/monitor/ui/MonitorUiPlugin.java 8 Oct 2009 03:41:14 -0000 1.18 >+++ src/org/eclipse/mylyn/internal/monitor/ui/MonitorUiPlugin.java 12 Oct 2009 23:07:51 -0000 >@@ -81,26 +81,19 @@ > > public static final String OBFUSCATED_LABEL = "[obfuscated]"; //$NON-NLS-1$ > >- public static final String PREF_USER_ACTIVITY_ENABLED = "org.eclipse.mylyn.monitor.user.activity.enabled"; //$NON-NLS-1$ >+ public static final String ACTIVITY_TRACKING_ENABLED = "org.eclipse.mylyn.monitor.activity.tracking.enabled"; //$NON-NLS-1$ > > private IWorkbenchWindow launchingWorkbenchWindow = null; > > private final org.eclipse.jface.util.IPropertyChangeListener PROPERTY_LISTENER = new org.eclipse.jface.util.IPropertyChangeListener() { >- > public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) { > if (event.getProperty().equals(ActivityContextManager.ACTIVITY_TIMEOUT) > || event.getProperty().equals(ActivityContextManager.ACTIVITY_TIMEOUT_ENABLED)) { > updateActivityTimout(); >- } else if (event.getProperty().equals(PREF_USER_ACTIVITY_ENABLED)) { >- if (getPreferenceStore().getBoolean(PREF_USER_ACTIVITY_ENABLED)) { >- activityContextManager.start(); >- } else { >- activityContextManager.stop(); >- } >- >+ } else if (event.getProperty().equals(ACTIVITY_TRACKING_ENABLED)) { >+ setActivityTrackingEnabled(getPreferenceStore().getBoolean(ACTIVITY_TRACKING_ENABLED)); > } > } >- > }; > > protected IWindowListener WINDOW_LISTENER = new IWindowListener() { >@@ -135,6 +128,8 @@ > } > }; > >+ private boolean activityTrackingEnabled; >+ > public MonitorUiPlugin() { > INSTANCE = this; > } >@@ -145,6 +140,7 @@ > > getPreferenceStore().setDefault(ActivityContextManager.ACTIVITY_TIMEOUT, DEFAULT_ACTIVITY_TIMEOUT); > getPreferenceStore().setDefault(ActivityContextManager.ACTIVITY_TIMEOUT_ENABLED, true); >+ getPreferenceStore().setDefault(ACTIVITY_TRACKING_ENABLED, false); > > this.activityContextManager = new ActivityContextManager(new ArrayList<AbstractUserActivityMonitor>(0)); > >@@ -414,9 +410,8 @@ > > updateActivityTimout(); > >- if (getPreferenceStore().getBoolean(PREF_USER_ACTIVITY_ENABLED)) { >- activityContextManager.start(); >- } >+ activityContextManager.start(); >+ setActivityTrackingEnabled(getPreferenceStore().getBoolean(ACTIVITY_TRACKING_ENABLED)); > > getPreferenceStore().addPropertyChangeListener(PROPERTY_LISTENER); > >@@ -433,4 +428,13 @@ > activityContextManager.setInactivityTimeout(0); > } > } >+ >+ public void setActivityTrackingEnabled(boolean b) { >+ this.activityTrackingEnabled = b; >+ } >+ >+ public boolean isActivityTrackingEnabled() { >+ return activityTrackingEnabled; >+ } >+ > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 291084
:
149078
|
149079
|
149177
|
149178
|
149197
|
149198
|
149287
|
149345
| 149399 |
149482