package seng202.group9.GUI; import javafx.collections.FXCollections; import javafx.fxml.FXML; import javafx.scene.control.*; import javafx.scene.control.cell.PropertyValueFactory; import seng202.group9.Controller.App; import seng202.group9.Controller.DataException; import seng202.group9.Controller.Dataset; import seng202.group9.Controller.RouteFilter; import seng202.group9.Core.Route; import java.util.ArrayList; /** * Created by Sunguin on 2016/09/14. */ public class RouteRDController extends Controller { @FXML private TableView tableViewRouteRD; @FXML private TableColumn rAirlineCol; @FXML private TableColumn rAirlineIDCol; @FXML private TableColumn rSourceCol; @FXML private TableColumn rSourceIDCol; @FXML private TableColumn rDestCol; @FXML private TableColumn rDestIDCol; @FXML private TableColumn rCodeshareCol; @FXML private TableColumn rStopsCol; @FXML private TableColumn rEquipmentCol; @FXML private TextField rAirlineBox; @FXML private TextField rSourceBox; @FXML private TextField rDestBox; @FXML private ComboBox rCodeshareCBox; @FXML private TextField rStopsBox; @FXML private TextField rEquipmentBox; @FXML private TextField rAirlineFilter; @FXML private TextField rSourceFilter; @FXML private TextField rDestFilter; @FXML private TextField rCodeshareFilter; @FXML private TextField rStopsFilter; @FXML private TextField rEquipmentFilter; @FXML private Dataset theDataSet = null; public void addRouteSingle() { try { theDataSet.addRoute( rAirlineBox.getText(), rSourceBox.getText(), rDestBox.getText(), rCodeshareCBox.getSelectionModel().getSelectedItem().toString(), rStopsBox.getText(), rEquipmentBox.getText() ); rAirlineBox.clear(); rSourceBox.clear(); rDestBox.clear(); rCodeshareCBox.getSelectionModel().clearSelection(); rStopsBox.clear(); rEquipmentBox.clear(); tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes())); } catch (DataException e){ Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Route Data Error"); alert.setHeaderText("Error adding a custom route entry."); alert.setContentText(e.getMessage()); alert.showAndWait(); } catch ( Exception e ) { e.printStackTrace(); Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Route Error"); alert.setHeaderText("Error adding a custom route entry."); alert.setContentText(e.getMessage()); alert.showAndWait(); } } public void load() { rAirlineCol.setCellValueFactory(new PropertyValueFactory("AirlineName")); rAirlineIDCol.setCellValueFactory(new PropertyValueFactory("AirlineID")); rSourceCol.setCellValueFactory(new PropertyValueFactory("DepartureAirport")); rSourceIDCol.setCellValueFactory(new PropertyValueFactory("SourceID")); rDestCol.setCellValueFactory(new PropertyValueFactory("ArrivalAirport")); rDestIDCol.setCellValueFactory(new PropertyValueFactory("DestID")); rCodeshareCol.setCellValueFactory(new PropertyValueFactory("Code")); rStopsCol.setCellValueFactory(new PropertyValueFactory("Stops")); rEquipmentCol.setCellValueFactory(new PropertyValueFactory("Equipment")); theDataSet = getParent().getCurrentDataset(); tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes())); rCodeshareCBox.setValue(""); rCodeshareCBox.getItems().addAll("Y", ""); } public void deleteRoute(){ Route toDelete = tableViewRouteRD.getSelectionModel().getSelectedItem(); theDataSet.deleteRoute(toDelete); tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes())); } public void filterRoutes(){ RouteFilter filter = new RouteFilter(theDataSet.getRoutes()); if (rAirlineFilter.getText() != null && !rAirlineFilter.getText().equals("")) { //System.out.println("Hello over here"); filter.filterAirline(rAirlineFilter.getText()); } if (rSourceFilter.getText() != null) { filter.filterSourceAirport(rSourceFilter.getText()); } if (rDestFilter.getText() != null) { filter.filterDestinationAirport(rDestFilter.getText()); } if (rCodeshareFilter.getText() != null) { filter.filterCodeshare(rCodeshareFilter.getText()); } if (rStopsFilter.getText() != null) { filter.filterDestinationStops(rStopsFilter.getText()); } if (rEquipmentFilter.getText() != null) { filter.filterEquipment(rEquipmentFilter.getText()); } // System.out.println("Hello"); // filter.printFilter(); tableViewRouteRD.setItems(FXCollections.observableArrayList(filter.getFilteredData())); } }