@Override
  public void run(final TableLoadOption... tableLoadOptions) throws Exception {
    IN input = atsReport.getInputParameters();
    if (input != null) {
      final OUT output = atsReport.createOutputParameters();
      IOperation operation = atsReport.createReportOperation(input, output, tableLoadOptions);
      Operations.executeAsJob(
          operation,
          true,
          Job.LONG,
          new JobChangeAdapter() {

            @Override
            public void done(IJobChangeEvent event) {
              super.done(event);
              try {
                atsReport.displayResults(output);
              } catch (OseeCoreException ex) {
                OseeLog.logf(
                    Activator.class,
                    OseeLevel.SEVERE_POPUP,
                    ex,
                    "Error displaying [%s]",
                    atsReport.getName());
              }
            }
          });
    }
  }
 public AtsReportXNavigateItemAction(final XNavigateItem parent, AtsReport<IN, OUT> atsReport) {
   super(parent, atsReport.getName(), atsReport.getKeyedImage());
   this.atsReport = atsReport;
 }