/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package hoteldraft; import java.io.IOException; import java.net.URL; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.sql.Date; import java.util.List; import java.util.ResourceBundle; import javafx.animation.RotateTransition; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Node; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.scene.control.ListView; import javafx.scene.control.TextField; import javafx.scene.effect.ColorAdjust; import javafx.scene.effect.Light; import javafx.scene.effect.Lighting; import javafx.scene.image.ImageView; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.input.MouseEvent; import javafx.scene.layout.BorderPane; import javafx.scene.layout.Pane; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import static javafx.scene.paint.Color.rgb; import javafx.scene.text.Text; import javafx.stage.Stage; import javafx.stage.StageStyle; import javafx.util.Duration; import org.hibernate.Query; import org.hibernate.Session; /** * * @author Hala */ public class SearchController implements Initializable { private Stage stage; private Scene scene; private Parent root; private double xOffSet = 0; private double yOffSet = 0; @FXML private BorderPane parent; @FXML private VBox navVBox; @FXML private ImageView settingsImg; @FXML private Pane pane; @FXML private Label exit; @FXML private Label minimize; @FXML private Button settingsImgBtn; @FXML private ListView gname; @FXML private ListView gid; @FXML private ListView gemail; @FXML private ListView gdate; @FXML private ListView spreq; @FXML private ListView groom; @FXML private ListView gno; @FXML private ComboBox byCB; @FXML private TextField sinput; @FXML private Text vmes; @FXML private Button s; @Override public void initialize(URL location, ResourceBundle resources) { //to initilize combobox items byCB.getItems().addAll("Guest Name", "Guest ID", "email", "Arrival Date", "Departure Date", "Room NO", "Room Type", "Show All new reservations", "Previous Guest Name", "Previous Guest ID", "Previous email", "Previous Arrival Date", "Previous Departure Date", "Previous Room NO", "Previous Room Type", "Show All previous reservations", "Show All"); //diable textfield until combobox category is chosen sinput.setDisable(true); //Listener to empty warning message and textfield when combobox category is changed byCB.valueProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue ov, String t, String t1) { vmes.setText(""); sinput.setPromptText(""); sinput.clear(); } }); //to change settings imageview color Lighting lighting = new Lighting(new Light.Distant(45, 90, rgb(105, 152, 171))); ColorAdjust bright = new ColorAdjust(0, 1, 1, 1); lighting.setContentInput(bright); lighting.setSurfaceScale(0.0); settingsImg.setEffect(lighting); settingsImg.setDisable(true); // to rotate settings button on hover RotateTransition rotation = new RotateTransition(Duration.seconds(0.5), settingsImgBtn); rotation.setCycleCount(1); rotation.setByAngle(180); settingsImgBtn.setOnMouseEntered(e -> rotation.play()); settingsImgBtn.setOnMouseExited(e -> rotation.pause()); } @FXML public void byCBm(ActionEvent event) { sinput.setDisable(false); if (byCB.getValue().equals("Show All new reservations")) { List RList = null; Session session = HibernateUtil.getSessionFactory().openSession(); Query q = session.createQuery("from Reservation"); RList = q.list(); session.close(); gname.getItems().clear(); gid.getItems().clear(); gemail.getItems().clear(); gdate.getItems().clear(); spreq.getItems().clear(); groom.getItems().clear(); gno.getItems().clear(); vmes.setText(""); for (Reservation R : RList) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText("you are viewing all new reservations"); } } else if (byCB.getValue().equals("Arrival Date") || byCB.getValue().equals("Departure Date")) { sinput.setPromptText("use this format for dates : yyyy-mm-dd"); } else if (byCB.getValue().equals("Show All previous reservations")) { List hList = null; Session session = HibernateUtil.getSessionFactory().openSession(); Query q = session.createQuery("from History"); hList = q.list(); session.close(); gname.getItems().clear(); gid.getItems().clear(); gemail.getItems().clear(); gdate.getItems().clear(); spreq.getItems().clear(); groom.getItems().clear(); gno.getItems().clear(); vmes.setText(""); for (History R : hList) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); } vmes.setText("you are viewing all previous reservations"); } else if (byCB.getValue().equals("Show All")) { Session session = HibernateUtil.getSessionFactory().openSession(); Query Q = session.createQuery("from History"); Query q = session.createQuery("from Reservation"); List RList = q.list(); List hList = Q.list(); session.close(); gname.getItems().clear(); gid.getItems().clear(); gemail.getItems().clear(); gdate.getItems().clear(); spreq.getItems().clear(); groom.getItems().clear(); gno.getItems().clear(); vmes.setText(""); for (History R : hList) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); } for (Reservation R : RList) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); } vmes.setText("you are viewing all the data"); } } @FXML public void search(ActionEvent event) { if (sinput.getText().isEmpty()) { vmes.setText("please enter the information you are trying to serach first!"); } else { Session session = HibernateUtil.getSessionFactory().openSession(); Query q = session.createQuery("from Reservation"); Query Q = session.createQuery("from History"); List hList = Q.list(); List RList = q.list(); session.close(); gname.getItems().clear(); gid.getItems().clear(); gemail.getItems().clear(); gdate.getItems().clear(); spreq.getItems().clear(); groom.getItems().clear(); gno.getItems().clear(); vmes.setText(""); switch (byCB.getValue()) { case "Guest Name": vmes.setText(""); for (Reservation R : RList) { vmes.setText(""); if (R.getFname().toLowerCase().contains(sinput.getText().toLowerCase()) || R.getLname().toLowerCase().contains(sinput.getText().toLowerCase())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest name doesnt exists"); } break; case "Guest ID": for (Reservation R : RList) { if (String.valueOf(R.getID()).contains(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest ID doesnt exists"); } break; case "email": vmes.setText(null); for (Reservation R : RList) { //vmes.setText(""); if (R.getEmail().toLowerCase().contains(sinput.getText().toLowerCase())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest email doesnt exists"); } break; case "Arrival Date": vmes.setText("use this format for dates : yyyy-mm-dd"); for (Reservation R : RList) { try { if (R.getArrivalDate().equals(Date.valueOf(sinput.getText()))) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } catch (IllegalArgumentException dtpe) { vmes.setText("EXCEPTION CAUGHT - wrong format (yyyy-mm-dd)"); } } if (gname.getItems().isEmpty()) { vmes.setText("This Arrival Date doesnt exists"); } break; case "Departure Date": vmes.setText("use this format for dates : yyyy-mm-dd"); for (Reservation R : RList) { try { if (R.getDepartureDate().equals(Date.valueOf(sinput.getText()))) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } catch (IllegalArgumentException dtpe) { vmes.setText("EXCEPTION CAUGHT - wrong format (yyyy-mm-dd)"); } } if (gname.getItems().isEmpty()) { vmes.setText("This Departure Date doesnt exists"); } break; case "Room NO": for (Reservation R : RList) { if (R.getRoomNo() == Integer.parseInt(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this Room NO doesnt exists"); } break; case "Room Type": for (Reservation R : RList) { if (R.getRoomType().contains(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this Room type doesnt exists"); } break; case "Previous Guest Name": vmes.setText(""); for (History R : hList) { vmes.setText(""); if (R.getFname().toLowerCase().contains(sinput.getText().toLowerCase()) || R.getLname().toLowerCase().contains(sinput.getText().toLowerCase())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest name doesnt exists"); } break; case "Previous Guest ID": for (History R : hList) { if (String.valueOf(R.getID()).contains(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest ID doesnt exists"); } break; case "Previous email": vmes.setText(null); for (History R : hList) { if (R.getEmail().toLowerCase().contains(sinput.getText().toLowerCase())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest email doesnt exists"); } break; case "Previous Arrival Date": vmes.setText("use this format for dates : yyyy-mm-dd"); for (History R : hList) { try { if (R.getArrivalDate().equals(Date.valueOf(sinput.getText()))) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } catch (IllegalArgumentException dtpe) { vmes.setText("EXCEPTION CAUGHT - wrong format (yyyy-mm-dd)"); } } if (gname.getItems().isEmpty()) { vmes.setText("This Arrival Date doesnt exists"); } break; case "Previous Departure Date": //vmes.setText("use this format for dates : dd/mm/yy"); vmes.setText("use this format for dates : yyyy-mm-dd"); for (History R : hList) { try { if (R.getDepartureDate().equals(Date.valueOf(sinput.getText()))) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } catch (IllegalArgumentException dtpe) { vmes.setText("EXCEPTION CAUGHT - wrong format (yyyy-mm-dd)"); } } if (gname.getItems().isEmpty()) { vmes.setText("This Departure Date doesnt exists"); } break; case "Previous Room NO": for (History R : hList) { if (R.getRoomNo() == Integer.parseInt(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this Room NO doesnt exists"); } break; case "Previous Room Type": for (History R : hList) { if (R.getRoomType().contains(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this Room type doesnt exists"); } break; default: vmes.setText("error"); break; } } } @FXML private void enterSearch(KeyEvent event) throws IOException { if (event.getCode() == KeyCode.ENTER) { if (sinput.getText().isEmpty()) { vmes.setText("please enter the information you are trying to serach first!"); } else { List RList = null; Session session = HibernateUtil.getSessionFactory().openSession(); Query Q = session.createQuery("from History"); Query q = session.createQuery("from Reservation"); List hList = Q.list(); RList = q.list(); session.close(); gname.getItems().clear(); gid.getItems().clear(); gemail.getItems().clear(); gdate.getItems().clear(); spreq.getItems().clear(); groom.getItems().clear(); gno.getItems().clear(); vmes.setText(""); switch (byCB.getValue()) { case "Guest Name": //sinput.setFocusTraversable(true); vmes.setText(""); for (Reservation R : RList) { vmes.setText(""); if (R.getFname().toLowerCase().contains(sinput.getText().toLowerCase()) || R.getLname().toLowerCase().contains(sinput.getText().toLowerCase())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest name doesnt exists"); } break; case "Guest ID": for (Reservation R : RList) { if (String.valueOf(R.getID()).contains(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest ID doesnt exists"); } break; case "email": vmes.setText(null); for (Reservation R : RList) { if (R.getEmail().toLowerCase().contains(sinput.getText().toLowerCase())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest email doesnt exists"); } break; case "Arrival Date": vmes.setText("use this format for dates : yyyy-mm-dd"); for (Reservation R : RList) { try { if (R.getArrivalDate().equals(Date.valueOf(sinput.getText()))) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } catch (IllegalArgumentException dtpe) { vmes.setText("EXCEPTION CAUGHT - wrong format (yyyy-mm-dd)"); } } if (gname.getItems().isEmpty()) { vmes.setText("This Arrival Date doesnt exists"); } break; case "Departure Date": vmes.setText("use this format for dates : yyyy-mm-dd"); for (Reservation R : RList) { try { if (R.getDepartureDate().equals(Date.valueOf(sinput.getText()))) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } catch (IllegalArgumentException dtpe) { vmes.setText("EXCEPTION CAUGHT - wrong format (yyyy-mm-dd)"); } } if (gname.getItems().isEmpty()) { vmes.setText("This Departure Date doesnt exists"); } break; case "Room NO": for (Reservation R : RList) { if (R.getRoomNo() == Integer.parseInt(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this Room NO doesnt exists"); } break; case "Room Type": for (Reservation R : RList) { if (R.getRoomType().contains(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this Room type doesnt exists"); } break; case "Previous Guest Name": vmes.setText(""); for (History R : hList) { vmes.setText(""); if (R.getFname().toLowerCase().contains(sinput.getText().toLowerCase()) || R.getLname().toLowerCase().contains(sinput.getText().toLowerCase())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest name doesnt exists"); } break; case "Previous Guest ID": for (History R : hList) { if (String.valueOf(R.getID()).contains(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest ID doesnt exists"); } break; case "Previous email": vmes.setText(null); for (History R : hList) { if (R.getEmail().toLowerCase().contains(sinput.getText().toLowerCase())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this guest email doesnt exists"); } break; case "Previous Arrival Date": vmes.setText("use this format for dates : yyyy-mm-dd"); for (History R : hList) { try { if (R.getArrivalDate().equals(Date.valueOf(sinput.getText()))) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } catch (IllegalArgumentException dtpe) { vmes.setText("EXCEPTION CAUGHT - wrong format (yyyy-mm-dd)"); } } if (gname.getItems().isEmpty()) { vmes.setText("This Arrival Date doesnt exists"); } break; case "Previous Departure Date": vmes.setText("use this format for dates : yyyy-mm-dd"); for (History R : hList) { try { if (R.getDepartureDate().equals(Date.valueOf(sinput.getText()))) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } catch (IllegalArgumentException dtpe) { vmes.setText("EXCEPTION CAUGHT - wrong format (yyyy-mm-dd)"); } } if (gname.getItems().isEmpty()) { vmes.setText("This Departure Date doesnt exists"); } break; case "Previous Room NO": for (History R : hList) { if (R.getRoomNo() == Integer.parseInt(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this Room NO doesnt exists"); } break; case "Previous Room Type": for (History R : hList) { if (R.getRoomType().contains(sinput.getText())) { gname.getItems().add(R.getFname() + " " + R.getLname()); gid.getItems().add(R.getID()); gemail.getItems().add(R.getEmail()); gdate.getItems().add(R.getArrivalDate() + " -> " + R.getDepartureDate()); spreq.getItems().add(R.getSpecialRequest()); groom.getItems().add(R.getRoomNo() + " - " + R.getRoomType()); gno.getItems().add(R.getGuestCount()); vmes.setText(""); } } if (gname.getItems().isEmpty()) { vmes.setText("this Room type doesnt exists"); } break; default: vmes.setText("error"); break; } } } } //Methods to close and minimize window. @FXML private void close_app(javafx.scene.input.MouseEvent event) { System.exit(0); } @FXML private void minimize_app(javafx.scene.input.MouseEvent event) { stage = (Stage) ((Node) event.getSource()).getScene().getWindow(); stage.setIconified(true); } /*---------------------class switching events---------------------*/ @FXML private void switchToReservations(ActionEvent e) throws IOException { Parent root = FXMLLoader.load(getClass().getResource("Reservations.fxml")); root.setOnMousePressed((event) -> { xOffSet = event.getSceneX(); yOffSet = event.getSceneY(); }); root.setOnMouseDragged((event) -> { stage.setX(event.getScreenX() - xOffSet); stage.setY(event.getScreenY() - yOffSet); }); stage = (Stage) ((Node) e.getSource()).getScene().getWindow(); scene = new Scene(root, Color.TRANSPARENT); stage.setScene(scene); stage.show(); } private void switchToNewReservation(ActionEvent e) throws IOException { Parent root = FXMLLoader.load(getClass().getResource("NewReservation.fxml")); root.setOnMousePressed((event) -> { xOffSet = event.getSceneX(); yOffSet = event.getSceneY(); }); root.setOnMouseDragged((event) -> { stage.setX(event.getScreenX() - xOffSet); stage.setY(event.getScreenY() - yOffSet); }); stage = (Stage) ((Node) e.getSource()).getScene().getWindow(); scene = new Scene(root, Color.TRANSPARENT); stage.setScene(scene); stage.show(); } @FXML private void switchToLoggedIn(ActionEvent e) throws IOException { Parent root = FXMLLoader.load(getClass().getResource("LoggedIn.fxml")); root.setOnMousePressed((event) -> { xOffSet = event.getSceneX(); yOffSet = event.getSceneY(); }); root.setOnMouseDragged((event) -> { stage.setX(event.getScreenX() - xOffSet); stage.setY(event.getScreenY() - yOffSet); }); stage = (Stage) ((Node) e.getSource()).getScene().getWindow(); scene = new Scene(root, Color.TRANSPARENT); stage.setScene(scene); stage.show(); } @FXML private void switchToRooms(ActionEvent e) throws IOException { Parent root = FXMLLoader.load(getClass().getResource("Rooms.fxml")); root.setOnMousePressed((event) -> { xOffSet = event.getSceneX(); yOffSet = event.getSceneY(); }); root.setOnMouseDragged((event) -> { stage.setX(event.getScreenX() - xOffSet); stage.setY(event.getScreenY() - yOffSet); }); stage = (Stage) ((Node) e.getSource()).getScene().getWindow(); scene = new Scene(root, Color.TRANSPARENT); stage.setScene(scene); stage.show(); } @FXML private void switchToServices(ActionEvent e) throws IOException { Parent root = FXMLLoader.load(getClass().getResource("Services.fxml")); root.setOnMousePressed((event) -> { xOffSet = event.getSceneX(); yOffSet = event.getSceneY(); }); root.setOnMouseDragged((event) -> { stage.setX(event.getScreenX() - xOffSet); stage.setY(event.getScreenY() - yOffSet); }); stage = (Stage) ((Node) e.getSource()).getScene().getWindow(); scene = new Scene(root, Color.TRANSPARENT); stage.setScene(scene); stage.show(); } @FXML private void switchToSearch(ActionEvent e) throws IOException { Parent root = FXMLLoader.load(getClass().getResource("Search.fxml")); root.setOnMousePressed((event) -> { xOffSet = event.getSceneX(); yOffSet = event.getSceneY(); }); root.setOnMouseDragged((event) -> { stage.setX(event.getScreenX() - xOffSet); stage.setY(event.getScreenY() - yOffSet); }); stage = (Stage) ((Node) e.getSource()).getScene().getWindow(); scene = new Scene(root, Color.TRANSPARENT); stage.setScene(scene); stage.show(); } @FXML private void switchToSettings(ActionEvent e) throws IOException { Parent root = FXMLLoader.load(getClass().getResource("Settings.fxml")); root.setOnMousePressed((event) -> { xOffSet = event.getSceneX(); yOffSet = event.getSceneY(); }); root.setOnMouseDragged((event) -> { stage.setX(event.getScreenX() - xOffSet); stage.setY(event.getScreenY() - yOffSet); }); stage = (Stage) ((Node) e.getSource()).getScene().getWindow(); scene = new Scene(root, Color.TRANSPARENT); stage.setScene(scene); stage.show(); } }