From c5744a6785201a7859e701e7925f23013ff61aff Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Thu, 31 Jan 2019 15:53:43 +0000
Subject: [PATCH] Repo config...
---
borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/FilesystemBrowserRest.java | 41 +++++++++++++++++++++++++----------------
1 files changed, 25 insertions(+), 16 deletions(-)
diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/FilesystemBrowserRest.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/FilesystemBrowserRest.java
index 150e913..3e93121 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/FilesystemBrowserRest.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/FilesystemBrowserRest.java
@@ -35,13 +35,11 @@
log.info(msg);
return msg;
}
- JFileChooser chooser;
- if (StringUtils.isNotBlank(current)) {
- chooser = new JFileChooser(current);
- } else {
- chooser = new JFileChooser();
+ if (chooser != null) {
+ log.warn("Cannot call already opened file choose twice. Close file chooser first.");
+ return "{\"directory\": \"\"}";
}
- chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+ File file = null;
synchronized (FilesystemBrowserRest.class) {
if (frame == null) {
frame = new JFrame("BorgButler");
@@ -50,18 +48,28 @@
frame.getContentPane().add(label);
frame.pack();
}
- }
- frame.setVisible(true);
- frame.setAlwaysOnTop(true);
- int returnCode = chooser.showDialog(frame, "Choose");
- frame.setVisible(false);
- frame.setAlwaysOnTop(false);
- File file = null;
- if (returnCode == JFileChooser.APPROVE_OPTION) {
- file = chooser.getSelectedFile();
+ try {
+ if (StringUtils.isNotBlank(current)) {
+ chooser = new JFileChooser(current);
+ } else {
+ chooser = new JFileChooser();
+ }
+ chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+
+ frame.setVisible(true);
+ frame.setAlwaysOnTop(true);
+ int returnCode = chooser.showDialog(frame, "Choose");
+ frame.setVisible(false);
+ frame.setAlwaysOnTop(false);
+ if (returnCode == JFileChooser.APPROVE_OPTION) {
+ file = chooser.getSelectedFile();
+ }
+ } finally {
+ chooser = null;
+ }
}
String filename = file != null ? JsonUtils.toJson(file.getAbsolutePath()) : "";
- String result = "{\"directory\":" + filename + "}";
+ String result = "{\"directory\":\"" + filename + "\"}";
return result;
}
@@ -81,4 +89,5 @@
}
private static JFrame frame;
+ private static JFileChooser chooser;
}
--
Gitblit v1.10.0