/** * 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)); } }
/** * Called by the UI when the user hits the Approve button (labeled "Open" or "Save", by default). This can also be * called by the programmer. */ @Override public void approveSelection() { Debug.trace("BeamFileChooser: approveSelection(): selectedFile = " + getSelectedFile()); Debug.trace("BeamFileChooser: approveSelection(): currentFilename = " + getCurrentFilename()); Debug.trace("BeamFileChooser: approveSelection(): currentDirectory = " + getCurrentDirectory()); if (getDialogType() != JFileChooser.OPEN_DIALOG) { ensureSelectedFileHasValidExtension(); } super.approveSelection(); }