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

项目:OpenSPIFe    文件:InPlaceCheckBoxTreeDialog.java   
@Override
protected WorkbenchJob doCreateRefreshJob() {
    WorkbenchJob job = super.doCreateRefreshJob();
    job.addJobChangeListener(new JobChangeAdapter() {
        @SuppressWarnings("deprecation")
        @Override
        public void done(IJobChangeEvent event) {
            if (event.getResult() != null && event.getResult().isOK() && !getViewer().getTree().isDisposed()) {
                Set<String> joinChecked = new HashSet(getSelectedValues());
                for(String i : getPartialValues()) {
                    getViewer().setGrayed(i, true);
                    joinChecked.add(i);
                }
                getViewer().setCheckedElements(joinChecked.toArray());
            }
        }
    });
    return job;
}
项目:ChangeScribe    文件:FilteredCheckboxTree.java   
protected WorkbenchJob doCreateRefreshJob() {
    WorkbenchJob filterJob = super.doCreateRefreshJob();
    filterJob.addJobChangeListener(new JobChangeAdapter() {
        public void done(IJobChangeEvent event) {
            if (event.getResult().isOK()) {
                getDisplay().asyncExec(new Runnable() {
                    public void run() {
                        if (checkboxViewer.getTree().isDisposed())
                            return;
                        checkboxViewer.restoreLeafCheckState();
                    }
                });
            }
        }
    });
    return filterJob;
}
项目: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();
}
项目: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();
}
项目:gwt-eclipse-plugin    文件:GwtSuperDevModeCodeServerTabGroup.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();
}
项目:pep-tools    文件:RootElementsFilteredTree.java   
/**
 * Avoid the expansion stage of the refresh by using a monitor in the
 * "canceled" state.
 */
@Override
protected WorkbenchJob doCreateRefreshJob() {
    final WorkbenchJob realJob = super.doCreateRefreshJob();
    return new WorkbenchJob(realJob.getName()) {
        @Override
        public IStatus runInUIThread(IProgressMonitor monitor) {
            IProgressMonitor cancelledMonitor = new NullProgressMonitor();
            cancelledMonitor.setCanceled(true);
            realJob.runInUIThread(cancelledMonitor);
            return Status.OK_STATUS;
        }
    };
}
项目: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();
}
项目: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;
        }
    };
}
项目:mytourbook    文件:FilteredListComponent.java   
private void addFilter() {
    fFilter = new ListFilter(fSelected, fLabelProvider);
    fAvailableViewer.addFilter(fFilter);
    fFilterJob = new WorkbenchJob("FilterJob") { //$NON-NLS-1$
        public IStatus runInUIThread(IProgressMonitor monitor) {
            handleFilter();
            return Status.OK_STATUS;
        }
    };
    fFilterJob.setSystem(true);
}
项目:Eclipse-Postfix-Code-Completion    文件:OptionsConfigurationBlock.java   
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;
        }
    };
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:OptionsConfigurationBlock.java   
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;
        }
    };
}
项目:antlr4ide    文件:Widgets.java   
public static Job uijob(final String name, final Function<IProgressMonitor, IStatus> fn) {
  return new WorkbenchJob(name) {
    @Override
    public IStatus runInUIThread(final IProgressMonitor monitor) {
      return fn.apply(monitor);
    }
  };
}
项目:antlr4ide    文件:Widgets.java   
public static Job stateJob(final String name, final AtomicInteger state,
    final Function2<IProgressMonitor, Integer, IStatus> fn) {
  return new WorkbenchJob(name) {
    @Override
    public IStatus runInUIThread(final IProgressMonitor monitor) {
      return fn.apply(monitor, state.incrementAndGet());
    }
  };
}
项目:eclipse.spellchecker    文件:OptionsConfigurationBlock.java   
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;
        }
    };
}
项目:brainfuck    文件:BfUIListenerContributor.java   
@Override
public void memoryBlocksAdded(final IMemoryBlock[] memory) {

    WorkbenchJob job = new WorkbenchJob("Update Memory View") {
        private static final long RESCHEDULE_TIME = 200;
        private static final int MAX_ATTEMPTS = 5;
        private volatile int attempts = 0;

        @Override
        public IStatus runInUIThread(IProgressMonitor monitor) {
            IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
            if (page == null) {
                return Status.OK_STATUS;
            }
            try {
                IMemoryRenderingSite memoryView = null;
                for (IViewReference ref : page.getViewReferences()) {
                    if (ref.getId().equals(IDebugUIConstants.ID_MEMORY_VIEW)) {
                        memoryView = (IMemoryRenderingSite) ref.getView(true);
                        break;
                    }
                }
                if (memoryView == null) {
                    if (attempts < MAX_ATTEMPTS) { //Memory view may still not been opened, try 5 times
                        attempts++;
                        this.schedule(RESCHEDULE_TIME);
                    }
                    else {
                        attempts = 0;
                    }
                    return Status.OK_STATUS;
                }

                for (IMemoryBlock mb : memory) {
                    if (mb instanceof BfMemoryBlock && !((BfMemoryBlock) mb).isUserCreated()) {
                        IMemoryRenderingType renderingType = DebugUITools.getMemoryRenderingManager().getPrimaryRenderingType(mb);
                        IMemoryRendering rendering = renderingType.createRendering();
                        IMemoryRenderingContainer container = memoryView.getContainer(IDebugUIConstants.PLUGIN_ID + ".MemoryView.RenderingViewPane.1");
                        rendering.init(container, mb);
                        container.addMemoryRendering(rendering);
                    }
                }
            }
            catch (CoreException e) {
                DbgActivator.getDefault().logError("Updating Memory View failed", e);
            }
            this.attempts = 0;
            return Status.OK_STATUS;
        }
    };
    job.setUser(false);
    job.schedule();
}
项目: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();
}
项目: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;
        }

    };
}
项目:Eclipse-Postfix-Code-Completion    文件:FilteredElementTreeSelectionDialog.java   
@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;
        }
    };
}
项目:cmake4cdt    文件:ImportCMakeWizardPage.java   
/**
 * Validates the contents of the page, setting the page error message and Finish button state accordingly
 * 
 * @since 8.1
 */
protected void validatePage() {
    // Don't generate an error if project name or location is empty, but do disable Finish button.  
    String msg = null;
    boolean complete = true; // ultimately treated as false if msg != null

    String name = getProjectName();
    if (name.isEmpty()) {
        complete = false;
    }
    else {
        IStatus status = ResourcesPlugin.getWorkspace().validateName(name, IResource.PROJECT);
        if (!status.isOK()) {
            msg = status.getMessage();
        }
        else {
            IProject project = root.getProject(name);
            if (project.exists()) {
                msg = "A project named '" + name + "' already exists in this workspace";

            }
        }
    }
    if (msg == null) {
        String cmakeListsFile = getCMakeList();
        if (cmakeListsFile.isEmpty()) {
            complete = false;
        }
        else {
            final File file= new File(cmakeListsFile);
            if (file.isDirectory()) {
                msg = "is a directory, please select the CMakeLists.txt of the project to import";
            }
            else {
                if(file.exists()) {
                    final File projDir = file.getParentFile();
                    // Ensure we can create files in the directory.
                    if (!projDir.canWrite()) {
                        msg = "no write permissions to the the project";
                    }
                    File dotproject = new File(projDir, ".project");
                    if(dotproject.exists()) {
                        msg = "Selected location already contains an eclipse project (.project file). Import it using 'File->Import...->General->Existing Projects into Workspace' instead.";
                    }
                    if(!projectNameSetByUser) {
                        // Set the project name to the directory name but not if the user has supplied a name
                        // (bugzilla 368987). Use a job to ensure proper sequence of activity, as setting the Text
                        // will invoke the listener, which will invoke this method.
                        if (!projectNameSetByUser && !name.equals(projDir.getName())) {
                            WorkbenchJob wjob = new WorkbenchJob("update project name") { //$NON-NLS-1$
                                @Override
                                public IStatus runInUIThread(IProgressMonitor monitor) {
                                    if (!projectName.isDisposed()) {
                                        projectName.setText(projDir.getName());
                                    }
                                    return Status.OK_STATUS;
                                }
                            };
                            wjob.setSystem(true);
                            wjob.schedule();
                        }
                    }
                    else {
                        msg = "'" + cmakeListsFile + "' does not exist";
                    }
                }
            }
        }
    }
    setErrorMessage(msg);
    setPageComplete((msg == null) && complete);
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:FilteredElementTreeSelectionDialog.java   
@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;
        }
    };
}