package org.docear.plugin.pdfutilities.pdf; import java.io.File; import java.io.FileFilter; import java.util.regex.Pattern; import org.freeplane.core.util.Compat; public class PdfReaderFileFilter implements FileFilter { public boolean accept(File file) { if(Compat.isMacOsX()){ return true; } if(file == null || !file.exists() || !file.isFile()){ return false; } if(!Compat.isWindowsOS()){ return true; } if(isAdobe(file)){ return true; } if(isPdfXChange(file)){ return true; } if(isFoxit(file)){ return true; } return false; } public boolean isAdobe(File file){ return isAdobe(file.getName()); } public boolean isAcrobat(File file){ return isAcrobat(file.getName()); } public boolean isFoxit(File file){ return isFoxit(file.getName()); } public boolean isPdfXChange(File file){ return isPdfXChange(file.getName()); } public boolean isAdobe(String readerCommand) { Pattern regex = Pattern.compile("acrord.*.exe"); return regex.matcher(readerCommand.trim().toLowerCase()).find(); } public boolean isAcrobat(String readerCommand) { Pattern regex = Pattern.compile("acrob.*.exe"); return regex.matcher(readerCommand.trim().toLowerCase()).find(); } public boolean isFoxit(String readerCommand) { Pattern regex = Pattern.compile("foxit.*.exe"); return regex.matcher(readerCommand.trim().toLowerCase()).find(); } public boolean isPdfXChange(String readerCommand){ Pattern regex = Pattern.compile("pdfxcv.*.exe"); return regex.matcher(readerCommand.trim().toLowerCase()).find(); } }