summaryrefslogtreecommitdiff
path: root/src/main/java/space/m0e/quga/oop
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/space/m0e/quga/oop')
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/Main.java8
-rw-r--r--src/main/java/space/m0e/quga/oop/lab56maven/dialogs/CountDialog.java61
2 files changed, 69 insertions, 0 deletions
diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/Main.java b/src/main/java/space/m0e/quga/oop/lab56maven/Main.java
index 9aa199b..3b0c594 100644
--- a/src/main/java/space/m0e/quga/oop/lab56maven/Main.java
+++ b/src/main/java/space/m0e/quga/oop/lab56maven/Main.java
@@ -108,6 +108,14 @@ public class Main extends Application {
}
}
+ case C -> {
+ try {
+ CountDialog.display();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
case TAB -> {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Object list");
diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/dialogs/CountDialog.java b/src/main/java/space/m0e/quga/oop/lab56maven/dialogs/CountDialog.java
new file mode 100644
index 0000000..a00ef70
--- /dev/null
+++ b/src/main/java/space/m0e/quga/oop/lab56maven/dialogs/CountDialog.java
@@ -0,0 +1,61 @@
+package space.m0e.quga.oop.lab56maven.dialogs;
+
+import javafx.fxml.FXMLLoader;
+import javafx.fxml.Initializable;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.control.*;
+import javafx.scene.input.MouseEvent;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+import space.m0e.quga.oop.lab56maven.Main;
+import space.m0e.quga.oop.lab56maven.entities.common.Utils;
+import space.m0e.quga.oop.lab56maven.entities.micro.Immigrant;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Objects;
+import java.util.ResourceBundle;
+
+public class CountDialog implements Initializable {
+ public static Stage window = null;
+ public static Scene scene;
+ public ComboBox searchCombo;
+ public Button submitButton;
+ public Label resultLabel;
+
+ public static void display() throws IOException {
+ Parent root = FXMLLoader.load(Objects.requireNonNull(CountDialog.class.getResource("count_dialog.fxml")));
+
+ window = new Stage();
+ window.initModality(Modality.APPLICATION_MODAL);
+ window.setTitle("Count");
+
+ scene = new Scene(root, 440, 350);
+ window.setScene(scene);
+ window.showAndWait();
+ }
+
+ @Override
+ public void initialize(URL location, ResourceBundle resources) {
+ searchCombo.getItems().addAll("Children", "Elders", "Healthy");
+ searchCombo.setValue("Healthy");
+ }
+
+ public void submitButtonHandler(MouseEvent mouseEvent) throws IOException {
+ resultLabel.setText("Result: " + String.valueOf(Main.immigrants.stream().filter(immigrant -> {
+ switch (searchCombo.getValue().toString()) {
+ case "Children" -> {
+ return immigrant.getAge() <= 12;
+ }
+ case "Elders" -> {
+ return immigrant.getAge() >= 70;
+ }
+ case "Healthy" -> {
+ return immigrant.getHp()/immigrant.getMaxHp() >= 0.5;
+ }
+ }
+ return false;
+ }).count()));
+ }
+}