use of javafx.stage.FileChooser in project jgnash by ccavanaugh.
the class JasperViewerDialogController method handleSaveAction.
@FXML
private void handleSaveAction() {
Preferences preferences = Preferences.userNodeForPackage(JasperViewerDialogController.class);
final String lastDir = preferences.get(LAST_DIR, null);
final FileChooser fileChooser = new FileChooser();
fileChooser.setTitle(ResourceUtils.getString("Title.SaveFile"));
if (lastDir != null) {
fileChooser.setInitialDirectory(new File(lastDir));
}
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("PDF Document", "*.pdf", "*.PDF"));
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("ODT Document", "*.odt", "*.ODT"));
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("DOCX Document", "*.docx", "*.DOCX"));
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("XLSX Document", "*.xlsx", "*.XLSX"));
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("CSV Document", "*.csv", "*.CSV"));
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("RTF Document", "*.rtf", "*.RTF"));
final File file = fileChooser.showSaveDialog(MainView.getPrimaryStage());
if (file != null) {
preferences.put(LAST_DIR, file.getParent());
switch(FileUtils.getFileExtension(file.getAbsolutePath()).toLowerCase(Locale.ROOT)) {
case "pdf":
try {
JasperExportManager.exportReportToPdfFile(jasperPrint.get(), file.getAbsolutePath());
} catch (final JRException e) {
StaticUIMethods.displayException(e);
}
break;
case "odt":
try {
final JROdtExporter exporter = new JROdtExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint.get()));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(file));
exporter.exportReport();
} catch (final JRException e) {
StaticUIMethods.displayException(e);
}
break;
case "docx":
try {
final JRDocxExporter exporter = new JRDocxExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint.get()));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(file));
exporter.exportReport();
} catch (final JRException e) {
StaticUIMethods.displayException(e);
}
break;
case "xlsx":
try {
final JRXlsExporter exporter = new JRXlsExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint.get()));
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(file));
final SimpleXlsReportConfiguration configuration = new SimpleXlsReportConfiguration();
configuration.setOnePagePerSheet(false);
exporter.setConfiguration(configuration);
exporter.exportReport();
} catch (final JRException e) {
StaticUIMethods.displayException(e);
}
break;
case "csv":
try {
final JRCsvExporter exporter = new JRCsvExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint.get()));
exporter.setExporterOutput(new SimpleWriterExporterOutput(file));
exporter.exportReport();
} catch (final JRException e) {
StaticUIMethods.displayException(e);
}
break;
case "rtf":
try {
final JRRtfExporter exporter = new JRRtfExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint.get()));
exporter.setExporterOutput(new SimpleWriterExporterOutput(file));
exporter.exportReport();
} catch (final JRException e) {
StaticUIMethods.displayException(e);
}
break;
default:
}
}
}
use of javafx.stage.FileChooser in project jgnash by ccavanaugh.
the class ReportActions method exportBalanceByMonthCSVReport.
public static void exportBalanceByMonthCSVReport() {
final Engine engine = EngineFactory.getEngine(EngineFactory.DEFAULT);
Objects.requireNonNull(engine);
final Preferences preferences = Preferences.userNodeForPackage(ReportActions.class);
final FXMLUtils.Pair<BalanceByMonthOptionsDialogController> pair = FXMLUtils.load(BalanceByMonthOptionsDialogController.class.getResource("BalanceByMonthOptionsDialog.fxml"), ResourceUtils.getString("Title.ReportOptions"));
pair.getController().forceDefaultCurrencyProperty().set(preferences.getBoolean(FORCE_CURRENCY, false));
pair.getStage().setResizable(false);
pair.getStage().showAndWait();
final boolean vertical = pair.getController().isVertical();
final boolean forceCurrency = pair.getController().forceDefaultCurrencyProperty().get();
final Optional<LocalDate[]> optional = pair.getController().getDates();
optional.ifPresent(localDates -> {
final String lastDir = preferences.get(LAST_DIR, null);
preferences.putBoolean(FORCE_CURRENCY, forceCurrency);
final FileChooser fileChooser = new FileChooser();
fileChooser.setTitle(ResourceUtils.getString("Title.SaveFile"));
if (lastDir != null) {
fileChooser.setInitialDirectory(new File(lastDir));
}
fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("CSV", "*.csv"));
final File file = fileChooser.showSaveDialog(MainView.getPrimaryStage());
if (file != null) {
preferences.put(LAST_DIR, file.getParent());
final BalanceByMonthCSVReport report;
if (forceCurrency) {
report = new BalanceByMonthCSVReport(file.getAbsolutePath(), localDates[0], localDates[1], engine.getDefaultCurrency(), vertical, AccountBalanceDisplayManager::convertToSelectedBalanceMode);
} else {
report = new BalanceByMonthCSVReport(file.getAbsolutePath(), localDates[0], localDates[1], null, vertical, AccountBalanceDisplayManager::convertToSelectedBalanceMode);
}
report.run();
}
});
}
use of javafx.stage.FileChooser in project jgnash by ccavanaugh.
the class ImportMt940FxAction method showAndWait.
static void showAndWait() {
final ResourceBundle resources = ResourceUtils.getBundle();
final Engine engine = EngineFactory.getEngine(EngineFactory.DEFAULT);
if (engine == null || engine.getRootAccount().getChildCount() == 0) {
jgnash.ui.StaticUIMethods.displayError(resources.getString("Message.Error.CreateBasicAccounts"));
return;
}
final FileChooser fileChooser = configureFileChooser();
fileChooser.setTitle(resources.getString("Title.SelFile"));
final File file = fileChooser.showOpenDialog(MainView.getPrimaryStage());
if (file != null) {
Preferences pref = Preferences.userNodeForPackage(ImportMt940FxAction.class);
pref.put(LAST_DIR, file.getParentFile().getAbsolutePath());
new Thread(new ImportTask(file)).start();
}
}
use of javafx.stage.FileChooser in project jgnash by ccavanaugh.
the class ImportMt940FxAction method configureFileChooser.
private static FileChooser configureFileChooser() {
final Preferences pref = Preferences.userNodeForPackage(ImportMt940FxAction.class);
final FileChooser fileChooser = new FileChooser();
fileChooser.setInitialDirectory(new File(pref.get(LAST_DIR, System.getProperty("user.home"))));
fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("All Files (*.*)", "*.*"));
return fileChooser;
}
use of javafx.stage.FileChooser in project trex-stateless-gui by cisco-system-traffic-generator.
the class FileManager method getSelectedFile.
/**
* Return selected file
*
* @param windowTitle
* @param fileName
* @param window
* @param type
* @param filePath
* @param isExport
* @return
*/
public static File getSelectedFile(String windowTitle, String fileName, Window window, FileType type, String filePath, boolean isExport) {
FileChooser fileChooser = FileChooserFactory.get();
fileChooser.setTitle(windowTitle);
fileChooser.setInitialFileName(fileName);
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter(type.getFilterDescription(), type.getFilterExtension());
fileChooser.getExtensionFilters().add(extFilter);
FileChooser.ExtensionFilter allFilesFilter = new FileChooser.ExtensionFilter("All files ", "*.*");
fileChooser.getExtensionFilters().add(allFilesFilter);
if (!Util.isNullOrEmpty(filePath) && new File(filePath).exists()) {
fileChooser.setInitialDirectory(new File(filePath));
}
if (isExport) {
return fileChooser.showSaveDialog(window);
} else {
return fileChooser.showOpenDialog(window);
}
}
Aggregations