protected void onStateChange() {
    switch (getState()) {
      case DONE:
        makeBusy(false);

        loadingPanel.setLoading(false);
        raView.refresh();

        if (progressHandle != null) {
          progressHandle.finish();
        }

        break;
      case PENDING:
        runButton.setEnabled(true);
        break;
      case STARTED:
        runButton.setEnabled(false);
        loadingPanel.setLoading(true);
        progressHandle =
            ProgressHandleFactory.createHandle(
                "Processing Time Series...",
                new Cancellable() {
                  @Override
                  public boolean cancel() {
                    runButton.setEnabled(true);
                    return worker.cancel(true);
                  }
                });
        progressHandle.start();
        break;
    }
  }
 protected void clear() {
   runButton.setEnabled(true);
   raView.getDocument().setTsCollection(null);
   raView.refresh();
   stop();
 }