[fixes #810] Selecting 'Save As...' > 'All Files' no longer throws an unneccessary exception

This commit is contained in:
Daniel_M_Williams 2020-11-07 10:19:01 -05:00
parent 4b9070f124
commit eceaff6408

View File

@ -79,31 +79,32 @@ class RememberFilenamePropertyListener implements PropertyChangeListener {
@Override @Override
public void propertyChange(PropertyChangeEvent event){ public void propertyChange(PropertyChangeEvent event){
if( JFileChooser.SELECTED_FILE_CHANGED_PROPERTY == event.getPropertyName()){ if( JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(event.getPropertyName())){
if(null != event.getOldValue()){ if(null != event.getOldValue()){
this.oldFileName = ((File)event.getOldValue()).getName(); this.oldFileName = ((File)event.getOldValue()).getName();
} }
return; }else if(JFileChooser.FILE_FILTER_CHANGED_PROPERTY.equals(event.getPropertyName())) {
}else if(JFileChooser.FILE_FILTER_CHANGED_PROPERTY == event.getPropertyName()){ JFileChooser chooser = (JFileChooser)event.getSource();
JFileChooser chooser = (JFileChooser)event.getSource(); if( chooser.getFileFilter() instanceof SimpleFileFilter) {
SimpleFileFilter filter = (SimpleFileFilter)(chooser.getFileFilter()); SimpleFileFilter filter = (SimpleFileFilter) (chooser.getFileFilter());
String desiredExtension = filter.getExtensions()[0]; String desiredExtension = filter.getExtensions()[0];
if( null == this.oldFileName){ if (null == this.oldFileName) {
return; return;
} }
String thisFileName = this.oldFileName; String thisFileName = this.oldFileName;
if ( filter.accept( new File(thisFileName))){ if (filter.accept(new File(thisFileName))) {
// nop // nop
return; return;
}else{ } else {
String[] splitResults = thisFileName.split("\\."); String[] splitResults = thisFileName.split("\\.");
if(0 < splitResults.length){ if (0 < splitResults.length) {
thisFileName = splitResults[0]; thisFileName = splitResults[0];
}
chooser.setSelectedFile(new File(thisFileName + desiredExtension));
return;
} }
chooser.setSelectedFile(new File( thisFileName+desiredExtension));
return;
} }
} }
} }