Java Code Examples for com.intellij.openapi.progress.ProgressIndicator.start()

The following are Jave code examples for showing how to use start() of the com.intellij.openapi.progress.ProgressIndicator class. You can vote up the examples you like. Your votes will be used in our system to get more good examples.
Example 1
Project: intellij-ce-playground   File: SliceNode.java   Source Code and License Vote up 6 votes
@Override
@NotNull
public Collection<? extends AbstractTreeNode> getChildren() {
  ProgressIndicator current = ProgressManager.getInstance().getProgressIndicator();
  ProgressIndicator indicator = current == null ? new ProgressIndicatorBase() : current;
  if (current == null) {
    indicator.start();
  }
  final Collection[] nodes = new Collection[1];
  ProgressManager.getInstance().executeProcessUnderProgress(new Runnable() {
    @Override
    public void run() {
      nodes[0] = getChildrenUnderProgress(ProgressManager.getInstance().getProgressIndicator());
    }
  }, indicator);
  if (current == null) {
    indicator.stop();
  }
  return nodes[0];
}
 
Example 2
Project: intellij-ce-playground   File: InstallComponentsPath.java   Source Code and License Vote up 6 votes
@NotNull
@Override
protected File perform(@NotNull ProgressIndicator indicator, @NotNull File file) throws WizardException {
  indicator.setText("Moving downloaded SDK");
  indicator.start();
  try {
    File root = getSdkRoot(file);
    if (!root.renameTo(myDestination)) {
      FileUtil.copyDir(root, myDestination);
      FileUtil.delete(root); // Failure to delete it is not critical, the source is in temp folder.
      // No need to abort installation.
    }
    return myDestination;
  }
  catch (IOException e) {
    throw new WizardException("Unable to move Android SDK", e);
  }
  finally {
    indicator.setFraction(1.0);
    indicator.stop();
  }
}
 
Example 3
Project: intellij-ce-playground   File: DownloadOperation.java   Source Code and License Vote up 6 votes
@Override
@NotNull
protected File perform(@NotNull ProgressIndicator indicator, @NotNull File arg) throws WizardException, InstallationCancelledException {
  File file = new File(myContext.getTempDirectory(), getFileName(myUrl));
  myContext.print(String.format("Downloading %1$s from %2$s\n", file.getName(), myUrl), ConsoleViewContentType.SYSTEM_OUTPUT);
  indicator.start();
  try {
    //noinspection StatementWithEmptyBody
    while (!attemptDownload(file, indicator)) {
      // Nothing to do
    }
    return file;
  }
  catch (ProcessCanceledException e) {
    throw new InstallationCancelledException();
  }
}
 
Example 4
Project: intellij-ce-playground   File: BackgroundTaskUtil.java   Source Code and License Vote up 4 votes
@CalledInAwt
@NotNull
public static ProgressIndicator executeOnPooledThread(@NotNull final Consumer<ProgressIndicator> task, @NotNull Disposable parent) {
  final ModalityState modalityState = ModalityState.current();
  final ProgressIndicator indicator = new EmptyProgressIndicator() {
    @NotNull
    @Override
    public ModalityState getModalityState() {
      return modalityState;
    }
  };
  indicator.start();

  final Disposable disposable = new Disposable() {
    @Override
    public void dispose() {
      if (indicator.isRunning()) indicator.cancel();
    }
  };
  Disposer.register(parent, disposable);

  ApplicationManager.getApplication().executeOnPooledThread(new Runnable() {
    @Override
    public void run() {
      ProgressManager.getInstance().executeProcessUnderProgress(new Runnable() {
        @Override
        public void run() {
          try {
            task.consume(indicator);
          }
          finally {
            indicator.stop();
            Disposer.dispose(disposable);
          }
        }
      }, indicator);
    }
  });

  return indicator;
}
 
Example 5
Project: intellij-ce-playground   File: UnpackOperation.java   Source Code and License Vote up 4 votes
/**
 * @throws IOException     when tar fails in a way that we may retry the operation
 * @throws WizardException if retry is not possible (e.g. no tar executable)
 */
@NotNull
private static File untar(final File archive, File destination, final InstallContext context, final ProgressIndicator indicator)
  throws IOException, WizardException {
  if (!destination.mkdirs()) {
    throw new WizardException("Cannot create temporary directory to extract files");
  }
  indicator.start();
  indicator.setFraction(0.0); // 0%
  try {
    GeneralCommandLine line =
      new GeneralCommandLine(getTarExecutablePath(), TAR_FLAGS_EXTRACT_UNPACK_VERBOSE_FILENAME_TARGETDIR, archive.getAbsolutePath(),
                             destination.getAbsolutePath());
    CapturingAnsiEscapesAwareProcessHandler handler = new CapturingAnsiEscapesAwareProcessHandler(line);
    handler.addProcessListener(new ProcessAdapter() {
      @Override
      public void onTextAvailable(ProcessEvent event, Key outputType) {
        String string = event.getText();
        if (!StringUtil.isEmptyOrSpaces(string)) {
          if (string.startsWith(EXTRACT_OPERATION_OUTPUT)) { // Extract operation prefix
            String fileName = string.substring(EXTRACT_OPERATION_OUTPUT.length()).trim();
            indicator.setText(fileName);
          }
          else if (ProcessOutputTypes.STDOUT.equals(outputType)) {
            indicator.setText(string.trim());
          }
          else {
            context.print(string, ConsoleViewContentType.getConsoleViewType(outputType));
          }
        }
      }
    });
    if (handler.runProcess().getExitCode() != 0) {
      throw new IOException("Unable to unpack archive file");
    }
    return destination;
  }
  catch (ExecutionException e) {
    throw new WizardException("Unable to run tar utility");
  }
  finally {
    indicator.setFraction(1.0); // 100%
    indicator.stop();
  }
}