Use SaveFileChooser in other parts of OR
This commit is contained in:
parent
e1c86f6a74
commit
605c92b325
@ -27,6 +27,7 @@ import javax.swing.event.TreeSelectionListener;
|
||||
import javax.swing.tree.TreeNode;
|
||||
import javax.swing.tree.TreePath;
|
||||
|
||||
import net.sf.openrocket.gui.widgets.SaveFileChooser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -363,7 +364,7 @@ public class PrintDialog extends JDialog implements TreeSelectionListener {
|
||||
*/
|
||||
private boolean onSavePDF() {
|
||||
|
||||
JFileChooser chooser = new JFileChooser();
|
||||
JFileChooser chooser = new SaveFileChooser();
|
||||
chooser.setFileFilter(FileHelper.PDF_FILTER);
|
||||
|
||||
// Select initial directory
|
||||
|
@ -52,6 +52,7 @@ import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import javax.swing.tree.TreePath;
|
||||
|
||||
import net.sf.openrocket.arch.SystemInfo;
|
||||
import net.sf.openrocket.gui.widgets.SaveFileChooser;
|
||||
import net.sf.openrocket.rocketcomponent.FlightConfiguration;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -1154,7 +1155,7 @@ public class GeneralOptimizationDialog extends JDialog {
|
||||
trans.get("export.header"), trans.get("export.header.ttip"));
|
||||
|
||||
|
||||
JFileChooser chooser = new JFileChooser();
|
||||
JFileChooser chooser = new SaveFileChooser();
|
||||
chooser.setFileFilter(FileHelper.CSV_FILTER);
|
||||
chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory());
|
||||
chooser.setAccessory(csvOptions);
|
||||
|
@ -42,6 +42,7 @@ import net.sf.openrocket.gui.util.GUIUtil;
|
||||
import net.sf.openrocket.gui.util.Icons;
|
||||
import net.sf.openrocket.gui.util.SimpleFileFilter;
|
||||
import net.sf.openrocket.gui.util.SwingPreferences;
|
||||
import net.sf.openrocket.gui.widgets.SaveFileChooser;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.logging.LoggingSystemSetup;
|
||||
import net.sf.openrocket.logging.Markers;
|
||||
@ -200,7 +201,7 @@ public class PhotoFrame extends JFrame {
|
||||
final FileFilter png = new SimpleFileFilter(trans.get("PhotoFrame.fileFilter.png"),
|
||||
".png");
|
||||
|
||||
final JFileChooser chooser = new JFileChooser();
|
||||
final JFileChooser chooser = new SaveFileChooser();
|
||||
|
||||
chooser.addChoosableFileFilter(png);
|
||||
chooser.setFileFilter(png);
|
||||
|
@ -1512,11 +1512,6 @@ public class BasicFrame extends JFrame {
|
||||
|
||||
int option = chooser.showSaveDialog(BasicFrame.this);
|
||||
|
||||
// If the user entered an illegal filename, show the dialog again
|
||||
while (option == SaveFileChooser.ILLEGAL_FILENAME_ERROR) {
|
||||
option = chooser.showSaveDialog(BasicFrame.this);
|
||||
}
|
||||
|
||||
if (option != JFileChooser.APPROVE_OPTION) {
|
||||
log.info(Markers.USER_MARKER, "User decided not to save, option=" + option);
|
||||
return false;
|
||||
|
@ -43,6 +43,7 @@ import net.sf.openrocket.arch.SystemInfo;
|
||||
import net.sf.openrocket.gui.components.CsvOptionPanel;
|
||||
import net.sf.openrocket.gui.util.FileHelper;
|
||||
import net.sf.openrocket.gui.util.SwingPreferences;
|
||||
import net.sf.openrocket.gui.widgets.SaveFileChooser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -403,25 +404,25 @@ public class SimulationPanel extends JPanel {
|
||||
return;
|
||||
}
|
||||
|
||||
JFileChooser fch = setUpSimExportCSVFileChooser();
|
||||
int selectionStatus = fch.showSaveDialog(tableParent);
|
||||
JFileChooser chooser = setUpSimExportCSVFileChooser();
|
||||
int selectionStatus = chooser.showSaveDialog(tableParent);
|
||||
if (selectionStatus != JFileChooser.APPROVE_OPTION) {
|
||||
log.debug("User cancelled CSV export");
|
||||
return;
|
||||
}
|
||||
|
||||
// Fetch the info from the file chooser
|
||||
File CSVFile = fch.getSelectedFile();
|
||||
File CSVFile = chooser.getSelectedFile();
|
||||
CSVFile = FileHelper.forceExtension(CSVFile, "csv");
|
||||
if (!FileHelper.confirmWrite(CSVFile, SimulationPanel.this)) {
|
||||
log.debug("User cancelled CSV export overwrite");
|
||||
return;
|
||||
}
|
||||
|
||||
String separator = ((CsvOptionPanel) fch.getAccessory()).getFieldSeparator();
|
||||
int precision = ((CsvOptionPanel) fch.getAccessory()).getDecimalPlaces();
|
||||
boolean isExponentialNotation = ((CsvOptionPanel) fch.getAccessory()).isExponentialNotation();
|
||||
((CsvOptionPanel) fch.getAccessory()).storePreferences();
|
||||
String separator = ((CsvOptionPanel) chooser.getAccessory()).getFieldSeparator();
|
||||
int precision = ((CsvOptionPanel) chooser.getAccessory()).getDecimalPlaces();
|
||||
boolean isExponentialNotation = ((CsvOptionPanel) chooser.getAccessory()).isExponentialNotation();
|
||||
((CsvOptionPanel) chooser.getAccessory()).storePreferences();
|
||||
|
||||
// Handle some special separator options from CsvOptionPanel
|
||||
if (separator.equals(trans.get("CsvOptionPanel.separator.space"))) {
|
||||
@ -439,29 +440,29 @@ public class SimulationPanel extends JPanel {
|
||||
* @return The file chooser.
|
||||
*/
|
||||
private JFileChooser setUpSimExportCSVFileChooser() {
|
||||
JFileChooser fch = new JFileChooser();
|
||||
fch.setDialogTitle(trans.get("simpanel.pop.exportToCSV.save.dialog.title"));
|
||||
fch.setFileFilter(FileHelper.CSV_FILTER);
|
||||
fch.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory());
|
||||
fch.setAcceptAllFileFilterUsed(false);
|
||||
JFileChooser chooser = new SaveFileChooser();
|
||||
chooser.setDialogTitle(trans.get("simpanel.pop.exportToCSV.save.dialog.title"));
|
||||
chooser.setFileFilter(FileHelper.CSV_FILTER);
|
||||
chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory());
|
||||
chooser.setAcceptAllFileFilterUsed(false);
|
||||
|
||||
// Default output CSV to same name as the document's rocket name.
|
||||
String fileName = document.getRocket().getName() + ".csv";
|
||||
fch.setSelectedFile(new File(fileName));
|
||||
chooser.setSelectedFile(new File(fileName));
|
||||
|
||||
// Add CSV options to FileChooser
|
||||
CsvOptionPanel CSVOptions = new CsvOptionPanel(SimulationTableCSVExport.class);
|
||||
fch.setAccessory(CSVOptions);
|
||||
chooser.setAccessory(CSVOptions);
|
||||
|
||||
// TODO: update this dynamically instead of hard-coded values
|
||||
// The macOS file chooser has an issue where it does not update its size when the accessory is added.
|
||||
if (SystemInfo.getPlatform() == SystemInfo.Platform.MAC_OS) {
|
||||
Dimension currentSize = fch.getPreferredSize();
|
||||
Dimension currentSize = chooser.getPreferredSize();
|
||||
Dimension newSize = new Dimension((int) (1.5 * currentSize.width), (int) (1.3 * currentSize.height));
|
||||
fch.setPreferredSize(newSize);
|
||||
chooser.setPreferredSize(newSize);
|
||||
}
|
||||
|
||||
return fch;
|
||||
return chooser;
|
||||
}
|
||||
|
||||
private Simulation[] getSelectedSimulations() {
|
||||
|
@ -26,6 +26,7 @@ import net.sf.openrocket.gui.util.FileHelper;
|
||||
import net.sf.openrocket.gui.util.GUIUtil;
|
||||
import net.sf.openrocket.gui.util.Icons;
|
||||
import net.sf.openrocket.gui.util.SwingPreferences;
|
||||
import net.sf.openrocket.gui.widgets.SaveFileChooser;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
import net.sf.openrocket.startup.Preferences;
|
||||
@ -173,7 +174,7 @@ public class SimulationPlotDialog extends JDialog {
|
||||
}
|
||||
|
||||
private boolean doPngExport(ChartPanel chartPanel, JFreeChart chart){
|
||||
JFileChooser chooser = new JFileChooser();
|
||||
JFileChooser chooser = new SaveFileChooser();
|
||||
chooser.setAcceptAllFileFilterUsed(false);
|
||||
chooser.setFileFilter(FileHelper.PNG_FILTER);
|
||||
chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory());
|
||||
|
@ -32,6 +32,7 @@ import net.sf.openrocket.gui.util.FileHelper;
|
||||
import net.sf.openrocket.gui.util.GUIUtil;
|
||||
import net.sf.openrocket.gui.util.SaveCSVWorker;
|
||||
import net.sf.openrocket.gui.util.SwingPreferences;
|
||||
import net.sf.openrocket.gui.widgets.SaveFileChooser;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.simulation.FlightData;
|
||||
import net.sf.openrocket.simulation.FlightDataBranch;
|
||||
@ -219,7 +220,7 @@ public class SimulationExportPanel extends JPanel {
|
||||
}
|
||||
|
||||
public boolean doExport() {
|
||||
JFileChooser chooser = new JFileChooser();
|
||||
JFileChooser chooser = new SaveFileChooser();
|
||||
chooser.setFileFilter(FileHelper.CSV_FILTER);
|
||||
chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory());
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
package net.sf.openrocket.gui.widgets;
|
||||
|
||||
import net.sf.openrocket.gui.main.BasicFrame;
|
||||
import net.sf.openrocket.l10n.Translator;
|
||||
import net.sf.openrocket.startup.Application;
|
||||
|
||||
@ -36,7 +37,15 @@ public class SaveFileChooser extends JFileChooser {
|
||||
String.format(trans.get("SaveAsFileChooser.illegalFilename.message"), filename, c),
|
||||
trans.get("SaveAsFileChooser.illegalFilename.title"),
|
||||
JOptionPane.WARNING_MESSAGE);
|
||||
return ILLEGAL_FILENAME_ERROR;
|
||||
|
||||
option = ILLEGAL_FILENAME_ERROR;
|
||||
|
||||
// If the user entered an illegal filename, show the dialog again
|
||||
while (option == SaveFileChooser.ILLEGAL_FILENAME_ERROR) {
|
||||
option = showSaveDialog(parent);
|
||||
}
|
||||
|
||||
return option;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,7 @@ import net.sf.openrocket.gui.preset.PresetResultListener;
|
||||
import net.sf.openrocket.gui.util.FileHelper;
|
||||
import net.sf.openrocket.gui.util.Icons;
|
||||
import net.sf.openrocket.gui.util.SwingPreferences;
|
||||
import net.sf.openrocket.gui.widgets.SaveFileChooser;
|
||||
import net.sf.openrocket.logging.Markers;
|
||||
import net.sf.openrocket.material.Material;
|
||||
import net.sf.openrocket.preset.ComponentPreset;
|
||||
@ -404,7 +405,7 @@ public class ComponentPresetEditor extends JPanel implements PresetResultListene
|
||||
private boolean saveAsORC() throws JAXBException, IOException {
|
||||
File file = null;
|
||||
|
||||
final JFileChooser chooser = new JFileChooser();
|
||||
final JFileChooser chooser = new SaveFileChooser();
|
||||
chooser.addChoosableFileFilter(FileHelper.OPEN_ROCKET_COMPONENT_FILTER);
|
||||
|
||||
chooser.setFileFilter(FileHelper.OPEN_ROCKET_COMPONENT_FILTER);
|
||||
|
Loading…
x
Reference in New Issue
Block a user