summaryrefslogtreecommitdiff
path: root/src/main/java/space/m0e/quga/oop/lab56maven/dialogs
diff options
context:
space:
mode:
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.java77
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();
+ }
+}