diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2024-08-29 21:51:14 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2024-08-29 21:51:14 -0400 |
commit | fb70a24c04a5beec6cc7ff9248ef8f5fd46fcc87 (patch) | |
tree | 8f9610d0da1301d6b5e82903418aaf0459cf8666 /src/main/java/net/sowgro/npehero/editor/FolderNameEntry.java | |
parent | 7a3aa914a7a64952dd0e134cd998d0cf0e445b4f (diff) | |
download | NPEhero-fb70a24c04a5beec6cc7ff9248ef8f5fd46fcc87.tar.gz NPEhero-fb70a24c04a5beec6cc7ff9248ef8f5fd46fcc87.tar.bz2 NPEhero-fb70a24c04a5beec6cc7ff9248ef8f5fd46fcc87.zip |
Implement new create dialog
Diffstat (limited to 'src/main/java/net/sowgro/npehero/editor/FolderNameEntry.java')
-rw-r--r-- | src/main/java/net/sowgro/npehero/editor/FolderNameEntry.java | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/main/java/net/sowgro/npehero/editor/FolderNameEntry.java b/src/main/java/net/sowgro/npehero/editor/FolderNameEntry.java new file mode 100644 index 0000000..f2245a8 --- /dev/null +++ b/src/main/java/net/sowgro/npehero/editor/FolderNameEntry.java @@ -0,0 +1,62 @@ +package net.sowgro.npehero.editor; + +import javafx.geometry.Insets; +import javafx.geometry.Pos; +import javafx.scene.control.Button; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import net.sowgro.npehero.Driver; +import net.sowgro.npehero.main.Page; + +public class FolderNameEntry extends Page { + private final HBox content = new HBox(); + + public interface StringToVoidLambda { + void run(String name); + } + + public FolderNameEntry(String itemType, Page prev, StringToVoidLambda next) { + + Label newLevelLabel = new Label("Name of new "+itemType); + TextField newLevelEntry = new TextField(); + + Label folderName = new Label("Folder name"); + TextField folderNameEntry = new TextField(); + folderNameEntry.setEditable(false); + folderNameEntry.setDisable(true); + + newLevelEntry.setOnKeyTyped(_ -> { + folderNameEntry.setText(newLevelEntry.getText().toLowerCase().replaceAll("\\W+", "-")); + }); + + VBox newLevelBox = new VBox(newLevelLabel, newLevelEntry, folderName, folderNameEntry); + newLevelBox.setSpacing(10); + newLevelBox.getStyleClass().add("box"); + newLevelBox.setPadding(new Insets(10)); + newLevelBox.setPrefWidth(400); + + Button newLevelButton = new Button("Create"); + newLevelButton.setOnAction(_ -> next.run(newLevelEntry.getText())); + + Button cancel = new Button("Cancel"); + cancel.setOnAction(_ -> Driver.setMenu(prev)); + + HBox buttonBox = new HBox(cancel, newLevelButton); + buttonBox.setSpacing(10); + + VBox centerBox = new VBox(); + centerBox.getChildren().addAll(newLevelBox, buttonBox); + centerBox.setSpacing(10); + centerBox.setAlignment(Pos.CENTER); + + content.getChildren().add(centerBox); + content.setAlignment(Pos.CENTER); + } + + @Override + public HBox getContent() { + return content; + } +} |