package org.jabref.gui.exporter; import java.io.File; import java.util.Locale; import javax.swing.filechooser.FileFilter; import org.jabref.logic.exporter.IExportFormat; /** * File filter that lets the user choose export format while choosing file to * export to. Contains a reference to the ExportFormat in question. */ public class ExportFileFilter extends FileFilter implements Comparable<ExportFileFilter> { private final IExportFormat format; private final String extension; private final String name; public ExportFileFilter(IExportFormat format) { this.format = format; this.extension = format.getExtension(); this.name = format.getDisplayName() + " (*" + extension + ')'; } public IExportFormat getExportFormat() { return format; } public String getExtension() { return extension; } @Override public boolean accept(File file) { if (file.isDirectory()) { return true; } else { return file.getPath().toLowerCase(Locale.ROOT).endsWith(extension); } } @Override public String getDescription() { return name; } @Override public int compareTo(ExportFileFilter o) { return name.compareTo(o.name); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (o instanceof ExportFileFilter) { return name.equals(((ExportFileFilter) o).name); } return false; } @Override public int hashCode() { return name.hashCode(); } }