From c8845b8607e81d1e37602d988d9c8d6e7897a8ee Mon Sep 17 00:00:00 2001 From: Daniel <59575049+lumijiez@users.noreply.github.com> Date: Wed, 23 Oct 2024 01:44:10 +0300 Subject: [PATCH] added copy to clipboard button --- .../lumijiez/monoalpha/MainController.java | 21 +++++++++++- .../monoalpha/util/InputAnalyzer.java | 10 +++--- .../org/lumijiez/monoalpha/monoalpha.fxml | 34 +++++++++++-------- 3 files changed, 46 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/lumijiez/monoalpha/MainController.java b/src/main/java/org/lumijiez/monoalpha/MainController.java index 3e48d6b..df9e48c 100644 --- a/src/main/java/org/lumijiez/monoalpha/MainController.java +++ b/src/main/java/org/lumijiez/monoalpha/MainController.java @@ -6,6 +6,8 @@ import javafx.scene.control.Button; import javafx.scene.control.CheckBox; import javafx.scene.control.TextArea; import javafx.scene.control.TextField; +import javafx.scene.input.Clipboard; +import javafx.scene.input.ClipboardContent; import javafx.scene.text.Text; import javafx.scene.text.TextFlow; import org.lumijiez.monoalpha.util.CharacterSwitcher; @@ -45,13 +47,15 @@ public class MainController { @FXML private CheckBox rainbowCheckbox; + @FXML + private Button copyButton; + private final Map> dictionaryMap = new HashMap<>(); @FXML private void initialize() { analyzeText(); PatternGenerator.loadDictionary(dictionaryMap, patternOutput); - //barChart.setStyle("-fx-font-size: 18px;"); inputArea.textProperty().addListener((observable, oldValue, newValue) -> { analyzeText(); applyChanges(ruleArea.getText()); @@ -62,6 +66,21 @@ public class MainController { RAINBOW = newValue; analyzeText(); }); + copyButton.setOnAction(e -> { + StringBuilder contentBuilder = new StringBuilder(); + outputArea.getChildren().forEach(node -> { + if (node instanceof Text) { + contentBuilder.append(((Text) node).getText()); + } + }); + String textFlowContent = contentBuilder.toString(); + + + Clipboard clipboard = Clipboard.getSystemClipboard(); + ClipboardContent clipboardContent = new ClipboardContent(); + clipboardContent.putString(textFlowContent); + clipboard.setContent(clipboardContent); + }); } @FXML diff --git a/src/main/java/org/lumijiez/monoalpha/util/InputAnalyzer.java b/src/main/java/org/lumijiez/monoalpha/util/InputAnalyzer.java index c3e3961..98ba90b 100644 --- a/src/main/java/org/lumijiez/monoalpha/util/InputAnalyzer.java +++ b/src/main/java/org/lumijiez/monoalpha/util/InputAnalyzer.java @@ -20,9 +20,11 @@ public class InputAnalyzer { private static Map createEnglishFrequencies() { Map frequencies = new HashMap<>(); - String[] letters = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", - "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", - "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", + String[] letters = { +// "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", +// "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", +// "U", "V", "W", "X", "Y", "Z", + "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; @@ -43,7 +45,7 @@ public class InputAnalyzer { Map frequencyMap = new HashMap<>(); text.chars() .filter(Character::isLetter) - .forEach(ch -> frequencyMap.merge((char) ch, 1, Integer::sum)); + .forEach(ch -> frequencyMap.merge(Character.toLowerCase((char) ch), 1, Integer::sum)); return frequencyMap; } diff --git a/src/main/resources/org/lumijiez/monoalpha/monoalpha.fxml b/src/main/resources/org/lumijiez/monoalpha/monoalpha.fxml index 9ebefdf..4ad3a33 100644 --- a/src/main/resources/org/lumijiez/monoalpha/monoalpha.fxml +++ b/src/main/resources/org/lumijiez/monoalpha/monoalpha.fxml @@ -109,20 +109,18 @@ - - + + - + - + -