示例#1
0
  private DownloadSubmissionListener getDSLForDownloadBatch(
      final long totalSize, String barCaption) {
    final ProgressMonitor progressBar =
        new ProgressMonitor(frame, barCaption, "Starting...", 0, 10000);
    Notifications.fixupPM(progressBar, true);

    final ProgressTracker tracker = new ProgressTracker();
    tracker.setExpectedMaximum(totalSize);
    return new DownloadSubmissionListener() {
      @Override
      public void fileSubmitted(FileSystemEntry file) {
        tracker.progress(file.getSize());
        progressBar.setProgress((int) (tracker.percentComplete() * 100f));
        progressBar.setNote(tracker.describe());
      }

      @Override
      public boolean isCancelled() {
        return progressBar.isCanceled();
      }

      @Override
      public void complete() {
        progressBar.close();
      }
    };
  }