use of javafx.stage.FileChooser in project jabref by JabRef.
the class ImportFormats method getImportAction.
/**
* Create an AbstractAction for performing an Import operation.
* @param frame The JabRefFrame of this JabRef instance.
* @param openInNew Indicate whether the action should open into a new database or
* into the currently open one.
* @return The action.
*/
public static AbstractAction getImportAction(JabRefFrame frame, boolean openInNew) {
class ImportAction extends MnemonicAwareAction {
private final boolean newDatabase;
public ImportAction(boolean newDatabase) {
this.newDatabase = newDatabase;
if (newDatabase) {
putValue(Action.NAME, Localization.menuTitle("Import into new library"));
putValue(Action.ACCELERATOR_KEY, Globals.getKeyPrefs().getKey(KeyBinding.IMPORT_INTO_NEW_DATABASE));
} else {
putValue(Action.NAME, Localization.menuTitle("Import into current library"));
putValue(Action.ACCELERATOR_KEY, Globals.getKeyPrefs().getKey(KeyBinding.IMPORT_INTO_CURRENT_DATABASE));
}
}
@Override
public void actionPerformed(ActionEvent e) {
SortedSet<Importer> importers = Globals.IMPORT_FORMAT_READER.getImportFormats();
List<FileExtensions> extensions = importers.stream().map(Importer::getExtensions).collect(Collectors.toList());
FileChooser.ExtensionFilter allImports = ImportFileFilter.convert(Localization.lang("Available import formats"), importers);
FileDialogConfiguration fileDialogConfiguration = new FileDialogConfiguration.Builder().addExtensionFilters(extensions).withInitialDirectory(Globals.prefs.get(JabRefPreferences.IMPORT_WORKING_DIRECTORY)).build();
DialogService ds = new FXDialogService();
FileChooser fs = ds.getConfiguredFileChooser(fileDialogConfiguration);
fs.setSelectedExtensionFilter(allImports);
File f = DefaultTaskExecutor.runInJavaFXThread(() -> fs.showOpenDialog(null));
Optional<Path> selectedFile = Optional.ofNullable(f).map(File::toPath);
FileChooser.ExtensionFilter selectedExtension = fs.getSelectedExtensionFilter();
// Add file filter for all supported types
selectedFile.ifPresent(file -> {
try {
if (!Files.exists(file)) {
JOptionPane.showMessageDialog(frame, Localization.lang("File not found") + ": '" + file.getFileName() + "'.", Localization.lang("Import"), JOptionPane.ERROR_MESSAGE);
return;
}
Optional<Importer> format = ImportFileFilter.convert(selectedExtension, importers);
ImportMenuItem importMenu = new ImportMenuItem(frame, newDatabase, format.orElse(null));
importMenu.automatedImport(Collections.singletonList(file.toString()));
Globals.prefs.put(JabRefPreferences.IMPORT_WORKING_DIRECTORY, file.getParent().toString());
} catch (Exception ex) {
LOGGER.warn("Cannot import file", ex);
}
});
}
}
return new ImportAction(openInNew);
}
use of javafx.stage.FileChooser in project bitsquare by bitsquare.
the class TraderDisputeView method onOpenAttachment.
private void onOpenAttachment(Attachment attachment) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Save file to disk");
fileChooser.setInitialFileName(attachment.getFileName());
/* if (Utilities.isUnix())
fileChooser.setInitialDirectory(new File(System.getProperty("user.home")));*/
File file = fileChooser.showSaveDialog(stage);
if (file != null) {
try (FileOutputStream fileOutputStream = new FileOutputStream(file.getAbsolutePath())) {
fileOutputStream.write(attachment.getBytes());
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
}
use of javafx.stage.FileChooser in project bitsquare by bitsquare.
the class GUIUtil method exportCSV.
public static <T> void exportCSV(String fileName, CSVEntryConverter<T> headerConverter, CSVEntryConverter<T> contentConverter, T emptyItem, List<T> list, Stage stage) {
FileChooser fileChooser = new FileChooser();
fileChooser.setInitialFileName(fileName);
File file = fileChooser.showSaveDialog(stage);
try (OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(file, false), Charsets.UTF_8)) {
CSVWriter<T> headerWriter = new CSVWriterBuilder<T>(outputStreamWriter).strategy(CSVStrategy.UK_DEFAULT).entryConverter(headerConverter).build();
headerWriter.write(emptyItem);
CSVWriter<T> contentWriter = new CSVWriterBuilder<T>(outputStreamWriter).strategy(CSVStrategy.UK_DEFAULT).entryConverter(contentConverter).build();
contentWriter.writeAll(list);
} catch (RuntimeException | IOException e) {
e.printStackTrace();
log.error(e.getMessage());
new Popup().error("Exporting to CSV failed because of an error.\n" + "Error = " + e.getMessage());
}
}
use of javafx.stage.FileChooser in project Gargoyle by callakrsos.
the class DialogUtil method showFileSaveDialog.
public static File showFileSaveDialog(final Window ownerWindow, Consumer<FileChooser> option) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File");
installDefaultPath(fileChooser);
option.accept(fileChooser);
File result = fileChooser.showSaveDialog(ownerWindow);
if (result != null)
applyLastPath(result.getParentFile());
return result;
}
use of javafx.stage.FileChooser in project Gargoyle by callakrsos.
the class DialogUtil method showMultiFileDialog.
/**
* 멀티 파일 다이얼로그 오픈
*
* @Date 2015. 10. 12.
* @param ownerWindow
* @param option
* @return
* @User KYJ
*/
public static List<File> showMultiFileDialog(final Window ownerWindow, Consumer<FileChooser> option) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File");
installDefaultPath(fileChooser);
option.accept(fileChooser);
List<File> files = fileChooser.showOpenMultipleDialog(ownerWindow);
if (files == null || files.isEmpty())
return Collections.emptyList();
applyLastPath(files.get(files.size() - 1));
return files;
}
Aggregations