private void outputValidationToErrorListTable() {
      ErrorListTable errorTable = MainWindow.getErrorListTable();
      errorTable.blankOut();
      ArrayList<Incompliance> incompliances = MainWindow.aggregateIncompliances();

      int count = incompliances.size();
      outputMessage(count);

      if (count != 0) errorTable.yieldTableFrom(incompliances);

      ErrorListTable.setIcon(errorTable, count);
    }
  /**
   * Initializes the new task window with selected directory that contains the edf files and the
   * output log file name
   *
   * @param edf_dir source edf file directory
   * @param output output file name
   */
  public NewTask_for_ValidityCommandLine(String edf_dir, String output) { // TODO

    super(new JFrame(), false);

    MainWindow.log = output;

    File afile = new File(edf_dir);
    if (afile.exists()) {
      // (1) search for the edf files contained in chosen folder.
      sourceFiles = new ArrayList<File>();
      Collection<File> fileCollection =
          FileUtils.listFiles(
              afile, new String[] {"edf", "Edf", "eDf", "edF", "EDf", "EdF", "eDF", "EDF"}, true);
      if (fileCollection != null) {
        int i = 0;
        for (File file : fileCollection) {
          addElementIntoLog("   + " + (++i) + ": " + file.getAbsolutePath(), true, output);
          sourceFiles.add(file);
        }
      }

      // (2) simulate GUI operation on an invisible GUI.
      MainWindow mainWindow = new MainWindow();
      MainWindow.wkEdfFiles = sourceFiles;
      mainWindow.setVisible(false);

      initUI();
      setVisible(false);
      ValidateFinishButtonListener validateFinishButtonListener =
          new ValidateFinishButtonListener();
      validateFinishButtonListener.createWorkingDirectory();
      // Using current loaded EDF file array to generate EDF file header arrays
      yieldNewEDFHeaders();
      validateFinishButtonListener.yieldEiaTable();
      // Generate ESATable using global defined sourceFiles(of type EDF)
      validateFinishButtonListener.yieldEsaTables();

      // (3) validate the chosen EDF files.
      (new MainWindow.VerifyHeaderListener()).verifyHeaders();
      ArrayList<Incompliance> aggregateIncompliances = MainWindow.aggregateIncompliances();
      generateInvalidReport(aggregateIncompliances);
    }
  }