summaryrefslogtreecommitdiff
path: root/src/main/java/space/m0e/quga/oop/lab56maven/entities
diff options
context:
space:
mode:
authorAndriy Cherniy <qugalet@m0e.space>2024-06-15 10:45:30 +0300
committerAndriy Cherniy <qugalet@m0e.space>2024-06-15 10:45:30 +0300
commitd0f951643060821673e060eea7376000418c457b (patch)
tree3392838fb9289638c9cac500a8ff681917f4fc22 /src/main/java/space/m0e/quga/oop/lab56maven/entities
parent0a41210ec447cf48bf75082f989165cbf1c78ab8 (diff)
downloadoop-kursach-d0f951643060821673e060eea7376000418c457b.tar.gz
oop-kursach-d0f951643060821673e060eea7376000418c457b.zip
16
Diffstat (limited to 'src/main/java/space/m0e/quga/oop/lab56maven/entities')
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/entities/common/Utils.java28
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/entities/macro/Fortress.java12
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/entities/micro/Immigrant.java3
3 files changed, 34 insertions, 9 deletions
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<? super Immigrant> filterQuery) throws IOException {
+ ArrayList<Immigrant> 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<Immigrant>, Cloneable {
return thread;
}
- public static String findImmigrants(Predicate<? super Immigrant> filterQuery) {
- return Main.immigrants.stream().filter(filterQuery).map(Immigrant::toString).collect(Collectors.joining("\n\n"));
- }
}