/**
   * This method is relocated and minor modification was made
   *
   * @author wei wang, 5/21/2014
   */
  private void yieldNewEDFHeaders() {
    int numberOfOpenedFiles = sourceFiles.size();
    ArrayList<EDFFileHeader> edfHeaders = new ArrayList<EDFFileHeader>(numberOfOpenedFiles);
    ArrayList<EDFFileHeader> edfHeaderCopies = new ArrayList<EDFFileHeader>(numberOfOpenedFiles);
    MainWindow.srcEdfFileHeaders = new ArrayList<EDFFileHeader>(numberOfOpenedFiles);

    // read each file to build headers
    File currentEDF;
    for (int i = 0; i < numberOfOpenedFiles; i++) {
      // Loop through each of the EDF files read in
      currentEDF = sourceFiles.get(i);
      // For progress bar
      if ((i + 1) % (scale * 2) == 0) {
        task.increaseProgress();
      }

      try {
        RandomAccessFile raf = new RandomAccessFile(currentEDF, "r");
        // EDF headers array:
        edfHeaders.add(i, new EDFFileHeader(raf, currentEDF, false));
        // raf was closed in the 'new EDFFileHeader(raf, currentFile, false)' method
        raf = new RandomAccessFile(currentEDF, "r");
        edfHeaderCopies.add(i, new EDFFileHeader(raf, currentEDF, false));
      } catch (IOException f) {
        JOptionPane.showMessageDialog(
            null,
            "File invalid: wrong format or empty. ",
            "Data read error",
            JOptionPane.ERROR_MESSAGE);
      }
    }
    MainWindow.setSrcEdfFileHeaders(edfHeaders);
    MainWindow.setDupEdfFileHeaders(edfHeaderCopies);
  }