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