Commit f123a7ac authored by Riegel's avatar Riegel
Browse files

Refactor: Add locking of entryList during operations

2 merge requests!28Version 3.17.0 Release,!26Add ZIP-archive support
Showing with 13 additions and 4 deletions
+13 -4
......@@ -150,6 +150,7 @@ public class ZipEntryManager {
decompressBtn.setOnAction(e -> {
disableTaskButtons();
setEntryListLocked(true);
Thread t = new Thread(() -> {
CityGmlZipEntry entry = entryList.getSelectionModel().getSelectedItem().getEntry();
logger.info("Decompressing entry \"{}\"", entry.getDisplayName());
......@@ -158,6 +159,8 @@ public class ZipEntryManager {
);
Platform.runLater(() -> {
populateZipEntryList(entryList.getSelectionModel().getSelectedIndex());
progress.setProgress(0);
setEntryListLocked(false);
});
});
t.setDaemon(true);
......@@ -167,8 +170,7 @@ public class ZipEntryManager {
loadBtn.setOnAction(e -> {
disableTaskButtons();
entryList.setMouseTransparent(true);
entryList.setFocusTraversable(false);
setEntryListLocked(true);
try {
int selectedIndex = entryList.getSelectionModel().getSelectedIndex();
if (selectedIndex == currentlyLoadedEntry) {
......@@ -189,14 +191,14 @@ public class ZipEntryManager {
currentlyLoadedEntry = selectedIndex;
stage.hide();
} finally {
entryList.setMouseTransparent(false);
entryList.setFocusTraversable(true);
setEntryListLocked(false);
}
});
decompressAllBtn.setOnAction(e -> {
disableTaskButtons();
setEntryListLocked(true);
subProgress.setVisible(true);
subProgress.setProgress(0);
Thread t = new Thread(() -> {
......@@ -215,6 +217,8 @@ public class ZipEntryManager {
Platform.runLater(() -> {
subProgress.setVisible(false);
populateZipEntryList(entryList.getSelectionModel().getSelectedIndex());
progress.setProgress(0);
setEntryListLocked(false);
});
});
t.setDaemon(true);
......@@ -329,6 +333,11 @@ public class ZipEntryManager {
}
}
private void setEntryListLocked(boolean locked) {
entryList.setMouseTransparent(locked);
entryList.setFocusTraversable(!locked);
}
public void show() {
Platform.runLater(() -> {
stage.showAndWait();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment