From 00df10350a10ca63ee02641ffa2a7f3edf313b50 Mon Sep 17 00:00:00 2001 From: Victor Date: Wed, 6 Sep 2017 11:08:49 +0300 Subject: [PATCH] Show file name in window title --- .../java/com/annimon/hotarufx/io/DocumentManager.java | 3 +++ .../main/java/com/annimon/hotarufx/io/FileManager.java | 7 +++++++ .../hotarufx/ui/controller/EditorController.java | 10 +++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/annimon/hotarufx/io/DocumentManager.java b/app/src/main/java/com/annimon/hotarufx/io/DocumentManager.java index 5011725..2836f9f 100644 --- a/app/src/main/java/com/annimon/hotarufx/io/DocumentManager.java +++ b/app/src/main/java/com/annimon/hotarufx/io/DocumentManager.java @@ -1,10 +1,13 @@ package com.annimon.hotarufx.io; +import java.util.Optional; import java.util.function.Consumer; import javafx.stage.Stage; public interface DocumentManager { + Optional name(); + void newDocument(); boolean open(Stage stage, Consumer contentConsumer); diff --git a/app/src/main/java/com/annimon/hotarufx/io/FileManager.java b/app/src/main/java/com/annimon/hotarufx/io/FileManager.java index da4819b..598ba32 100644 --- a/app/src/main/java/com/annimon/hotarufx/io/FileManager.java +++ b/app/src/main/java/com/annimon/hotarufx/io/FileManager.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.util.Optional; import java.util.function.Consumer; import javafx.stage.FileChooser; import javafx.stage.Stage; @@ -23,6 +24,12 @@ public class FileManager implements DocumentManager { ); } + @Override + public Optional name() { + return Optional.ofNullable(currentFile) + .map(File::getName); + } + @Override public void newDocument() { currentFile = null; diff --git a/app/src/main/java/com/annimon/hotarufx/ui/controller/EditorController.java b/app/src/main/java/com/annimon/hotarufx/ui/controller/EditorController.java index bf951ae..3952b63 100644 --- a/app/src/main/java/com/annimon/hotarufx/ui/controller/EditorController.java +++ b/app/src/main/java/com/annimon/hotarufx/ui/controller/EditorController.java @@ -46,8 +46,16 @@ public class EditorController implements Initializable, DocumentListener { @FXML private void handleMenuOpen(ActionEvent event) { - documentManager.open(primaryStage, + val isOpened = documentManager.open(primaryStage, s -> editor.replaceText(0, 0, s)); + if (isOpened) { + updateTitle(); + } + } + + private void updateTitle() { + primaryStage.setTitle( + documentManager.name().orElse("HotaruFX")); } @FXML