diff options
Diffstat (limited to 'src/main/java/space/m0e/quga/oop/lab56maven/dialogs')
| -rw-r--r-- | src/main/java/space/m0e/quga/oop/lab56maven/dialogs/CountDialog.java | 61 |
1 files changed, 61 insertions, 0 deletions
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())); + } +} |
