From eceaff6408bd733bed3ec1cb2a8f8f0d2a19e888 Mon Sep 17 00:00:00 2001 From: Daniel_M_Williams Date: Sat, 7 Nov 2020 10:19:01 -0500 Subject: [PATCH] [fixes #810] Selecting 'Save As...' > 'All Files' no longer throws an unneccessary exception --- .../gui/main/SaveAsFileChooser.java | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java b/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java index 80bffaaf7..36d84aa5d 100644 --- a/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java +++ b/swing/src/net/sf/openrocket/gui/main/SaveAsFileChooser.java @@ -79,31 +79,32 @@ class RememberFilenamePropertyListener implements PropertyChangeListener { @Override 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()){ this.oldFileName = ((File)event.getOldValue()).getName(); } - return; - }else if(JFileChooser.FILE_FILTER_CHANGED_PROPERTY == event.getPropertyName()){ - JFileChooser chooser = (JFileChooser)event.getSource(); - SimpleFileFilter filter = (SimpleFileFilter)(chooser.getFileFilter()); - String desiredExtension = filter.getExtensions()[0]; - - if( null == this.oldFileName){ - return; - } - String thisFileName = this.oldFileName; - - if ( filter.accept( new File(thisFileName))){ - // nop - return; - }else{ - String[] splitResults = thisFileName.split("\\."); - if(0 < splitResults.length){ - thisFileName = splitResults[0]; + }else if(JFileChooser.FILE_FILTER_CHANGED_PROPERTY.equals(event.getPropertyName())) { + JFileChooser chooser = (JFileChooser)event.getSource(); + if( chooser.getFileFilter() instanceof SimpleFileFilter) { + SimpleFileFilter filter = (SimpleFileFilter) (chooser.getFileFilter()); + String desiredExtension = filter.getExtensions()[0]; + + if (null == this.oldFileName) { + return; + } + String thisFileName = this.oldFileName; + + if (filter.accept(new File(thisFileName))) { + // nop + return; + } else { + String[] splitResults = thisFileName.split("\\."); + if (0 < splitResults.length) { + thisFileName = splitResults[0]; + } + chooser.setSelectedFile(new File(thisFileName + desiredExtension)); + return; } - chooser.setSelectedFile(new File( thisFileName+desiredExtension)); - return; } } }