From 0a41210ec447cf48bf75082f989165cbf1c78ab8 Mon Sep 17 00:00:00 2001 From: Andriy Cherniy Date: Sat, 15 Jun 2024 10:43:34 +0300 Subject: 17 --- .../java/space/m0e/quga/oop/lab56maven/Main.java | 8 +++ .../quga/oop/lab56maven/dialogs/CountDialog.java | 61 ++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 src/main/java/space/m0e/quga/oop/lab56maven/dialogs/CountDialog.java (limited to 'src/main/java/space/m0e/quga') 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())); + } +} -- cgit v1.3-3-ga95d