From d0f951643060821673e060eea7376000418c457b Mon Sep 17 00:00:00 2001 From: Andriy Cherniy Date: Sat, 15 Jun 2024 10:45:30 +0300 Subject: 16 --- .../quga/oop/lab56maven/entities/common/Utils.java | 28 ++++++++++++++++++++++ .../oop/lab56maven/entities/macro/Fortress.java | 12 +++++----- .../oop/lab56maven/entities/micro/Immigrant.java | 3 --- 3 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 src/main/java/space/m0e/quga/oop/lab56maven/entities/common/Utils.java (limited to 'src/main/java/space/m0e/quga/oop/lab56maven/entities') diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/entities/common/Utils.java b/src/main/java/space/m0e/quga/oop/lab56maven/entities/common/Utils.java new file mode 100644 index 0000000..98385a1 --- /dev/null +++ b/src/main/java/space/m0e/quga/oop/lab56maven/entities/common/Utils.java @@ -0,0 +1,28 @@ +package space.m0e.quga.oop.lab56maven.entities.common; + +import javafx.scene.control.Alert; +import space.m0e.quga.oop.lab56maven.Main; +import space.m0e.quga.oop.lab56maven.dialogs.SortDialog; +import space.m0e.quga.oop.lab56maven.entities.micro.Immigrant; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +public class Utils { + + public static void sendErrorAlert(String title, String description) { + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Error"); + alert.setHeaderText(title); + alert.setContentText(description); + alert.showAndWait(); + } + + public static void findImmigrants(String name, Predicate filterQuery) throws IOException { + ArrayList sortInput = Main.immigrants.stream().filter(filterQuery).collect(Collectors.toCollection(ArrayList::new)); + SortDialog.display(sortInput, name); + } + +} diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java b/src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java index 95d36b1..5114992 100644 --- a/src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java +++ b/src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java @@ -7,6 +7,7 @@ import javafx.scene.layout.*; import javafx.scene.paint.Color; import space.m0e.quga.oop.lab56maven.Main; import space.m0e.quga.oop.lab56maven.dialogs.ChangeDialog; +import space.m0e.quga.oop.lab56maven.entities.common.Utils; import space.m0e.quga.oop.lab56maven.entities.micro.Dwarf; import space.m0e.quga.oop.lab56maven.entities.micro.Immigrant; @@ -104,12 +105,11 @@ public class Fortress { this.vBox.setOnMouseClicked(event -> { switch (event.getButton()) { case SECONDARY -> { - String result = Immigrant.findImmigrants(immigrant -> this.dwarves.contains(immigrant)); - Alert alert = new Alert(Alert.AlertType.INFORMATION); - alert.setTitle("Search result"); - alert.setContentText(result); - alert.setHeaderText("Dwarves inside Fortress:"); - alert.showAndWait(); + try { + Utils.findImmigrants("Dwarves inside Fortress:", immigrant -> this.dwarves.contains(immigrant)); + } catch (IOException e) { + e.printStackTrace(); + } } } }); diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Immigrant.java b/src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Immigrant.java index 1c86fa7..77a9c63 100644 --- a/src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Immigrant.java +++ b/src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Immigrant.java @@ -337,7 +337,4 @@ public class Immigrant implements Comparable, Cloneable { return thread; } - public static String findImmigrants(Predicate filterQuery) { - return Main.immigrants.stream().filter(filterQuery).map(Immigrant::toString).collect(Collectors.joining("\n\n")); - } } -- cgit v1.3-3-ga95d