Package org.eclipse.core.resources

Examples of org.eclipse.core.resources.WorkspaceJob


          if ((resourceDelta.getFlags() & IResourceDelta.OPEN) != 0) {
            final IProject project = (IProject) resource;
            if (project.isOpen()) {
              final ProjectFrameworkAdapter projectFrameworkAdapter = (ProjectFrameworkAdapter) project.getAdapter(ProjectFrameworkAdapter.class);
              if (projectFrameworkAdapter != null) {
                new WorkspaceJob("Initialize WOLips Project") {
                 
                  @Override
                  public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
                    projectFrameworkAdapter.initializeProject();
                    return Status.OK_STATUS;
View Full Code Here


     
      final boolean wasDeleted = _deleted;
      _lastSearch = partialName;
      _progressMonitor.setCanceled(true);

      WorkspaceJob job = new WorkspaceJob("Searching for components ...") {
        public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
          synchronized (_completionLock) {
            _progressMonitor.setCanceled(false);
            Comparator<WodCompletionProposal> nameOrder = new Comparator<WodCompletionProposal>() {
              public int compare(WodCompletionProposal p1, WodCompletionProposal p2) {
                return p1.getDisplayString().compareTo(p2.getDisplayString());
              }
            };

            try {
              final Set<WodCompletionProposal> proposals = new TreeSet<WodCompletionProposal>(nameOrder);
              WodCompletionUtils.fillInElementTypeCompletionProposals(_project, partialName, 0, partialName.length(), proposals, false, _progressMonitor);
              if (!_progressMonitor.isCanceled()) {
                Display.getDefault().asyncExec(new Runnable() {
                  public void run() {
                    if (!componentNameCombo.isDisposed()) {
                      componentNameCombo.remove(0, componentNameCombo.getItemCount() - 1);
                      boolean exactMatch = false;
                      for (WodCompletionProposal elementName : proposals) {   
                        String displayString = elementName.getDisplayString();
                        if (displayString != null && displayString.equals(_lastSearch)) {
                          exactMatch = true;
                        }
                        componentNameCombo.add(displayString);
                      }
                     
                      try {
                        Method setListVisible = componentNameCombo.getClass().getDeclaredMethod("setListVisible", boolean.class);
                        setListVisible.setAccessible(true);
                        if (!isWindows) {
                          setListVisible.invoke(componentNameCombo, false);
                        }
                        Point _selection = componentNameCombo.getSelection();
                        if (!(componentNameCombo.getItemCount() <= 1)) {
                          String text = componentNameCombo.getItem(0);
                          _selection.y = text.length();
                          synchronized (_ignoreModify) {
                            String partialText = componentNameCombo.getText();
                            if (!text.toLowerCase().startsWith(partialText.toLowerCase())) {
                              return;
                            }
                            _ignoreModify = true;
                            setListVisible.invoke(componentNameCombo, true);
                            componentNameCombo.setText(text);
                            componentNameCombo.setSelection(_selection);
                            _ignoreModify = false;
                          }

                        } else {
                          if (componentNameCombo.getItemCount() == 1) {
                            setListVisible.invoke(componentNameCombo, false);
                            String text = componentNameCombo.getItem(0);
                            if (_selection.x == _selection.y && !wasDeleted) {
                              _selection.y = text.length();
                              synchronized (_ignoreModify) {
                                _ignoreModify = true;
                                componentNameCombo.setText(text);
                                componentNameCombo.setSelection(_selection);
                                _ignoreModify = false;
                              }
                              _lastSelection = _selection;
                            }
                          }
                        }
                      } catch (Throwable ex) {
                        ex.printStackTrace();
                      }
                    }
                  }
                });
              }
            } catch (OperationCanceledException t) {
              // ignore
            } catch (Throwable t) {
              t.printStackTrace();
            }
            return Status.OK_STATUS;
          }
        }
      };
      job.schedule();
    }
  }
View Full Code Here

    final List<IProjectDescription> projectDescriptions = _projectDescriptions;
    if (projectDescriptions == null) {
      return;
    }

    new WorkspaceJob("Importing") {
      @Override
      public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
        try {
          for (IProjectDescription projectDescription : projectDescriptions) {
            try {
View Full Code Here

   * triggers status updates for all deployed modules
   */
  protected void updateModuleStates() {
    // Once the server is marked started, we want to update the module publish state
    final IServer server = getServer();
    Job moduleStateJob = new WorkspaceJob("Module State Update Job") {
     
      @Override
      public IStatus runInWorkspace(IProgressMonitor monitor)
        throws CoreException {
        IModule[] modules = server.getModules();
        monitor.beginTask("Verifying Module State", modules.length * 1000); //$NON-NLS-1$
        for( int i = 0; i < modules.length; i++ ) {
          IModule[] temp = new IModule[]{modules[i]};
         
          //boolean started = verifier.isModuleStarted(server, temp, new SubProgressMonitor(monitor, 1000));
          //int state = started ? IServer.STATE_STARTED : IServer.STATE_STOPPED;
          int state = getModuleStateController().getModuleState(temp, new SubProgressMonitor(monitor, 1000));
          ((Server)server).setModuleState(temp, state);
        }
        return Status.OK_STATUS;
      };
    };
    moduleStateJob.schedule()
  }
View Full Code Here

     */
    @SuppressWarnings("unchecked")
    public void runInBackground(ISchedulingRule rule, final Object[] jobFamilies) {
        //obtain a copy of the selected resources before the job is forked
        final List resources = new ArrayList(getActionResources());
        Job job = new WorkspaceJob(removeMnemonics(getText())) {

            /* (non-Javadoc)
             * @see org.eclipse.core.runtime.jobs.Job#belongsTo(java.lang.Object)
             */
            public boolean belongsTo(Object family) {
                if (jobFamilies == null || family == null) {
                    return false;
                }
                for (int i = 0; i < jobFamilies.length; i++) {
                    if (family.equals(jobFamilies[i])) {
                        return true;
                    }
                }
                return false;
            }

            /* (non-Javadoc)
             * @see org.eclipse.core.resources.WorkspaceJob#runInWorkspace(org.eclipse.core.runtime.IProgressMonitor)
             */
            public IStatus runInWorkspace(IProgressMonitor monitor) {
                return WorkspaceAction.this.execute(resources, monitor);
            }
        };
        if (rule != null) {
            job.setRule(rule);
        }
        job.setUser(true);
        job.schedule();
    }
View Full Code Here

    addClojureNature(new IProject[] {project});
  }

  private void addClojureNature(final IProject[] projects) {
    if (projects.length != 0) {
      WorkspaceJob job = new ClojureNatureAdderWorkspaceJob(projects);
      job.setUser(false);
      job.setRule(ResourcesPlugin.getWorkspace().getRoot());
      job.schedule();
    }
  }
View Full Code Here

    if (!project.getFile("project.clj").exists()) {
      return;
    }

    WorkspaceJob job = new LeiningenNatureAdderWorkspaceJob(project);
    job.setRule(ResourcesPlugin.getWorkspace().getRoot());
    job.setUser(false);
    job.schedule();
  }
View Full Code Here

      CCWPlugin.getTracer().trace(TraceOptions.LOG_INFO, "No project will be created for folder '"
          + folder.getAbsolutePath() + "': project with same folder exists in workspace");
      return false;
    }
    final String relativeFolder = folder.equals(startFolder) ? startFolder.getName() :  folder.getAbsolutePath().substring(startFolder.getAbsolutePath().length());
    WorkspaceJob wj = new WorkspaceJob("Creation of Eclipse project for folder " + relativeFolder) {

      @Override
      public IStatus runInWorkspace(IProgressMonitor monitor)
          throws CoreException {
        final String initialProjectName = folder.getName();
        // find a project name matching the folder name
        IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
        Set<String> projectNames = new HashSet<String>(projects.length);
        for (IProject project: projects) {
          projectNames.add(project.getName());
        }
        String maybeProjectName = initialProjectName;
        int i = 1;
        while (projectNames.contains(maybeProjectName)) {
          maybeProjectName = initialProjectName + i;
          i++;
        }

        final String projectName = maybeProjectName;

        // Let's create the eclipse project
        final IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);

        IProjectDescription desc = ResourcesPlugin.getWorkspace().newProjectDescription(projectName);
        if (folder.getParentFile().getAbsolutePath().equals(ResourcesPlugin.getWorkspace().getRoot().getLocation().toFile().getAbsolutePath())) {
          // Special case: when the projects resides inside the workspace path,
          // location must be set to null to assume the "default location"
          desc.setLocation(null);
        } else {
          desc.setLocation(new Path(folder.getAbsolutePath()));
        }
        project.create(desc, null);
        project.open(null);

        // Add project to current WorkingSet
        IWorkingSetManager workingSetManager = PlatformUI.getWorkbench().getWorkingSetManager();
        IWorkingSet[] workingSets = workingSetManager.getWorkingSets();
        if (workingSets != null && workingSets.length > 0) {
          workingSetManager
              .addToWorkingSets(
                  project,
              workingSets);
        }
        DisplayUtil.asyncExec(new Runnable(){
          @Override public void run() {
            MessageDialog.openInformation(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
                "Project " + projectName + " created",
                "The Eclipse project " + projectName + " has been created for filesystem folder " + folder.getAbsolutePath());
          }});
        return Status.OK_STATUS;
      }
    };
    wj.setPriority(Job.INTERACTIVE);
    wj.setUser(true);
    wj.setRule(ResourcesPlugin.getWorkspace().getRoot());
    wj.schedule();
    return true;
  }
View Full Code Here

          JavaProject javaProject = (JavaProject)delta.getElement();
          projectsToTouch[i] = javaProject.getProject();
        }
        if (projectsToTouch.length > 0) {
          if (asynchronous){
            WorkspaceJob touchJob = new WorkspaceJob(Messages.updating_external_archives_jobName) {
             
              public IStatus runInWorkspace(IProgressMonitor progressMonitor) throws CoreException {
                try {
                  if (progressMonitor != null)
                    progressMonitor.beginTask("", projectsToTouch.length); //$NON-NLS-1$
                  touchProjects(projectsToTouch, progressMonitor);
                }
                finally {
                  if (progressMonitor != null)
                    progressMonitor.done();
                }
                return Status.OK_STATUS;
              }
             
              public boolean belongsTo(Object family) {
                return ResourcesPlugin.FAMILY_MANUAL_REFRESH == family;
              }
            };
            touchJob.schedule();
          }
          else {
            // touch the projects to force them to be recompiled while taking the workspace lock
            //   so that there is no concurrency with the Java builder
            // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=96575
View Full Code Here

      String jobname = NLS.bind(UIText.MergeAction_JobNameMerge, refName);
      final MergeOperation op = new MergeOperation(repository, refName);
      op.setSquash(mergeTargetSelectionDialog.isMergeSquash());
      op.setFastForwardMode(mergeTargetSelectionDialog.getFastForwardMode());
      op.setCommit(mergeTargetSelectionDialog.isCommit());
      Job job = new WorkspaceJob(jobname) {
        @Override
        public IStatus runInWorkspace(IProgressMonitor monitor) {
          try {
            op.execute(monitor);
          } catch (final CoreException e) {
            return e.getStatus();
          }
          return Status.OK_STATUS;
        }
      };
      job.setUser(true);
      job.setRule(op.getSchedulingRule());
      job.addJobChangeListener(new JobChangeAdapter() {
        @Override
        public void done(IJobChangeEvent cevent) {
          IStatus result = cevent.getJob().getResult();
          if (result.getSeverity() == IStatus.CANCEL)
            Display.getDefault().asyncExec(new Runnable() {
              public void run() {
                // don't use getShell(event) here since
                // the active shell has changed since the
                // execution has been triggered.
                Shell shell = PlatformUI.getWorkbench()
                    .getActiveWorkbenchWindow().getShell();
                MessageDialog
                    .openInformation(
                        shell,
                        UIText.MergeAction_MergeCanceledTitle,
                        UIText.MergeAction_MergeCanceledMessage);
              }
            });
          else if (!result.isOK())
            Activator.handleError(result.getMessage(), result
                .getException(), true);
          else
            Display.getDefault().asyncExec(new Runnable() {
              public void run() {
                Shell shell = PlatformUI.getWorkbench()
                    .getActiveWorkbenchWindow().getShell();
                MergeResultDialog.getDialog(shell, repository, op
                    .getResult()).open();
              }
            });
        }
      });
      job.schedule();
    }
    return null;
  }
View Full Code Here

TOP

Related Classes of org.eclipse.core.resources.WorkspaceJob

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.