Clean up method
This commit is contained in:
parent
dd344b261a
commit
c2bdd38246
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user