Clean up method

This commit is contained in:
SiboVG 2023-03-31 01:39:38 +02:00
parent dd344b261a
commit c2bdd38246

View File

@ -5,6 +5,7 @@ import java.beans.PropertyChangeListener;
import java.io.File; import java.io.File;
import javax.swing.JFileChooser; import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.document.OpenRocketDocument;
import net.sf.openrocket.document.StorageOptions; import net.sf.openrocket.document.StorageOptions;
@ -87,36 +88,49 @@ class RememberFilenamePropertyListener implements PropertyChangeListener {
@Override @Override
public void propertyChange(PropertyChangeEvent event) { public void propertyChange(PropertyChangeEvent event) {
if( JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(event.getPropertyName())){ String propertyName = event.getPropertyName();
if(null != event.getOldValue()){
this.oldFileName = ((File)event.getOldValue()).getName(); if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(propertyName)) {
handleSelectedFileChanged(event);
} else if (JFileChooser.FILE_FILTER_CHANGED_PROPERTY.equals(propertyName)) {
handleFileFilterChanged(event);
} }
}else if(JFileChooser.FILE_FILTER_CHANGED_PROPERTY.equals(event.getPropertyName())) { }
private void handleSelectedFileChanged(PropertyChangeEvent event) {
if (event.getOldValue() != null) {
oldFileName = ((File) event.getOldValue()).getName();
}
}
private void handleFileFilterChanged(PropertyChangeEvent event) {
JFileChooser chooser = (JFileChooser) event.getSource(); JFileChooser chooser = (JFileChooser) event.getSource();
if( chooser.getFileFilter() instanceof SimpleFileFilter) { FileFilter currentFilter = chooser.getFileFilter();
SimpleFileFilter filter = (SimpleFileFilter) (chooser.getFileFilter());
if (currentFilter instanceof SimpleFileFilter) {
SimpleFileFilter filter = (SimpleFileFilter) currentFilter;
String desiredExtension = filter.getExtensions()[0]; String desiredExtension = filter.getExtensions()[0];
if (null == this.oldFileName) { if (oldFileName == null) {
return; return;
} }
String thisFileName = this.oldFileName;
if (filter.accept(new File(thisFileName))) { String currentFileName = oldFileName;
// nop
return; if (!filter.accept(new File(currentFileName))) {
} else { currentFileName = removeExtension(currentFileName);
String[] splitResults = thisFileName.split("\\."); chooser.setSelectedFile(new File(currentFileName + desiredExtension));
if (0 < splitResults.length) {
thisFileName = splitResults[0];
}
chooser.setSelectedFile(new File(thisFileName + desiredExtension));
return;
}
} }
} }
} }
private String removeExtension(String fileName) {
String[] splitResults = fileName.split("\\.");
if (splitResults.length > 0) {
return splitResults[0];
}
return fileName;
}
} }