Did same things to airports and routes

main
Sunguin Peng 9 years ago
parent c3dca82a7a
commit 586943ac29

Binary file not shown.

@ -12,7 +12,9 @@ import java.util.HashMap;
*/
public class Session implements Serializable {
private SceneCode sceneDisplayed;
private HashMap<String, Integer> filteredAirlines;
private HashMap<Integer, String> filteredAirlines;
private HashMap<Integer, String> filteredAirports;
private HashMap<Integer, String> filteredRoutes;
/**
* Constructor for a new session
@ -50,7 +52,23 @@ public class Session implements Serializable {
this.filteredAirlines = airlines;
}
public HashMap<String, Integer> getFilteredAirlines() {
public HashMap<Integer, String> getFilteredAirlines() {
return filteredAirlines;
}
public void setFilteredAirports(HashMap airports) {
this.filteredAirports = airports;
}
public HashMap<Integer, String> getFilteredAirports() {
return filteredAirports;
}
public void setFilteredRoutes(HashMap routes) {
this.filteredRoutes = routes;
}
public HashMap<Integer, String> getFilteredRoutes() {
return filteredRoutes;
}
}

@ -3,23 +3,16 @@ package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.Pane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import seng202.group9.Controller.*;
import seng202.group9.Core.Airline;
import javax.swing.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Optional;
//make a class for the scenes to get the data I guess
/**
* The GUI controller class for airline_raw_data.fxml.
* Extends from the abstract class {@link Controller}.
@ -46,8 +39,9 @@ public class AirlineRDController extends Controller {
@FXML
private TableColumn<Airline, String> airlActiveCol;
//Set an empty Dataset to be assigned later.
//Set an empty Dataset to be assigned to the current dataset.
private Dataset theDataSet = null;
//Set an empty session to be assigned to the current session.
private Session currentSession = null;
/**
@ -67,10 +61,10 @@ public class AirlineRDController extends Controller {
//Assigning the Dataset to the current Dataset's airlines and displaying it in a table
theDataSet = getParent().getCurrentDataset();
currentSession = getParent().getSession();
tableViewAirlineRD.setItems(FXCollections.observableArrayList(theDataSet.getAirlines()));
tableViewAirlineRD.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
currentSession = getParent().getSession();
}

@ -5,7 +5,9 @@ import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import seng202.group9.Controller.Dataset;
import seng202.group9.Controller.Session;
/**
* Created by Sunguin on 2016/09/22.
@ -34,6 +36,8 @@ public class AirportAddController extends Controller {
private TextField airpDSTAdd;
@FXML
private TextField airpTzAdd;
@FXML
private TextField addButton;
//Set an empty Dataset to be assigned later
private Dataset theDataSet = null;
@ -70,6 +74,16 @@ public class AirportAddController extends Controller {
airpTimezoneAdd.clear();
airpDSTAdd.clear();
airpTzAdd.clear();
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Airport Add Successful");
alert.setHeaderText("New Airport added!");
alert.setContentText("Your new airport has been successfully added into the database.");
alert.showAndWait();
Stage stage = (Stage) addButton.getScene().getWindow();
stage.close();
} catch ( Exception e ) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Airport Data Error");

@ -2,11 +2,18 @@ package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import seng202.group9.Controller.AirportFilter;
import seng202.group9.Controller.Dataset;
import seng202.group9.Controller.Session;
import seng202.group9.Core.Airport;
import java.util.ArrayList;
import java.util.HashMap;
/**
* Created by Sunguin on 2016/09/22.
*/
@ -34,9 +41,13 @@ public class AirportFilterController extends Controller {
private TextField airpDSTFilter;
@FXML
private TextField airpTzFilter;
@FXML
private Button applyButton;
//Set an empty Dataset to be assigned later
private Dataset theDataSet = null;
//Set an empty session to be assigned to the current session.
private Session currentSession = null;
/**
* Filters the airports table by any field.
@ -80,9 +91,27 @@ public class AirportFilterController extends Controller {
if (airpTzFilter.getText() != null) {
filter.filterOlson(airpTzFilter.getText());
}
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Airline Filter Successful");
alert.setHeaderText("Airline data filtered!");
alert.setContentText("Your airline data has been successfully filtered.");
alert.showAndWait();
//currentSession.setFilteredAirlines(FXCollections.observableArrayList(filter.getFilteredData()));
HashMap<Integer, String> airportsHM = new HashMap<Integer, String>();
ArrayList<Airport> airports = filter.getFilteredData();
for (int index = 0; index < airports.size(); index++) {
airportsHM.put(index, airports.get(index).getName());
}
currentSession.setFilteredAirports(airportsHM);
Stage stage = (Stage) applyButton.getScene().getWindow();
stage.close();
}
public void load() {
theDataSet = getParent().getCurrentDataset();
currentSession = getParent().getSession();
}
}

@ -1,14 +1,19 @@
package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import seng202.group9.Controller.AirportFilter;
import seng202.group9.Controller.Dataset;
import seng202.group9.Controller.SceneCode;
import seng202.group9.Controller.Session;
import seng202.group9.Core.Airport;
import java.util.ArrayList;
import java.util.Optional;
import static javafx.collections.FXCollections.observableArrayList;
/**
@ -47,6 +52,8 @@ public class AirportRDController extends Controller{
//Set an empty Dataset to be assigned later
private Dataset theDataSet = null;
//Set an empty session to be assigned to the current session.
private Session currentSession = null;
/**
* Loads the initial airport data to the GUI table.
@ -69,7 +76,10 @@ public class AirportRDController extends Controller{
//Assigning the Dataset to the current Dataset's airports and displaying it in a table
theDataSet = getParent().getCurrentDataset();
currentSession = getParent().getSession();
tableViewAirportRD.setItems(observableArrayList(theDataSet.getAirports()));
tableViewAirportRD.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
}
public void openAdd() {
@ -79,6 +89,14 @@ public class AirportRDController extends Controller{
public void openFilter() {
createPopUpStage(SceneCode.AIRPORT_FILTER, 600, 480);
ArrayList<Airport> d = new ArrayList();
for(int i = 0; i < theDataSet.getAirports().size(); i++) {
if (currentSession.getFilteredAirports().containsValue(theDataSet.getAirports().get(i).getName())
&& currentSession.getFilteredAirports().containsKey(i)) {
d.add(theDataSet.getAirports().get(i));
}
}
tableViewAirportRD.setItems(FXCollections.observableArrayList(d));
}
/**
@ -88,9 +106,25 @@ public class AirportRDController extends Controller{
*/
public void deleteAirport(){
//Gets an airport from the table and deletes it before updating the table
Airport toDelete = tableViewAirportRD.getSelectionModel().getSelectedItem();
theDataSet.deleteAirport(toDelete);
tableViewAirportRD.setItems(observableArrayList(theDataSet.getAirports()));
// Airport toDelete = tableViewAirportRD.getSelectionModel().getSelectedItem();
// theDataSet.deleteAirport(toDelete);
// tableViewAirportRD.setItems(observableArrayList(theDataSet.getAirports()));
ObservableList<Airport> toDelete = tableViewAirportRD.getSelectionModel().getSelectedItems();
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle("Airport Delete Confirmation");
alert.setHeaderText("You are about to delete some data.");
alert.setContentText("Are you sure you want to delete the selected airport(s)?");
//alert.showAndWait();
Optional<ButtonType> result = alert.showAndWait();
Airport air = null;
if (result.isPresent() && result.get() == ButtonType.OK) {
for (int i = 0; i < toDelete.size(); i++) {
air = toDelete.get(i);
theDataSet.deleteAirport(air);
}
tableViewAirportRD.setItems(FXCollections.observableArrayList(theDataSet.getAirports()));
}
}

@ -3,8 +3,10 @@ package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ComboBox;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import seng202.group9.Controller.Dataset;
/**
@ -24,6 +26,8 @@ public class RouteAddController extends Controller {
private TextField rStopsAdd;
@FXML
private TextField rEquipmentAdd;
@FXML
private Button addButton;
private Dataset theDataSet = null;
@ -50,6 +54,16 @@ public class RouteAddController extends Controller {
rCodeshareAdd.clear();
rStopsAdd.clear();
rEquipmentAdd.clear();
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Route Add Successful");
alert.setHeaderText("New Route added!");
alert.setContentText("Your new route has been successfully added into the database.");
alert.showAndWait();
Stage stage = (Stage) addButton.getScene().getWindow();
stage.close();
} catch ( Exception e ) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Route Data Error");

@ -2,11 +2,18 @@ package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.fxml.FXML;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import seng202.group9.Controller.Dataset;
import seng202.group9.Controller.RouteFilter;
import seng202.group9.Controller.Session;
import seng202.group9.Core.Route;
import java.util.ArrayList;
import java.util.HashMap;
/**
* Created by Sunguin on 2016/09/23.
*/
@ -24,8 +31,12 @@ public class RouteFilterController extends Controller {
private TextField rStopsFilter;
@FXML
private TextField rEquipmentFilter;
@FXML
private Button applyButton;
private Dataset theDataSet = null;
//Set an empty session to be assigned to the current session.
private Session currentSession = null;
/**
* Filters the routes table by any field.
@ -54,9 +65,27 @@ public class RouteFilterController extends Controller {
if (rEquipmentFilter.getText() != null) {
filter.filterEquipment(rEquipmentFilter.getText());
}
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Route Filter Successful");
alert.setHeaderText("Route data filtered!");
alert.setContentText("Your route data has been successfully filtered.");
alert.showAndWait();
//currentSession.setFilteredAirlines(FXCollections.observableArrayList(filter.getFilteredData()));
HashMap<Integer, String> routesHM = new HashMap<Integer, String>();
ArrayList<Route> routes = filter.getFilteredData();
for (int index = 0; index < routes.size(); index++) {
routesHM.put(index, routes.get(index).getAirlineName());
}
currentSession.setFilteredRoutes(routesHM);
Stage stage = (Stage) applyButton.getScene().getWindow();
stage.close();
}
public void load() {
theDataSet = getParent().getCurrentDataset();
currentSession = getParent().getSession();
}
}

@ -1,14 +1,19 @@
package seng202.group9.GUI;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import seng202.group9.Controller.Dataset;
import seng202.group9.Controller.SceneCode;
import seng202.group9.Controller.RouteFilter;
import seng202.group9.Controller.Session;
import seng202.group9.Core.Route;
import java.util.ArrayList;
import java.util.Optional;
/**
* The GUI controller class for route_raw_data.fxml.
* Extends from the abstract class {@link Controller}.
@ -39,6 +44,8 @@ public class RouteRDController extends Controller {
//Set an empty Dataset to be assigned later
private Dataset theDataSet = null;
//Set an empty session to be assigned to the current session.
private Session currentSession = null;
/**
* Loads the initial route data to the GUI table.
@ -58,7 +65,10 @@ public class RouteRDController extends Controller {
//Assigning the Dataset to the current Dataset's routes and displaying it in a table
theDataSet = getParent().getCurrentDataset();
currentSession = getParent().getSession();
tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes()));
tableViewRouteRD.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
}
public void openAdd() {
@ -68,6 +78,14 @@ public class RouteRDController extends Controller {
public void openFilter() {
createPopUpStage(SceneCode.ROUTE_FILTER, 600, 330);
ArrayList<Route> d = new ArrayList();
for(int i = 0; i < theDataSet.getRoutes().size(); i++) {
if (currentSession.getFilteredRoutes().containsValue(theDataSet.getRoutes().get(i).getAirlineName())
&& currentSession.getFilteredRoutes().containsKey(i)) {
d.add(theDataSet.getRoutes().get(i));
}
}
tableViewRouteRD.setItems(FXCollections.observableArrayList(d));
}
/**
@ -77,9 +95,21 @@ public class RouteRDController extends Controller {
*/
public void deleteRoute() {
//Gets a route from the table and deletes it before updating the table
Route toDelete = tableViewRouteRD.getSelectionModel().getSelectedItem();
theDataSet.deleteRoute(toDelete);
tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes()));
ObservableList<Route> toDelete = tableViewRouteRD.getSelectionModel().getSelectedItems();
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle("Route Delete Confirmation");
alert.setHeaderText("You are about to delete some data.");
alert.setContentText("Are you sure you want to delete the selected route(s)?");
//alert.showAndWait();
Optional<ButtonType> result = alert.showAndWait();
Route air = null;
if (result.isPresent() && result.get() == ButtonType.OK) {
for (int i = 0; i < toDelete.size(); i++) {
air = toDelete.get(i);
theDataSet.deleteRoute(air);
}
tableViewRouteRD.setItems(FXCollections.observableArrayList(theDataSet.getRoutes()));
}
}
@ -93,5 +123,6 @@ public class RouteRDController extends Controller {
public void routeSummaryButton() {
replaceSceneContent(SceneCode.ROUTE_SUMMARY);
currentSession = getParent().getSession();
}
}

@ -73,7 +73,7 @@
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Button mnemonicParsing="false" onAction="#addAirportSingle" text="Add Airport" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="12" />
<Button fx:id="addButton" mnemonicParsing="false" onAction="#addAirportSingle" text="Add Airport" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="12" />
<TextField fx:id="airpNameAdd" prefHeight="31.0" prefWidth="432.0" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="1" />
<TextField fx:id="airpCityAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="2" />
<TextField fx:id="airpCountryAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="3" />

@ -73,7 +73,7 @@
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Button mnemonicParsing="false" onAction="#filterAirports" text="Filter Airports" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="12" />
<Button fx:id="applyButton" mnemonicParsing="false" onAction="#filterAirports" text="Filter Airports" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="12" />
<TextField fx:id="airpNameFilter" prefHeight="31.0" prefWidth="432.0" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="1" />
<TextField fx:id="airpCityFilter" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="2" />
<TextField fx:id="airpCountryFilter" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="3" />

@ -63,7 +63,7 @@
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Button mnemonicParsing="false" onAction="#addRouteSingle" text="Add Route" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="7" />
<Button fx:id="addButton" mnemonicParsing="false" onAction="#addRouteSingle" text="Add Route" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="7" />
<TextField fx:id="rAirlineAdd" prefHeight="31.0" prefWidth="432.0" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="1" />
<TextField fx:id="rSourceAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="2" />
<TextField fx:id="rDestAdd" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="3" />

@ -63,7 +63,7 @@
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
</GridPane.margin>
</Label>
<Button mnemonicParsing="false" onAction="#filterRoutes" text="Filter Routes" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="7" />
<Button fx:id="applyButton" mnemonicParsing="false" onAction="#filterRoutes" text="Filter Routes" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="7" />
<TextField fx:id="rAirlineFilter" prefHeight="31.0" prefWidth="432.0" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="1" />
<TextField fx:id="rSourceFilter" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="2" />
<TextField fx:id="rDestFilter" GridPane.columnIndex="1" GridPane.halignment="RIGHT" GridPane.rowIndex="3" />

Loading…
Cancel
Save