@Override public IStatus runInUIThread(IProgressMonitor monitor) { if (!progressLabel.isDisposed()) progressLabel.setText(progressMonitor != null ? progressMonitor .getMessage() : EMPTY_STRING); if (progressMonitor == null || progressMonitor.isDone()) { return new Status(IStatus.CANCEL, PlatformUI.PLUGIN_ID, IStatus.CANCEL, EMPTY_STRING, null); } // Schedule cyclical with 500 milliseconds delay schedule(500); return new Status(IStatus.OK, PlatformUI.PLUGIN_ID, IStatus.OK, EMPTY_STRING, null); }
/** * Schedule progress refresh job. * * @param progressMonitor * used during refresh progress label */ public void scheduleProgressRefresh( GranualProgressMonitor progressMonitor) { this.progressMonitor = progressMonitor; // Schedule with initial delay to avoid flickering when the user // types quickly schedule(200); }