diff options
| author | Andriy Cherniy <qugalet@m0e.space> | 2024-06-15 03:40:35 +0300 |
|---|---|---|
| committer | Andriy Cherniy <qugalet@m0e.space> | 2024-06-15 03:40:35 +0300 |
| commit | fdd15afe5224ba634ebb17b5cc308624838f1187 (patch) | |
| tree | a2c1f657b51f1f3aaa1569936f4a800044654b50 /src/main/java/space/m0e/quga/oop/lab56maven/dialogs | |
| parent | 7356425dd4f0b09d984e794598c67cfaad351599 (diff) | |
| download | oop-kursach-fdd15afe5224ba634ebb17b5cc308624838f1187.tar.gz oop-kursach-fdd15afe5224ba634ebb17b5cc308624838f1187.zip | |
13-15
Diffstat (limited to 'src/main/java/space/m0e/quga/oop/lab56maven/dialogs')
| -rw-r--r-- | src/main/java/space/m0e/quga/oop/lab56maven/dialogs/SearchDialog.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/main/java/space/m0e/quga/oop/lab56maven/dialogs/SearchDialog.java b/src/main/java/space/m0e/quga/oop/lab56maven/dialogs/SearchDialog.java new file mode 100644 index 0000000..014c7c0 --- /dev/null +++ b/src/main/java/space/m0e/quga/oop/lab56maven/dialogs/SearchDialog.java @@ -0,0 +1,77 @@ +package space.m0e.quga.oop.lab56maven.dialogs; + +import javafx.beans.Observable; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +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.Ability; +import space.m0e.quga.oop.lab56maven.entities.micro.Immigrant; + +import java.io.IOException; +import java.net.URL; +import java.util.Arrays; +import java.util.Objects; +import java.util.ResourceBundle; +import java.util.stream.Collectors; + +public class SearchDialog implements Initializable { + public static Stage window = null; + public static Scene scene; + public ComboBox searchCombo; + public Button submitButton; + public TextField searchQuery; + + public static void display() throws IOException { + Parent root = FXMLLoader.load(Objects.requireNonNull(SearchDialog.class.getResource("search_dialog.fxml"))); + + window = new Stage(); + window.initModality(Modality.APPLICATION_MODAL); + window.setTitle("Search"); + + scene = new Scene(root, 440, 350); + window.setScene(scene); + window.showAndWait(); + } + + @Override + public void initialize(URL location, ResourceBundle resources) { + searchCombo.getItems().addAll("Name", "Age"); + searchCombo.setValue("Name"); + } + + public void sendError(String title, String description) { + Alert alert = new Alert(Alert.AlertType.ERROR); + alert.setTitle("Error"); + alert.setHeaderText(title); + alert.setContentText(description); + alert.showAndWait(); + } + + public void submitButtonHandler(MouseEvent mouseEvent) { + String result = Immigrant.findImmigrants(immigrant -> { + switch (searchCombo.getValue().toString()) { + case "Name" -> { + return immigrant.getFullName().contains(searchQuery.getText()); + } + case "Age" -> { + return immigrant.getAge() == Integer.parseInt(searchQuery.getText()); + } + } + return false; + }); + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setTitle("Search result"); + alert.setContentText(result); + alert.setHeaderText("Search result"); + alert.showAndWait(); + } +} |
