类org.eclipse.ui.progress.WorkbenchJob源码实例Demo

下面列出了怎么用org.eclipse.ui.progress.WorkbenchJob的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: eclipse-cs   文件: AbstractStatsView.java
/**
 * Causes the view to re-sync its contents with the workspace. Note that changes will be scheduled
 * in a background job, and may not take effect immediately.
 */
protected final void refresh() {

  @SuppressWarnings("cast")
  final IWorkbenchSiteProgressService service = (IWorkbenchSiteProgressService) getSite()
          .getAdapter(IWorkbenchSiteProgressService.class);

  // rebuild statistics data
  CreateStatsJob job = new CreateStatsJob(getFilter(), getViewId());
  job.setPriority(Job.DECORATE);
  job.setRule(ResourcesPlugin.getWorkspace().getRoot());
  job.addJobChangeListener(new JobChangeAdapter() {
    @Override
    public void done(IJobChangeEvent event) {
      mStats = ((CreateStatsJob) event.getJob()).getStats();
      Job uiJob = new WorkbenchJob(Messages.AbstractStatsView_msgRefreshStats) {

        @Override
        public IStatus runInUIThread(IProgressMonitor monitor) {
          handleStatsRebuilt();
          return Status.OK_STATUS;
        }
      };
      uiJob.setPriority(Job.DECORATE);
      uiJob.setSystem(true);
      uiJob.schedule();
    }
  });
  service.schedule(job, 0, true);
}
 
源代码2 项目: tracecompass   文件: FilteredCheckboxTree.java
@Override
protected WorkbenchJob doCreateRefreshJob() {
    WorkbenchJob job = super.doCreateRefreshJob();
    return new WorkbenchJob("Refresh Filter") {//$NON-NLS-1$
        @Override
        public IStatus runInUIThread(IProgressMonitor monitor) {
            if (fCheckboxTreeViewer.getTree().isDisposed()) {
                return Status.CANCEL_STATUS;
            }
            // Save expanded elements before and after the filtering
            Set<Object> expandedElements = new HashSet<>(Arrays.asList(fCheckboxTreeViewer.getExpandedElements()));
            job.runInUIThread(monitor);
            expandedElements.addAll(Arrays.asList(fCheckboxTreeViewer.getExpandedElements()));
            fCheckboxTreeViewer.getTree().setRedraw(false);
            // Expand all to be able to store all checked elements
            fCheckboxTreeViewer.expandAll();
            fCheckboxTreeViewer.setCheckedElements(getCheckedElements());
            // Collapse all can change selection
            ISelection selection = fCheckboxTreeViewer.getSelection();
            fCheckboxTreeViewer.collapseAll();
            fCheckboxTreeViewer.getTree().setRedraw(true);
            // Expand tree according to the saved expanded elements
            fCheckboxTreeViewer.setExpandedElements(expandedElements.toArray());
            // Restore the selection
            fCheckboxTreeViewer.setSelection(selection);
            return Status.OK_STATUS;
        }
    };
}
 
@Override
protected WorkbenchJob doCreateRefreshJob() {
    WorkbenchJob job = super.doCreateRefreshJob();
    job.addJobChangeListener(new JobChangeAdapter() {
        @Override
        public void done(IJobChangeEvent event) {
            if (getCheckboxTreeViewer().getTree().isDisposed()) {
                return;
            }
            maintainAllCheckIntegrity();
        }
    });
    return job;
}
 
源代码4 项目: gwt-eclipse-plugin   文件: GwtCompilerTabGroup.java
private void createUpdateJob() {
  new WorkbenchJob("GwtSuperDevModeCodeServerTabGroup") {
    @Override
    public IStatus runInUIThread(IProgressMonitor monitor) {
      ILaunchConfigurationTab tab = launchConfigurationDialog.getActiveTab();
      if (tab != null && !tab.getControl().isDisposed()) {
        launchConfigurationDialog.updateButtons();
        launchConfigurationDialog.updateMessage();
      }
      return Status.OK_STATUS;
    }
  }.schedule();
}
 
源代码5 项目: gwt-eclipse-plugin   文件: WebAppTabGroup.java
private void createUpdateJob() {
  new WorkbenchJob("WebAppTabGroup") {
    @Override
    public IStatus runInUIThread(IProgressMonitor monitor) {
      ILaunchConfigurationTab tab = launchConfigurationDialog.getActiveTab();
      if (tab != null && !tab.getControl().isDisposed()) {
        launchConfigurationDialog.updateButtons();
        launchConfigurationDialog.updateMessage();
      }
      return Status.OK_STATUS;
    }
  }.schedule();
}
 
private void createUpdateJob() {
  new WorkbenchJob("GwtSuperDevModeCodeServerTabGroup") {
    @Override
    public IStatus runInUIThread(IProgressMonitor monitor) {
      ILaunchConfigurationTab tab = launchConfigurationDialog.getActiveTab();
      if (tab != null && !tab.getControl().isDisposed()) {
        launchConfigurationDialog.updateButtons();
        launchConfigurationDialog.updateMessage();
      }
      return Status.OK_STATUS;
    }
  }.schedule();
}
 
源代码7 项目: APICloud-Studio   文件: KeybindingsManager.java
private void dispose()
{
	WorkbenchJob job = new WorkbenchJob("Disposing KeybindingsManager") //$NON-NLS-1$
	{
		@Override
		public IStatus runInUIThread(IProgressMonitor monitor)
		{
			workbench.getDisplay().removeFilter(SWT.KeyDown, listener);
			workbench.getDisplay().removeFilter(SWT.Traverse, listener);
			return Status.OK_STATUS;
		}
	};
	EclipseUtil.setSystemForJob(job);
	job.schedule();
}
 
源代码8 项目: APICloud-Studio   文件: CommonQuickOutlinePage.java
/**
 * createDelayedRefreshJob
 * 
 * @return workbench job
 */
private WorkbenchJob createDelayedRefreshJob()
{
	return new WorkbenchJob("Refresh Content") { //$NON-NLS-1$
		/**
		 * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
		 */
		public IStatus runInUIThread(IProgressMonitor monitor)
		{
			try
			{
				if (_treeViewer.getControl().isDisposed())
				{
					return Status.CANCEL_STATUS;
				}

				_treeViewer.setSelection(null);
				_treeViewer.refresh();
			}
			// SWT errors may be thrown here and will show as an error box since this is done on the UI thread
			// Catch everything and log it so that the dialog doesn't annoy the user since they may be typing into
			// the editor when this code throws errors and will impact them severely
			catch (Throwable e)
			{
				IdeLog.logError(CommonEditorPlugin.getDefault(), e);
			}

			return Status.OK_STATUS;
		}
	};
}
 
private WorkbenchJob doCreateRefreshJob() {
	return new WorkbenchJob(PreferencesMessages.OptionsConfigurationBlock_RefreshFilter) {
		@Override
		public IStatus runInUIThread(IProgressMonitor monitor) {
			updateUI(fRoot);
			fParentComposite.layout(true, true); //relayout
			if (fScrolledPageContent != null) {
				setVisible(fNoMatchFoundLabel, !fMatchFound);
				fScrolledPageContent.reflow(true);
			}
			return Status.OK_STATUS;
		}
	};
}
 
源代码10 项目: APICloud-Studio   文件: KeybindingsManager.java
private void initBindings()
{
	WorkbenchJob workbenchJob = new WorkbenchJob("Installing KeybindingsManager") //$NON-NLS-1$
	{
		@Override
		public IStatus runInUIThread(IProgressMonitor monitor)
		{

			loadbindings();

			// Insert our key listener before the Eclipse's key listeners
			IBindingService bindingService = (IBindingService) workbench.getService(IBindingService.class);
			if (bindingService instanceof BindingService)
			{
				final BindingService theBindingService = (BindingService) bindingService;
				Display display = PlatformUI.getWorkbench().getDisplay();
				final WorkbenchKeyboard keyboard = theBindingService.getKeyboard();
				Listener keyDownFilter = keyboard.getKeyDownFilter();
				try
				{
					if (keyDownFilter != null)
					{
						display.removeFilter(SWT.KeyDown, keyDownFilter);
						display.removeFilter(SWT.Traverse, keyDownFilter);
					}
					display.addFilter(SWT.KeyDown, listener);
					display.addFilter(SWT.Traverse, listener);
				}
				finally
				{
					if (keyDownFilter != null)
					{
						display.addFilter(SWT.KeyDown, keyDownFilter);
						display.addFilter(SWT.Traverse, keyDownFilter);
					}
				}
			}

			// Set the initial enabled state of KeybindingsManager
			IContextService contextService = (IContextService) workbench.getService(IContextService.class);
			contextService.addContextManagerListener(contextManagerListener);
			setEnabled(contextService.getActiveContextIds().contains(ScriptingUIPlugin.SCRIPTING_CONTEXT_ID));

			return Status.OK_STATUS;
		}
	};
	workbenchJob.setRule(MUTEX_RULE);
	EclipseUtil.setSystemForJob(workbenchJob);
	workbenchJob.setPriority(Job.LONG);
	workbenchJob.schedule();
}
 
源代码11 项目: APICloud-Studio   文件: CommonQuickOutlinePage.java
/**
 * createRefreshJob
 * 
 * @return Workbench job
 */
private WorkbenchJob createRefreshJob()
{
	return new WorkbenchJob("Refresh Filter") {//$NON-NLS-1$
		/**
		 * @see org.eclipse.ui.progress.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
		 */
		public IStatus runInUIThread(IProgressMonitor monitor)
		{
			if (_treeViewer.getControl().isDisposed())
			{
				return Status.CANCEL_STATUS;
			}

			if (_pattern == null)
			{
				return Status.OK_STATUS;
			}

			_filter.setPattern(_pattern);

			try
			{
				// don't want the user to see updates that will be made to the tree
				_treeViewer.getControl().setRedraw(false);
				_treeViewer.refresh(true);

				if (_pattern.length() > 0)
				{
					/*
					 * Expand elements one at a time. After each is expanded, check to see if the filter text has
					 * been modified. If it has, then cancel the refresh job so the user doesn't have to endure
					 * expansion of all the nodes.
					 */
					IStructuredContentProvider provider = (IStructuredContentProvider) _treeViewer
							.getContentProvider();
					Object[] elements = provider.getElements(_treeViewer.getInput());

					for (int i = 0; i < elements.length; i++)
					{
						if (monitor.isCanceled())
						{
							return Status.CANCEL_STATUS;
						}

						_treeViewer.expandToLevel(elements[i], AbstractTreeViewer.ALL_LEVELS);
					}

					TreeItem[] items = _treeViewer.getTree().getItems();

					if (items.length > 0)
					{
						// to prevent scrolling
						_treeViewer.getTree().showItem(items[0]);
					}
				}
			}
			finally
			{
				// done updating the tree - set redraw back to true
				_treeViewer.getControl().setRedraw(true);
			}

			return Status.OK_STATUS;
		}

	};
}
 
@Override
protected WorkbenchJob doCreateRefreshJob() {
	return new WorkbenchJob("Refresh Filter") {//$NON-NLS-1$


		@Override
		public IStatus runInUIThread(IProgressMonitor monitor) {
			if (treeViewer.getControl().isDisposed()) {
				return Status.CANCEL_STATUS;
			}

			String text= getFilterString();
			if (text == null) {
				return Status.OK_STATUS;
			}

			boolean initial= initialText != null && initialText.equals(text);
			if (initial) {
				getPatternFilter().setPattern(null);
			} else {
				getPatternFilter().setPattern(text);
			}

			Control redrawFalseControl= treeComposite != null ? treeComposite : treeViewer.getControl();
			try {
				// don't want the user to see updates that will be made to
				// the tree
				// we are setting redraw(false) on the composite to avoid
				// dancing scrollbar
				redrawFalseControl.setRedraw(false);
				if (!narrowingDown) {
					// collapse all
					TreeItem[] is= treeViewer.getTree().getItems();
					for (int i= 0; i < is.length; i++) {
						TreeItem item= is[i];
						if (item.getExpanded()) {
							treeViewer.setExpandedState(item.getData(), false);
						}
					}
				}
				treeViewer.refresh(true);

				updateToolbar(text.length() > 0 && !initial);

			} finally {
				// done updating the tree - set redraw back to true
				TreeItem[] items= getViewer().getTree().getItems();
				if (items.length > 0 && getViewer().getTree().getSelectionCount() == 0) {
					treeViewer.getTree().setTopItem(items[0]);
				}
				redrawFalseControl.setRedraw(true);
			}
			return Status.OK_STATUS;
		}
	};
}
 
 类所在包
 类方法
 同包方法