/**
   * ************************************************************ The above feature improvement was
   * made by Gang Shu on February 7, 2014
   * ************************************************************
   */
  private void initUI() {
    this.setSize(new Dimension(dialogWidth, dialogHeight));

    srcFilesDirField = createTextField();
    srcFilesDirField.setEditable(false);
    srcFilesDirField.addMouseListener(new BrowseSourceFilesBtnListener());

    workingDirField = createTextField();
    workingDirField.setEditable(true);
    workingDirField.addMouseListener(new BrowseWorkingDirButtonListener());

    buildSelectedFileCountLabel();

    srcFilesBrowseBtn = new JButton("Browse...");
    srcFilesBrowseBtn.addActionListener(new BrowseSourceFilesBtnListener());

    outputDirBrowseBtn = new JButton("Browse...");
    outputDirBrowseBtn.addActionListener(new BrowseWorkingDirButtonListener());

    finishButton = new JButton("Finish");
    vfbListener = new ValidateFinishButtonListener();
    finishButton.addActionListener(vfbListener);
    //        finishButton.addActionListener(new ValidateFinishButtonListener());

    cancelButton = new JButton("Cancel");
    InputMap im = cancelButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    ActionMap am = cancelButton.getActionMap();
    im.put(KeyStroke.getKeyStroke("ESCAPE"), "Cancel");
    am.put("Cancel", new CancelAction());

    cancelButton.addActionListener(new CancelButtonListener());

    fileRadio = new JRadioButton("File Selections");
    fileRadio.setSelected(false);
    fileRadio.setToolTipText("select one or multiple EDF source files");
    fileRadio.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if (dirMode == true) {
              enableOutputDirPanel(false);
              resetActiveAreas();
              dirMode = false;
            }
          }
        });

    dirRadio = new JRadioButton("Directory");
    dirRadio.setSelected(true);
    dirRadio.setToolTipText("select a source directory of EDF files");
    dirRadio.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if (dirMode == false) enableOutputDirPanel(false);
            resetActiveAreas();
            dirMode = true;
          }
        });

    yesOverwriteRadio = new JRadioButton("Yes");
    yesOverwriteRadio.setToolTipText("overwrite source files");
    yesOverwriteRadio.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            outputDirBrowseBtn.setEnabled(false);
            workingDirField.setEnabled(false);
            overwriteMode = true;
            MainWindow.setWriteMode(MainWindow.overwrite_mode);
            repaint();
          }
        });

    // noOverrideRadio = new JRadioButton("Save Changes to New Directory");
    noOverwriteRadio = new JRadioButton("No");
    noOverwriteRadio.setToolTipText("duplicate source files to new directory");
    noOverwriteRadio.setSelected(true);
    /** Bugfix to default write mode. (Mar. 5, 2014) */
    MainWindow.setWriteMode(MainWindow.duplicate_mode);
    /** Bugfix to default write mode. (Mar. 5, 2014) */
    noOverwriteRadio.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            outputDirBrowseBtn.setEnabled(true);
            workingDirField.setEnabled(true);
            if (workingDirectory != null) workingDirField.setText(workingDirectory.toString());
            overwriteMode = false;
            MainWindow.setWriteMode(MainWindow.duplicate_mode);

            repaint();
          }
        });
    enableOutputDirPanel(false);
    finishButton.setEnabled(false);
    // disable finish button until source and output have been chosen. -- Fangping, 08/03/2010
  }