/** * Utility method which checks the extension the given file. * * @param file the file * @return <code>true</code> if the given file path ends with one of the registered extensions, <code>false</code> * otherwise. */ public boolean checkExtension(File file) { return file != null && checkExtension(file.getName()); }
/** * Sets the current filename. * * @param currentFilename The current filename, or <code>null</code>. */ public void setCurrentFilename(String currentFilename) { Debug.trace("BeamFileChooser: setCurrentFilename(\"" + currentFilename + "\")"); String defaultExtension = getDefaultExtension(); if (getDialogType() != JFileChooser.OPEN_DIALOG) { if (currentFilename != null && defaultExtension != null) { FileFilter fileFilter = getFileFilter(); if (fileFilter instanceof BeamFileFilter) { BeamFileFilter filter = (BeamFileFilter) fileFilter; if (!filter.checkExtension(currentFilename)) { currentFilename = FileUtils.exchangeExtension(currentFilename, defaultExtension); } } else if (fileFilter instanceof FileNameExtensionFilter) { FileNameExtensionFilter filter = (FileNameExtensionFilter) fileFilter; if (!BeamFileFilter.checkExtensions(currentFilename, filter.getExtensions())) { currentFilename = FileUtils.exchangeExtension(currentFilename, defaultExtension); } } } } if (currentFilename != null && currentFilename.length() > 0) { setSelectedFile(new File(currentFilename)); } }
/** * Tests whether or not the given file is accepted by this filter. The default implementation returns * <code>true</code> if the given file is a directory or the path string ends with one of the registered extensions. * if no extension are defined, the method always returns <code>true</code> * * @param file the file to be or not be accepted. * @return <code>true</code> if given file is accepted by this filter */ @Override public boolean accept(File file) { if (!hasExtensions()) { return true; } // directories are accepted right away if (file.isDirectory()) { return true; } // otherwise name must end with one of the extensions return checkExtension(file); }
/** * Checks whether or not the given filename with one of the known file extensions. The known file extension of this * file chooser are those, which are registered using a {@link <code>BeamFileFilter</code>}. * * @param filename the filename to be checked * @return <code>true</code>, if the given file has a "known" extension * @see BeamFileFilter */ public boolean checkExtension(String filename) { if (filename != null) { FileFilter[] fileFilters = getChoosableFileFilters(); if (fileFilters != null) { for (FileFilter filter : fileFilters) { if (filter instanceof BeamFileFilter) { final BeamFileFilter beamFileFilter = (BeamFileFilter) filter; if (beamFileFilter.checkExtension(filename)) { return true; } } } } } return false; }
private void ensureSelectedFileHasValidExtension() { File selectedFile = getSelectedFile(); if (selectedFile != null) { BeamFileFilter mff = getBeamFileFilter(); if (mff != null && mff.getDefaultExtension() != null && !mff.checkExtension(selectedFile)) { selectedFile = FileUtils.exchangeExtension(selectedFile, mff.getDefaultExtension()); Debug.trace("mod. selected file: " + selectedFile.getPath()); setSelectedFile(selectedFile); } } }