Package org.eclipse.core.resources

Examples of org.eclipse.core.resources.WorkspaceJob


      }
      jobName = NLS.bind(UIText.PullOperationUI_PullingTaskName,
          shortBranchName, repoName);
    } else
      jobName = UIText.PullOperationUI_PullingMultipleTaskName;
    Job job = new WorkspaceJob(jobName) {

      @Override
      public IStatus runInWorkspace(IProgressMonitor monitor) {
        execute(monitor);
        // we always return OK and handle display of errors on our own
        return Status.OK_STATUS;
      }

      @Override
      public boolean belongsTo(Object family) {
        if (JobFamilies.PULL.equals(family))
          return true;
        return super.belongsTo(family);
      }
    };
    job.setRule(ResourcesPlugin.getWorkspace().getRoot());
    job.setUser(true);
    job.addJobChangeListener(jobChangeListener);
    job.schedule();
  }
View Full Code Here


    final boolean restore = Activator.getDefault().getPreferenceStore()
        .getBoolean(UIPreferences.CHECKOUT_PROJECT_RESTORE);
    final BranchOperation bop = new BranchOperation(repository, target,
        !restore);

    Job job = new WorkspaceJob(jobname) {

      @Override
      public IStatus runInWorkspace(IProgressMonitor monitor) {
        try {
          if (restore) {
            final BranchProjectTracker tracker = new BranchProjectTracker(
                repository);
            final AtomicReference<IMemento> memento = new AtomicReference<IMemento>();
            bop.addPreExecuteTask(new PreExecuteTask() {

              public void preExecute(Repository pRepo,
                  IProgressMonitor pMonitor)
                  throws CoreException {
                // Snapshot current projects before checkout
                // begins
                memento.set(tracker.snapshot());
              }
            });
            bop.addPostExecuteTask(new PostExecuteTask() {

              public void postExecute(Repository pRepo,
                  IProgressMonitor pMonitor)
                  throws CoreException {
                IMemento snapshot = memento.get();
                if (snapshot == null)
                  return;
                // Save previous branch's projects and restore
                // current branch's projects
                tracker.save(snapshot).restore(pMonitor);
              }
            });
          }

          bop.execute(monitor);
        } catch (CoreException e) {
          switch (bop.getResult().getStatus()) {
          case CONFLICTS:
          case NONDELETED:
            break;
          default:
            return Activator.createErrorStatus(
                UIText.BranchAction_branchFailed, e);
          }
        } finally {
          GitLightweightDecorator.refresh();
        }
        return Status.OK_STATUS;
      }

      @Override
      public boolean belongsTo(Object family) {
        if (JobFamilies.CHECKOUT.equals(family))
          return true;
        return super.belongsTo(family);
      }
    };
    job.setUser(true);
    // Set scheduling rule to workspace because we may have to re-create
    // projects using BranchProjectTracker.
    if (restore)
      job.setRule(ResourcesPlugin.getWorkspace().getRoot());
    job.addJobChangeListener(new JobChangeAdapter() {
      @Override
      public void done(IJobChangeEvent cevent) {
        show(bop.getResult());
      }
    });
    job.schedule();
  }
View Full Code Here

    }

    final boolean deleteWorkDir = deleteWorkingDir;
    final boolean removeProj = removeProjects;

    Job job = new WorkspaceJob(UIText.RemoveCommand_RemoveRepositoriesJob) {

      @Override
      public IStatus runInWorkspace(IProgressMonitor monitor) {

        monitor.setTaskName(UIText.RepositoriesView_DeleteRepoDeterminProjectsMessage);
View Full Code Here

  public Object execute(ExecutionEvent event) throws ExecutionException {
    final Map<Repository, List<String>> repoPaths = getSubmodules(getSelectedNodes(event));

    if (!repoPaths.isEmpty()) {
      Job job = new WorkspaceJob(UIText.SubmoduleSyncCommand_Title) {

        @Override
        public IStatus runInWorkspace(IProgressMonitor monitor) {
          monitor.beginTask("", repoPaths.size()); //$NON-NLS-1$
          try {
            for (Entry<Repository, List<String>> entry : repoPaths
                .entrySet()) {
              SubmoduleSyncOperation op = new SubmoduleSyncOperation(
                  entry.getKey());
              if (entry.getValue() != null)
                for (String path : entry.getValue())
                  op.addPath(path);
              op.execute(new SubProgressMonitor(monitor, 1));
            }
          } catch (CoreException e) {
            Activator.logError(
                UIText.SubmoduleSyncCommand_SyncError, e);
          }
          return Status.OK_STATUS;
        }

        @Override
        public boolean belongsTo(Object family) {
          if (JobFamilies.SUBMODULE_SYNC.equals(family))
            return true;
          return super.belongsTo(family);
        }
      };
      job.setUser(true);
      job.schedule();
    }
    return null;
  }
View Full Code Here

          .getFastForwardMode());
      op.setCommit(mergeTargetSelectionDialog.isCommit());
    }

    String jobname = NLS.bind(UIText.MergeAction_JobNameMerge, refName);
    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 jobEvent) {
        IStatus result = jobEvent.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

    final String secondRefNameParam = secondRefName;

    final boolean includeLocal = getSelectedNodes(event).size() == 1;

    final Repository repo = node.getRepository();
    Job job = new WorkspaceJob(NLS.bind(UIText.SynchronizeCommand_jobName,
        repo.getDirectory())) {

      @Override
      public IStatus runInWorkspace(IProgressMonitor monitor) {
        GitSynchronizeData data;
        try {
          data = new GitSynchronizeData(repo, secondRefNameParam,
              refName, includeLocal);

          Set<IProject> projects = data.getProjects();
          IResource[] resources = projects
              .toArray(new IResource[projects.size()]);

          GitModelSynchronize.launch(data, resources);
        } catch (IOException e) {
          Activator.logError(e.getMessage(), e);
        }

        return Status.OK_STATUS;
      }
    };
    job.setUser(true);
    job.schedule();

    return null;
  }
View Full Code Here

    String repositoryName = Activator.getDefault().getRepositoryUtil()
        .getRepositoryName(repository);
    String jobName = MessageFormat
        .format(CoreText.IndexDiffCacheEntry_refreshingProjects,
            repositoryName);
    Job job = new WorkspaceJob(jobName) {

      @Override
      public IStatus runInWorkspace(IProgressMonitor monitor) {
        try {
          IProject[] validOpenProjects = ProjectUtil
              .getValidOpenProjects(repository);
          ProjectUtil.refreshResources(validOpenProjects, monitor);
        } catch (CoreException e) {
          return Activator.error(e.getMessage(), e);
        }
        refresh();
        return Status.OK_STATUS;
      }

    };
    job.setRule(ResourcesPlugin.getWorkspace().getRoot());
    job.schedule();
  }
View Full Code Here

  public Object execute(ExecutionEvent event) throws ExecutionException {
    final Map<Repository, List<String>> repoPaths = getSubmodules(getSelectedNodes(event));

    if (!repoPaths.isEmpty()) {
      Job job = new WorkspaceJob(UIText.SubmoduleUpdateCommand_Title) {

        @Override
        public IStatus runInWorkspace(IProgressMonitor monitor) {
          monitor.beginTask("", repoPaths.size()); //$NON-NLS-1$
          try {
            for (Entry<Repository, List<String>> entry : repoPaths
                .entrySet()) {
              SubmoduleUpdateOperation op = new SubmoduleUpdateOperation(
                  entry.getKey());
              if (entry.getValue() != null)
                for (String path : entry.getValue())
                  op.addPath(path);
              op.execute(new SubProgressMonitor(monitor, 1));
            }
          } catch (CoreException e) {
            Activator.logError(
                UIText.SubmoduleUpdateCommand_UpdateError, e);
          }
          return Status.OK_STATUS;
        }

        @Override
        public boolean belongsTo(Object family) {
          if (JobFamilies.SUBMODULE_UPDATE.equals(family))
            return true;
          return super.belongsTo(family);
        }
      };
      job.setUser(true);
      job.setRule(ResourcesPlugin.getWorkspace().getRoot());
      job.schedule();
    }
    return null;
  }
View Full Code Here

    final RevCommit commit = nodes.get(0).getObject();
    if (commit == null)
      return null;

    final StashApplyOperation op = new StashApplyOperation(repo, commit);
    Job job = new WorkspaceJob(MessageFormat.format(
        UIText.StashApplyCommand_jobTitle, commit.name())) {

      @Override
      public IStatus runInWorkspace(IProgressMonitor monitor) {
        try {
          op.execute(monitor);
        } catch (CoreException e) {
          return new Status(IStatus.ERROR, Activator.getPluginId(),
              MessageFormat.format(
                  UIText.StashApplyCommand_applyFailed,
                  commit.abbreviate(7).name(),
                  e.getLocalizedMessage()), e);
        }
        return Status.OK_STATUS;
      }

      @Override
      public boolean belongsTo(Object family) {
        if (JobFamilies.STASH.equals(family))
          return true;
        return super.belongsTo(family);
      }
    };
    job.setUser(true);
    job.setRule(op.getSchedulingRule());
    job.schedule();
    return null;
  }
View Full Code Here

    if (dialog.open() == Window.OK) {
      final String path = wizard.getPath();
      final String uri = wizard.getUri().toPrivateASCIIString();
      final SubmoduleAddOperation op = new SubmoduleAddOperation(repo,
          path, uri);
      Job job = new WorkspaceJob(MessageFormat.format(
          UIText.SubmoduleAddCommand_JobTitle, path, uri)) {

        @Override
        public IStatus runInWorkspace(IProgressMonitor monitor) {
          monitor.beginTask("", IProgressMonitor.UNKNOWN); //$NON-NLS-1$
          try {
            op.execute(monitor);
          } catch (CoreException e) {
            Activator.logError(UIText.SubmoduleAddCommand_AddError,
                e);
          }
          return Status.OK_STATUS;
        }

        @Override
        public boolean belongsTo(Object family) {
          if (JobFamilies.SUBMODULE_ADD.equals(family))
            return true;
          return super.belongsTo(family);
        }
      };
      job.setUser(true);
      job.setRule(op.getSchedulingRule());
      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.