diff options
author | Jean Michel-Lemieux | 2003-07-11 17:47:30 +0000 |
---|---|---|
committer | Jean Michel-Lemieux | 2003-07-11 17:47:30 +0000 |
commit | 82104e9a1d564c180a7ccf8d319b2a0528f2aea9 (patch) | |
tree | 5521eaaa0b6b073296ad772932aeb3db12945755 | |
parent | 09cc1ee7ab9978acc66c8b9c8334ddfa8291203c (diff) | |
download | eclipse.platform.team-82104e9a1d564c180a7ccf8d319b2a0528f2aea9.tar.gz eclipse.platform.team-82104e9a1d564c180a7ccf8d319b2a0528f2aea9.tar.xz eclipse.platform.team-82104e9a1d564c180a7ccf8d319b2a0528f2aea9.zip |
rescheduling was broken
4 files changed, 23 insertions, 10 deletions
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java index e45af2bdf..0f41fc559 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java @@ -184,10 +184,10 @@ public class TeamUIPlugin extends AbstractUIPlugin implements IPropertyChangeLis getPreferenceStore().addPropertyChangeListener(this); // startup auto-refresh job if necessary - refreshJob = new RefreshSubscriberInputJob(Policy.bind("ScheduledSyncViewRefresh.taskName")); //$NON-NLS-1$ - refreshJob.setReschedule(true); + refreshJob = new RefreshSubscriberInputJob(Policy.bind("ScheduledSyncViewRefresh.taskName")); //$NON-NLS-1$ refreshJob.setRefreshInterval(getPreferenceStore().getInt(IPreferenceIds.SYNCVIEW_DELAY) * 60); if(getPreferenceStore().getBoolean(IPreferenceIds.SYNCVIEW_SCHEDULED_SYNC)) { + refreshJob.setReschedule(true); // start once the platform has started and stabilized refreshJob.schedule(20000 /* 20 seconds */); } @@ -372,9 +372,11 @@ public class TeamUIPlugin extends AbstractUIPlugin implements IPropertyChangeLis RefreshSubscriberJob refreshJob = getRefreshJob(); refreshJob.setRefreshInterval(getPreferenceStore().getInt(IPreferenceIds.SYNCVIEW_DELAY) * 60); if(((Boolean)event.getNewValue()).booleanValue()) { + refreshJob.setReschedule(true); refreshJob.schedule(); } else { refreshJob.setRestartOnCancel(false /* don't restart the job */); + refreshJob.setReschedule(false); refreshJob.cancel(); } } diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/jobs/RefreshSubscriberJob.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/jobs/RefreshSubscriberJob.java index 793aaf142..a2f084247 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/jobs/RefreshSubscriberJob.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/jobs/RefreshSubscriberJob.java @@ -32,8 +32,6 @@ import org.eclipse.team.internal.core.TeamPlugin; */ public class RefreshSubscriberJob extends Job { - protected final static boolean DEBUG = Policy.DEBUG_REFRESH_JOB; - /** * Uniquely identifies this type of job. This is used for cancellation. */ @@ -91,9 +89,10 @@ public class RefreshSubscriberJob extends Job { addJobChangeListener(new JobChangeAdapter() { public void done(IJobChangeEvent event) { if(shouldReschedule()) { - if(restartOnCancel && shouldReschedule()) { - RefreshSubscriberJob.this.schedule(scheduleDelay); + if(event.getResult().getSeverity() == IStatus.CANCEL && ! restartOnCancel) { + return; } + RefreshSubscriberJob.this.schedule(scheduleDelay); restartOnCancel = true; } } diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties index 4eb697aa7..a8d6150f4 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/messages.properties @@ -313,6 +313,7 @@ SyncViewerDirectionFilters.conflictingTitle=Conflicting SyncViewerDirectionFilters.conflictingToolTip=Toggle showing of conflicting changes SyncViewPreferencePage.lastRefreshRun=The last background refresh was run at: {0} +SyncViewPreferencePage.lastRefreshRunNever=Never ############################################### # Sync view actions diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/preferences/SyncViewerPreferencePage.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/preferences/SyncViewerPreferencePage.java index 743f8e651..80d042384 100644 --- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/preferences/SyncViewerPreferencePage.java +++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/preferences/SyncViewerPreferencePage.java @@ -116,15 +116,26 @@ public class SyncViewerPreferencePage extends FieldEditorPreferencePage implemen scheduledDelay = new IntegerFieldEditor2(IPreferenceIds.SYNCVIEW_DELAY, "How often should the background refresh run? (in minutes)", getFieldEditorParent(), 2); addField(scheduledDelay); - Date lastTimeRun = new Date(TeamUIPlugin.getPlugin().getRefreshJob().getLastTimeRun()); - String sLastTimeRun = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(lastTimeRun); - Label label= new Label(getFieldEditorParent(), SWT.NONE); - label.setText(Policy.bind("SyncViewPreferencePage.lastRefreshRun", sLastTimeRun)); //$NON-NLS-1$ + updateLastRunTime(new Label(getFieldEditorParent(), SWT.NONE)); compressFolders = new BooleanFieldEditor(IPreferenceIds.SYNCVIEW_COMPRESS_FOLDERS, "Compress in-sync folder paths when using the tree view", SWT.NONE, getFieldEditorParent()); addField(compressFolders); } + private void updateLastRunTime(Label label) { + String text; + long mills = TeamUIPlugin.getPlugin().getRefreshJob().getLastTimeRun(); + if(mills == 0) { + String never = Policy.bind("SyncViewPreferencePage.lastRefreshRunNever"); //$NON-NLS-1$ + text = Policy.bind("SyncViewPreferencePage.lastRefreshRun", never); //$NON-NLS-1$ + } else { + Date lastTimeRun = new Date(TeamUIPlugin.getPlugin().getRefreshJob().getLastTimeRun()); + String sLastTimeRun = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(lastTimeRun); + text = Policy.bind("SyncViewPreferencePage.lastRefreshRun", sLastTimeRun); //$NON-NLS-1$ + } + label.setText(text); + } + /* (non-Javadoc) * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench) */ |