You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
5.5 KiB
153 lines
5.5 KiB
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<Route> tableViewRouteRD;
|
|
@FXML
|
|
private TableColumn<Route, String> rAirlineCol;
|
|
@FXML
|
|
private TableColumn<Route, String> rAirlineIDCol;
|
|
@FXML
|
|
private TableColumn<Route, String> rSourceCol;
|
|
@FXML
|
|
private TableColumn<Route, String> rSourceIDCol;
|
|
@FXML
|
|
private TableColumn<Route, String> rDestCol;
|
|
@FXML
|
|
private TableColumn<Route, String> rDestIDCol;
|
|
@FXML
|
|
private TableColumn<Route, String> rCodeshareCol;
|
|
@FXML
|
|
private TableColumn<Route, String> rStopsCol;
|
|
@FXML
|
|
private TableColumn<Route, String> rEquipmentCol;
|
|
|
|
@FXML
|
|
private TextField rAirlineBox;
|
|
@FXML
|
|
private TextField rSourceBox;
|
|
@FXML
|
|
private TextField rDestBox;
|
|
@FXML
|
|
private ComboBox<String> 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<Route, String>("AirlineName"));
|
|
rAirlineIDCol.setCellValueFactory(new PropertyValueFactory<Route, String>("AirlineID"));
|
|
rSourceCol.setCellValueFactory(new PropertyValueFactory<Route, String>("DepartureAirport"));
|
|
rSourceIDCol.setCellValueFactory(new PropertyValueFactory<Route, String>("SourceID"));
|
|
rDestCol.setCellValueFactory(new PropertyValueFactory<Route, String>("ArrivalAirport"));
|
|
rDestIDCol.setCellValueFactory(new PropertyValueFactory<Route, String>("DestID"));
|
|
rCodeshareCol.setCellValueFactory(new PropertyValueFactory<Route, String>("Code"));
|
|
rStopsCol.setCellValueFactory(new PropertyValueFactory<Route, String>("Stops"));
|
|
rEquipmentCol.setCellValueFactory(new PropertyValueFactory<Route, String>("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()));
|
|
}
|
|
}
|