Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainViewController implements Initializable {
- ObservableList<ReadableData> data = FXCollections.observableArrayList();
- /**
- * Initialise TableView
- */
- @FXML
- private TableView<ReadableData> MainView;
- @FXML
- private TableColumn<ReadableData, String> hallNumberCol;
- @FXML
- private TableColumn<ReadableData, String> roomNumberCol;
- @FXML
- private TableColumn<ReadableData, String> forenameCol;
- @FXML
- private TableColumn<ReadableData, String> surnameCol;
- @FXML
- private TableColumn<ReadableData, String> studentNumCol;
- @FXML
- private TableColumn<ReadableData, String> leaseNumberCol;
- @FXML
- private TableColumn<ReadableData, String> cleaningStatusCol;
- @FXML
- private TableColumn<ReadableData, String> roomStatusCol;
- @FXML
- private ChoiceBox cleaningStatusBox;
- @FXML
- private TextField roomStatusBox;
- @FXML
- private TextField searchBox;
- @FXML
- private TextField hallNumberBox;
- @FXML
- private TextField roomNumberBox;
- @FXML
- private TextField leaseNumberBox;
- @FXML
- private TextField forenameBox;
- @FXML
- private TextField surnameBox;
- @FXML
- private TextField studentIdBox;
- // TO DO
- // Display how many rooms are unoccupied
- @FXML
- private TextField roomsAvailableBox;
- @FXML
- private Button updateButton;
- /**
- * Initialise the controller class
- */
- @Override
- public void initialize(URL url, ResourceBundle resourceBundle) {
- // Set the columns in the table
- hallNumberCol.setCellValueFactory(
- new PropertyValueFactory<ReadableData, String>("hallNumber"));
- roomNumberCol.setCellValueFactory(
- new PropertyValueFactory<ReadableData, String>("roomNumber"));
- studentNumCol.setCellValueFactory(
- new PropertyValueFactory<ReadableData, String>("studentNumber"));
- forenameCol.setCellValueFactory(
- new PropertyValueFactory<ReadableData, String>("forename"));
- surnameCol.setCellValueFactory(
- new PropertyValueFactory<ReadableData, String>("surname"));
- leaseNumberCol.setCellValueFactory(
- new PropertyValueFactory<ReadableData, String>("leaseNumber"));
- cleaningStatusCol.setCellValueFactory(
- new PropertyValueFactory<ReadableData, String>("cleaningStatus"));
- roomStatusCol.setCellValueFactory(
- new PropertyValueFactory<ReadableData, String>("roomStatus"));
- MainView.setItems(getData());
- // Gets selected row when clicked
- MainView.setOnMouseClicked((MouseEvent event) -> {
- if (event.getClickCount() > 1) {
- getRow();
- }
- });
- disableButtons();
- //if(LoginScreenController.wardenOne == true){
- // updateButton.setDisable(true);
- //}
- }
- private void disableButtons(){
- if(LoginScreenController.manager != true){
- //UWESystem.getInstance();
- //updateButton.setDisable(true);
- data.removeIf(obj -> !obj.getHallNumber().contains("1"));
- }
- }
- /**
- * getRow
- * Displays selected row to text fields
- */
- public void getRow() {
- // check the table's selected item and get selected item
- if (MainView.getSelectionModel().getSelectedItem() != null) {
- ReadableData selectedData = MainView.getSelectionModel().getSelectedItem();
- hallNumberBox.setText(selectedData.getHallNumber());
- roomNumberBox.setText((selectedData.getRoomNumber()));
- studentIdBox.setText((selectedData.getStudentNumber()));
- forenameBox.setText((selectedData.getForename()));
- surnameBox.setText((selectedData.getSurname()));
- leaseNumberBox.setText((selectedData.getLeaseNumber()));
- //cleaningStatusBox.getText((selectedData.getRoomNumber()));
- roomStatusBox.setText((selectedData.getRoomStatus()));
- }
- }
- /**
- * update
- * Updates selected row in table by using text fields
- */
- @FXML
- private void update(){
- ReadableData selectedData = MainView.getSelectionModel().getSelectedItem();
- Hall hall = selectedData.getHall();
- Room room = selectedData.getRoom();
- Lease lease = selectedData.getLease();
- if (lease != null)
- {
- hall.getHallNumber();
- room.getRoomNumber();
- Student student = lease.getStudent();
- student.setStudentID(Integer.valueOf(studentIdBox.getText()));
- student.setForename(forenameBox.getText());
- student.setSurname(surnameBox.getText());
- lease.setLeaseNumber(Integer.valueOf(leaseNumberBox.getText()));
- room.getRoomStatus();
- }
- }
- @FXML
- public void logout(ActionEvent event) throws IOException
- {
- Parent loginScreenParent = FXMLLoader.load(getClass().getResource("LoginScreen.fxml"));
- Scene loginScreen = new Scene(loginScreenParent);
- //This line gets the Stage information
- Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
- window.setScene(loginScreen);
- window.show();
- }
- /**
- * searchRecord
- * Searches table based on student name
- * @param event
- */
- @FXML
- private void searchRecord(KeyEvent event) {
- FilteredList<ReadableData> filter = new FilteredList<>(data, e -> true);
- searchBox.textProperty().addListener((observable, oldValue, newValue) -> {
- filter.setPredicate(student -> {
- if (newValue == null || newValue.isEmpty()) {
- return true;
- }
- String typedText = newValue.toLowerCase();
- if (student.getSurname().toLowerCase().indexOf(typedText) != -1) {
- return true;
- }
- if (student.getForename().toLowerCase().indexOf(typedText) != -1) {
- return true;
- }
- return false;
- });
- SortedList<ReadableData> sortedList = new SortedList<>(filter);
- sortedList.comparatorProperty().bind(MainView.comparatorProperty());
- MainView.setItems(sortedList);
- });
- }
- /**
- * getData
- * Returns an ObservableList of objects
- */
- public ObservableList<ReadableData> getData() {
- // Singleton Method gets single instance of the class
- UWESystem uweAccommodationSystemController = UWESystem.getInstance();
- // Create the halls
- //uweAccommodationSystemController.createHalls();
- ArrayList<Hall> halls = uweAccommodationSystemController.getHalls();
- // Iterate through halls and rooms and get data for table
- for (int i = 0; i < halls.size(); i++) {
- Hall currentHall = halls.get(i);
- ArrayList<Room> rooms = currentHall.getRooms();
- for (int j = 0; j < rooms.size(); j++) {
- Room room = rooms.get(j);
- Student student = null;
- String leaseString = "";
- Lease lease = null;
- if (room.isOccupied()) {
- lease = room.getLease();
- student = lease.getStudent();
- leaseString = String.valueOf(lease.getLeaseNumber());
- }
- String studentId = "";
- String studentForename = "";
- String studentSurname = "";
- if (student != null) {
- studentId = String.valueOf(student.getStudentID());
- studentForename = String.valueOf(student.getForename());
- studentSurname = String.valueOf(student.getSurname());
- }
- ReadableData row = new ReadableData(
- String.valueOf(currentHall.getHallNumber()),
- String.valueOf(room.getRoomNumber()),
- studentId,
- studentForename,
- studentSurname,
- leaseString,
- room.getCleaningStatus(),
- room.getRoomStatus(),
- currentHall,
- room,
- lease);
- // Add attributes to row
- data.add(row);
- }
- }
- return data;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement