/**
   * Creates and initializes a file chooser.
   *
   * @return the initialized file chooser
   */
  protected JFileChooser prepareFileChooser() {
    JFileChooser chooser = new JFileChooser();
    File currDir = Misc.findStartingDirectory();
    FileUtil.preventFileChooserSymlinkTraversal(chooser, currDir);
    HelpCtx.setHelpIDString(chooser, getHelpCtx().getHelpID());

    FileFilterAdapter mainFilter =
        new FileFilterAdapter(".jrxml", "JasperReports Template (.jrxml)");
    chooser.addChoosableFileFilter(mainFilter);
    chooser.addChoosableFileFilter(new FileFilterAdapter(".jrctx", "Chart Theme file (.jrctx)"));
    chooser.addChoosableFileFilter(new FileFilterAdapter(".jrtx", "Style Template file (.jrtx)"));
    chooser.addChoosableFileFilter(
        new FileFilterAdapter(".properties", "Resource Bundle (.properties)"));
    chooser.addChoosableFileFilter(
        new FileFilterAdapter(".jasper", "Compiled JasperReport (.jasper)"));

    chooser.setFileFilter(mainFilter);

    chooser.setMultiSelectionEnabled(true);
    return chooser;
  }