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())); } }