From a111d12969976bc427a36abcd495a0a3cca1b0b0 Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Mon, 20 Dec 2021 17:29:57 +0100 Subject: [PATCH] Improve input field of export file name --- .../ui/controls/AbstractFileSelectionBox.java | 2 +- .../ui/controls/SaveFileSelectionBox.java | 28 +++++++++++++++++++ .../recorded/AbstractRecordedModelsTab.java | 4 +-- .../ui/tabs/recorded/ModelExportDialog.java | 15 ++++++---- 4 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 client/src/main/java/ctbrec/ui/controls/SaveFileSelectionBox.java diff --git a/client/src/main/java/ctbrec/ui/controls/AbstractFileSelectionBox.java b/client/src/main/java/ctbrec/ui/controls/AbstractFileSelectionBox.java index 357031f9..b43daa62 100644 --- a/client/src/main/java/ctbrec/ui/controls/AbstractFileSelectionBox.java +++ b/client/src/main/java/ctbrec/ui/controls/AbstractFileSelectionBox.java @@ -70,7 +70,7 @@ public abstract class AbstractFileSelectionBox extends HBox { fileInput.setText(initialValue); } - private ChangeListener textListener() { + protected ChangeListener textListener() { return (obs, o, n) -> { var input = fileInput.getText(); if (StringUtil.isBlank(input)) { diff --git a/client/src/main/java/ctbrec/ui/controls/SaveFileSelectionBox.java b/client/src/main/java/ctbrec/ui/controls/SaveFileSelectionBox.java new file mode 100644 index 00000000..402a75ce --- /dev/null +++ b/client/src/main/java/ctbrec/ui/controls/SaveFileSelectionBox.java @@ -0,0 +1,28 @@ +package ctbrec.ui.controls; + +import javafx.beans.value.ChangeListener; + +import java.io.File; + +public class SaveFileSelectionBox extends FileSelectionBox { + + public SaveFileSelectionBox() { + disableValidation(); + useSaveDialog(); + } + + @Override + protected void setFile(File file) { + // nothing to do + } + + @Override + protected ChangeListener textListener() { + return (obs, o, n) -> {}; + } + + @Override + protected String validate(File file) { + return null; + } +} diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java b/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java index 94324e9b..df79896d 100644 --- a/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/recorded/AbstractRecordedModelsTab.java @@ -60,12 +60,9 @@ import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.Objects; -import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; -import static ctbrec.ui.tabs.recorded.ModelImportExport.ExportIncludes.*; - public abstract class AbstractRecordedModelsTab extends Tab implements TabSelectionListener { private static final Logger LOG = LoggerFactory.getLogger(AbstractRecordedModelsTab.class); private static final Image SILHOUETTE = new Image(AbstractRecordedModelsTab.class.getResourceAsStream("/silhouette_256.png")); @@ -258,6 +255,7 @@ public abstract class AbstractRecordedModelsTab extends Tab implements TabSelect @Override protected void done() { getContent().setCursor(Cursor.DEFAULT); + reload(); } }; GlobalThreadPool.submit(task); diff --git a/client/src/main/java/ctbrec/ui/tabs/recorded/ModelExportDialog.java b/client/src/main/java/ctbrec/ui/tabs/recorded/ModelExportDialog.java index 95e7463a..7bae7c1e 100644 --- a/client/src/main/java/ctbrec/ui/tabs/recorded/ModelExportDialog.java +++ b/client/src/main/java/ctbrec/ui/tabs/recorded/ModelExportDialog.java @@ -1,7 +1,7 @@ package ctbrec.ui.tabs.recorded; import ctbrec.ui.controls.Dialogs; -import ctbrec.ui.controls.FileSelectionBox; +import ctbrec.ui.controls.SaveFileSelectionBox; import ctbrec.ui.tabs.recorded.ModelImportExport.ExportIncludes; import ctbrec.ui.tabs.recorded.ModelImportExport.ExportOptions; import javafx.geometry.Insets; @@ -11,6 +11,7 @@ import javafx.scene.Node; import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.layout.GridPane; +import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; import java.io.File; @@ -27,7 +28,7 @@ public class ModelExportDialog { private CheckBox notesButton; private CheckBox groupsButton; private CheckBox portraisButton; - private FileSelectionBox fileSelectionBox; + private SaveFileSelectionBox fileSelectionBox; public ModelExportDialog(Node source) { this.source = source; @@ -41,11 +42,11 @@ public class ModelExportDialog { gridPane.setPadding(new Insets(20, 150, 10, 10)); Label l = new Label("Export to file"); gridPane.add(l, 0, 0); - fileSelectionBox = new FileSelectionBox(); - fileSelectionBox.useSaveDialog(); - fileSelectionBox.disableValidation(); + fileSelectionBox = new SaveFileSelectionBox(); gridPane.add(fileSelectionBox, 1, 0); GridPane.setValignment(l, VPos.TOP); + GridPane.setMargin(l, new Insets(5, 0, 0, 0)); + GridPane.setHgrow(fileSelectionBox, Priority.ALWAYS); notesButton = new CheckBox("notes"); notesButton.setSelected(true); groupsButton = new CheckBox("groups"); @@ -57,6 +58,10 @@ public class ModelExportDialog { VBox.setMargin(notesButton, new Insets(5)); VBox.setMargin(groupsButton, new Insets(5)); VBox.setMargin(portraisButton, new Insets(5)); + l = new Label("Include"); + GridPane.setMargin(l, new Insets(5, 0, 0, 0)); + GridPane.setValignment(l, VPos.TOP); + gridPane.add(l, 0, 1); gridPane.add(row, 1, 1); }