Made Route Graph Work
This commit is contained in:
@@ -74,6 +74,20 @@ public class App extends Application
|
|||||||
session = new Session();
|
session = new Session();
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//load all datasets
|
||||||
|
try{
|
||||||
|
loadAllDatasets();
|
||||||
|
} catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
if (session.getCurrentDataset() != null){
|
||||||
|
for (int i = 0; i < datasets.size(); i ++) {
|
||||||
|
if (datasets.get(i).getName().equals(session.getCurrentDataset())) {
|
||||||
|
currentDataset = datasets.get(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//load the menu and the first container
|
//load the menu and the first container
|
||||||
try {
|
try {
|
||||||
FXMLLoader loader = new FXMLLoader();
|
FXMLLoader loader = new FXMLLoader();
|
||||||
@@ -89,49 +103,13 @@ public class App extends Application
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
primaryStage.show();
|
|
||||||
//load all datasets
|
|
||||||
try{
|
|
||||||
loadAllDatasets();
|
|
||||||
} catch (Exception e){
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
if (session.getCurrentDataset() != null){
|
|
||||||
for (int i = 0; i < datasets.size(); i ++) {
|
|
||||||
if (datasets.get(i).getName().equals(session.getCurrentDataset())) {
|
|
||||||
currentDataset = datasets.get(i);
|
|
||||||
|
|
||||||
HashMap<Integer, Integer> airlinesHM = new HashMap<Integer, Integer>();
|
|
||||||
ArrayList<Airline> airlines = currentDataset.getAirlines();
|
|
||||||
for (int index = 0; index < airlines.size(); index++) {
|
|
||||||
try {
|
|
||||||
airlinesHM.put(index, airlines.get(index).getID());
|
|
||||||
} catch (DataException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
session.setFilteredAirlines(airlinesHM);
|
|
||||||
|
|
||||||
HashMap<Integer, Integer> airportsHM = new HashMap<Integer, Integer>();
|
|
||||||
ArrayList<Airport> airports = currentDataset.getAirports();
|
|
||||||
for (int index = 0; index < airports.size(); index++) {
|
|
||||||
try {
|
|
||||||
airportsHM.put(index, airports.get(index).getID());
|
|
||||||
} catch (DataException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
session.setFilteredAirports(airportsHM);
|
|
||||||
//session.setFilteredRoutes();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//after all loading then load the previous session
|
//after all loading then load the previous session
|
||||||
if (session.getSceneDisplayed() != null) {
|
if (session.getSceneDisplayed() != null) {
|
||||||
menuController.replaceSceneContent(session.getSceneDisplayed());
|
menuController.replaceSceneContent(session.getSceneDisplayed());
|
||||||
}else{
|
}else{
|
||||||
menuController.replaceSceneContent(SceneCode.INITIAL);
|
menuController.replaceSceneContent(SceneCode.INITIAL);
|
||||||
}
|
}
|
||||||
|
primaryStage.show();
|
||||||
//check if there is internet connectivity
|
//check if there is internet connectivity
|
||||||
if (!testInet("maps.google.com")){
|
if (!testInet("maps.google.com")){
|
||||||
Alert alert = new Alert(Alert.AlertType.WARNING);
|
Alert alert = new Alert(Alert.AlertType.WARNING);
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ public class Session implements Serializable {
|
|||||||
|
|
||||||
private int currentFlightPointID;//current selected flight point
|
private int currentFlightPointID;//current selected flight point
|
||||||
private int currentFlightPathID;//cureselected flight path
|
private int currentFlightPathID;//cureselected flight path
|
||||||
private HashMap<Integer, Integer> filteredAirlines;//current filtered airlines
|
private HashMap<Integer, String> filteredAirlines;//current filtered airlines
|
||||||
private HashMap<Integer, Integer> filteredAirports;//current filtered airports
|
private HashMap<Integer, String> filteredAirports;//current filtered airports
|
||||||
private HashMap<Integer, Integer> filteredRoutes;//current filtered routes
|
private HashMap<Integer, String> filteredRoutes;//current filtered routes
|
||||||
private HashMap<String, String> airportFilter;//storage for filter values for airports
|
private HashMap<String, String> airportFilter;//storage for filter values for airports
|
||||||
private HashMap<String, String> airlineFilter;//storage for filter values for airports
|
private HashMap<String, String> airlineFilter;//storage for filter values for airports
|
||||||
private HashMap<String, String> routeFilter;//storage for filter values for airports
|
private HashMap<String, String> routeFilter;//storage for filter values for airports
|
||||||
@@ -83,7 +83,7 @@ public class Session implements Serializable {
|
|||||||
this.filteredAirlines = airlines;
|
this.filteredAirlines = airlines;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HashMap<Integer, Integer> getFilteredAirlines() {
|
public HashMap<Integer, String> getFilteredAirlines() {
|
||||||
return filteredAirlines;
|
return filteredAirlines;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ public class Session implements Serializable {
|
|||||||
this.filteredAirports = airports;
|
this.filteredAirports = airports;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HashMap<Integer, Integer> getFilteredAirports() {
|
public HashMap<Integer, String> getFilteredAirports() {
|
||||||
return filteredAirports;
|
return filteredAirports;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@ public class Session implements Serializable {
|
|||||||
this.filteredRoutes = routes;
|
this.filteredRoutes = routes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public HashMap<Integer, Integer> getFilteredRoutes() {
|
public HashMap<Integer, String> getFilteredRoutes() {
|
||||||
return filteredRoutes;
|
return filteredRoutes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import javafx.scene.input.KeyEvent;
|
|||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import seng202.group9.Controller.AirlineFilter;
|
import seng202.group9.Controller.AirlineFilter;
|
||||||
import seng202.group9.Controller.DataException;
|
|
||||||
import seng202.group9.Controller.Dataset;
|
import seng202.group9.Controller.Dataset;
|
||||||
import seng202.group9.Controller.Session;
|
import seng202.group9.Controller.Session;
|
||||||
import seng202.group9.Core.Airline;
|
import seng202.group9.Core.Airline;
|
||||||
@@ -130,14 +129,10 @@ public class AirlineFilterController extends Controller {
|
|||||||
|
|
||||||
//Creates a new hashmap for airlines and fills it with airlines that fit the criteria specified by the user.
|
//Creates a new hashmap for airlines and fills it with airlines that fit the criteria specified by the user.
|
||||||
//Saves it into the current session.
|
//Saves it into the current session.
|
||||||
HashMap<Integer, Integer> airlinesHM = new HashMap<Integer, Integer>();
|
HashMap<Integer, String> airlinesHM = new HashMap<Integer, String>();
|
||||||
ArrayList<Airline> airlines = filter.getFilteredData();
|
ArrayList<Airline> airlines = filter.getFilteredData();
|
||||||
for (int index = 0; index < airlines.size(); index++) {
|
for (int index = 0; index < airlines.size(); index++) {
|
||||||
try {
|
airlinesHM.put(index, airlines.get(index).getName());
|
||||||
airlinesHM.put(index, airlines.get(index).getID());
|
|
||||||
} catch (DataException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
currentSession.setFilteredAirlines(airlinesHM);
|
currentSession.setFilteredAirlines(airlinesHM);
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,21 @@
|
|||||||
package seng202.group9.GUI;
|
package seng202.group9.GUI;
|
||||||
|
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.scene.chart.BarChart;
|
||||||
|
import javafx.scene.chart.CategoryAxis;
|
||||||
|
import javafx.scene.chart.NumberAxis;
|
||||||
|
import javafx.scene.chart.XYChart;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.scene.layout.VBox;
|
import javafx.scene.layout.VBox;
|
||||||
import seng202.group9.Controller.Dataset;
|
import seng202.group9.Controller.Dataset;
|
||||||
import seng202.group9.Controller.SceneCode;
|
import seng202.group9.Controller.SceneCode;
|
||||||
import seng202.group9.Controller.Session;
|
import seng202.group9.Controller.Session;
|
||||||
|
import seng202.group9.Core.Airline;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
|
||||||
import static javafx.application.ConditionalFeature.FXML;
|
import static javafx.application.ConditionalFeature.FXML;
|
||||||
|
|
||||||
@@ -15,8 +25,15 @@ import static javafx.application.ConditionalFeature.FXML;
|
|||||||
public class AirlineGraphController extends Controller{
|
public class AirlineGraphController extends Controller{
|
||||||
private Dataset dataset;
|
private Dataset dataset;
|
||||||
private Session session;
|
private Session session;
|
||||||
|
private LinkedHashMap<String, Airline> airlineDict;
|
||||||
|
private HashMap<Integer, String> sessionDict;
|
||||||
|
Airline[] airlinesFiltered;
|
||||||
@FXML
|
@FXML
|
||||||
private VBox chartContainer;
|
private BarChart routeGraph;
|
||||||
|
@FXML
|
||||||
|
private NumberAxis routeYAxis;
|
||||||
|
@FXML
|
||||||
|
private CategoryAxis routeXAxis;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void load() {
|
public void load() {
|
||||||
@@ -24,7 +41,49 @@ public class AirlineGraphController extends Controller{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
dataset = getParent().getCurrentDataset();
|
dataset = getParent().getCurrentDataset();
|
||||||
|
airlineDict = dataset.getAirlineDictionary();
|
||||||
session = getParent().getSession();
|
session = getParent().getSession();
|
||||||
|
sessionDict = session.getFilteredAirlines();
|
||||||
|
ArrayList<Airline> airlinesArrayList = new ArrayList<>();
|
||||||
|
for (int key : sessionDict.keySet()) {
|
||||||
|
airlinesArrayList.add(airlineDict.get(sessionDict.get(key)));
|
||||||
|
|
||||||
|
}
|
||||||
|
airlinesFiltered = airlinesArrayList.toArray(new Airline[airlinesArrayList.size()]);
|
||||||
|
|
||||||
|
loadRoutesGraph();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadRoutesGraph(){
|
||||||
|
routeGraph.setTitle("Top 10 Number of Routes vs Airports");
|
||||||
|
routeXAxis.setLabel("Airports");
|
||||||
|
|
||||||
|
XYChart.Series<String,Integer> series = new XYChart.Series<>();
|
||||||
|
series.setName("Number of Routes");
|
||||||
|
ArrayList<Airline> airlines = new ArrayList<>();
|
||||||
|
airlines.addAll(Arrays.asList(airlinesFiltered));
|
||||||
|
Airline maxRoutes[] = new Airline[10];
|
||||||
|
System.out.println(airlines.size());
|
||||||
|
for (int i = 0 ; i < maxRoutes.length; i ++) {
|
||||||
|
int max = 0;
|
||||||
|
Airline maxAirline = null;
|
||||||
|
for (Airline airline: airlines){
|
||||||
|
if (airline != null) {
|
||||||
|
if (airline.getRoutes().size() > max) {
|
||||||
|
maxAirline = airline;
|
||||||
|
max = airline.getRoutes().size();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
maxRoutes[i] = maxAirline;
|
||||||
|
airlines.remove(maxAirline);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < maxRoutes.length; i++){
|
||||||
|
if (maxRoutes[i] != null) {
|
||||||
|
series.getData().add(new XYChart.Data<String, Integer>(maxRoutes[i].getName(), maxRoutes[i].getRoutes().size()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
routeGraph.getData().add(series);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void goToRawData(){
|
public void goToRawData(){
|
||||||
|
|||||||
@@ -85,14 +85,8 @@ public class AirlineRDController extends Controller {
|
|||||||
public void openFilter() {
|
public void openFilter() {
|
||||||
createPopUpStage(SceneCode.AIRLINE_FILTER, 600, 370);
|
createPopUpStage(SceneCode.AIRLINE_FILTER, 600, 370);
|
||||||
ArrayList<Airline> d = new ArrayList();
|
ArrayList<Airline> d = new ArrayList();
|
||||||
for (Airline airline : theDataSet.getAirlines()){
|
for (int key: currentSession.getFilteredAirlines().keySet()){
|
||||||
try {
|
d.add(theDataSet.getAirlineDictionary().get(currentSession.getFilteredAirlines().get(key)));
|
||||||
if (currentSession.getFilteredAirlines().containsValue(airline.getID())){
|
|
||||||
d.add(airline);
|
|
||||||
}
|
|
||||||
} catch (DataException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
tableViewAirlineRD.setItems(FXCollections.observableArrayList(d));
|
tableViewAirlineRD.setItems(FXCollections.observableArrayList(d));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import javafx.scene.input.KeyEvent;
|
|||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import seng202.group9.Controller.AirportFilter;
|
import seng202.group9.Controller.AirportFilter;
|
||||||
import seng202.group9.Controller.DataException;
|
|
||||||
import seng202.group9.Controller.Dataset;
|
import seng202.group9.Controller.Dataset;
|
||||||
import seng202.group9.Controller.Session;
|
import seng202.group9.Controller.Session;
|
||||||
import seng202.group9.Core.Airport;
|
import seng202.group9.Core.Airport;
|
||||||
@@ -118,14 +117,10 @@ public class AirportFilterController extends Controller {
|
|||||||
alert.setContentText("Your airport data has been successfully filtered.");
|
alert.setContentText("Your airport data has been successfully filtered.");
|
||||||
alert.showAndWait();
|
alert.showAndWait();
|
||||||
|
|
||||||
HashMap<Integer, Integer> airportsHM = new HashMap<Integer, Integer>();
|
HashMap<Integer, String> airportsHM = new HashMap<Integer, String>();
|
||||||
ArrayList<Airport> airports = filter.getFilteredData();
|
ArrayList<Airport> airports = filter.getFilteredData();
|
||||||
for (int index = 0; index < airports.size(); index++) {
|
for (int index = 0; index < airports.size(); index++) {
|
||||||
try {
|
airportsHM.put(index, airports.get(index).getName());
|
||||||
airportsHM.put(index, airports.get(index).getID());
|
|
||||||
} catch (DataException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
currentSession.setFilteredAirports(airportsHM);
|
currentSession.setFilteredAirports(airportsHM);
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import javafx.fxml.FXML;
|
|||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.control.cell.PropertyValueFactory;
|
import javafx.scene.control.cell.PropertyValueFactory;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import seng202.group9.Controller.DataException;
|
|
||||||
import seng202.group9.Controller.Dataset;
|
import seng202.group9.Controller.Dataset;
|
||||||
import seng202.group9.Controller.SceneCode;
|
import seng202.group9.Controller.SceneCode;
|
||||||
import seng202.group9.Controller.Session;
|
import seng202.group9.Controller.Session;
|
||||||
@@ -94,14 +93,8 @@ public class AirportRDController extends Controller{
|
|||||||
public void openFilter() {
|
public void openFilter() {
|
||||||
createPopUpStage(SceneCode.AIRPORT_FILTER, 600, 480);
|
createPopUpStage(SceneCode.AIRPORT_FILTER, 600, 480);
|
||||||
ArrayList<Airport> d = new ArrayList();
|
ArrayList<Airport> d = new ArrayList();
|
||||||
for (Airport airport: theDataSet.getAirports()){
|
for (int key: currentSession.getFilteredAirports().keySet()){
|
||||||
try {
|
d.add(theDataSet.getAirportDictionary().get(currentSession.getFilteredAirports().get(key)));
|
||||||
if (currentSession.getFilteredAirports().containsValue(airport.getID())) {
|
|
||||||
d.add(airport);
|
|
||||||
}
|
|
||||||
} catch (DataException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
tableViewAirportRD.setItems(FXCollections.observableArrayList(d));
|
tableViewAirportRD.setItems(FXCollections.observableArrayList(d));
|
||||||
}
|
}
|
||||||
@@ -138,9 +131,9 @@ public class AirportRDController extends Controller{
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Analyses the current data and creates a graph based on the data.
|
* Analyses the current data and creates a graph based on the data.
|
||||||
*
|
* @see PieGraphController
|
||||||
*/
|
*/
|
||||||
public void analyse_Button(){ replaceSceneContent(SceneCode.AIRPORT_GRAPHS);}
|
public void analyse_Button(){ replaceSceneContent(SceneCode.AIRPORT_ANALYSER);}
|
||||||
|
|
||||||
public void airportSummaryButton() {
|
public void airportSummaryButton() {
|
||||||
replaceSceneContent(SceneCode.AIRPORT_SUMMARY);
|
replaceSceneContent(SceneCode.AIRPORT_SUMMARY);
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import javafx.scene.input.KeyCode;
|
|||||||
import javafx.scene.input.KeyEvent;
|
import javafx.scene.input.KeyEvent;
|
||||||
import javafx.scene.layout.GridPane;
|
import javafx.scene.layout.GridPane;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import seng202.group9.Controller.DataException;
|
|
||||||
import seng202.group9.Controller.Dataset;
|
import seng202.group9.Controller.Dataset;
|
||||||
import seng202.group9.Controller.RouteFilter;
|
import seng202.group9.Controller.RouteFilter;
|
||||||
import seng202.group9.Controller.Session;
|
import seng202.group9.Controller.Session;
|
||||||
@@ -87,14 +86,13 @@ public class RouteFilterController extends Controller {
|
|||||||
alert.setContentText("Your route data has been successfully filtered.");
|
alert.setContentText("Your route data has been successfully filtered.");
|
||||||
alert.showAndWait();
|
alert.showAndWait();
|
||||||
|
|
||||||
HashMap<Integer, Integer> routesHM = new HashMap<Integer, Integer>();
|
//currentSession.setFilteredAirlines(FXCollections.observableArrayList(filter.getFilteredData()));
|
||||||
|
//routeAirline + routeSourceAirport + routeArrvAirport + routeCodeShare + routeStops + routeEquip
|
||||||
|
HashMap<Integer, String> routesHM = new HashMap<Integer, String>();
|
||||||
ArrayList<Route> routes = filter.getFilteredData();
|
ArrayList<Route> routes = filter.getFilteredData();
|
||||||
for (int index = 0; index < routes.size(); index++) {
|
for (int index = 0; index < routes.size(); index++) {
|
||||||
try {
|
routesHM.put(index, routes.get(index).getAirlineName() + routes.get(index).getDepartureAirport() + routes.get(index).getArrivalAirport()
|
||||||
routesHM.put(index, routes.get(index).getID());
|
+ routes.get(index).getCode() + routes.get(index).getStops() + routes.get(index).getEquipment());
|
||||||
} catch (DataException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
currentSession.setFilteredRoutes(routesHM);
|
currentSession.setFilteredRoutes(routesHM);
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import javafx.collections.ObservableList;
|
|||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.*;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.control.cell.PropertyValueFactory;
|
import javafx.scene.control.cell.PropertyValueFactory;
|
||||||
import seng202.group9.Controller.DataException;
|
|
||||||
import seng202.group9.Controller.Dataset;
|
import seng202.group9.Controller.Dataset;
|
||||||
import seng202.group9.Controller.SceneCode;
|
import seng202.group9.Controller.SceneCode;
|
||||||
import seng202.group9.Controller.Session;
|
import seng202.group9.Controller.Session;
|
||||||
@@ -83,14 +82,8 @@ public class RouteRDController extends Controller {
|
|||||||
createPopUpStage(SceneCode.ROUTE_FILTER, 600, 330);
|
createPopUpStage(SceneCode.ROUTE_FILTER, 600, 330);
|
||||||
|
|
||||||
ArrayList<Route> d = new ArrayList();
|
ArrayList<Route> d = new ArrayList();
|
||||||
for (Route route: theDataSet.getRoutes()){
|
for (int key: currentSession.getFilteredRoutes().keySet()){
|
||||||
try {
|
d.add(theDataSet.getRouteDictionary().get(currentSession.getFilteredRoutes().get(key)));
|
||||||
if (currentSession.getFilteredRoutes().containsValue(route.getID())) {
|
|
||||||
d.add(route);
|
|
||||||
}
|
|
||||||
} catch (DataException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
tableViewRouteRD.setItems(FXCollections.observableArrayList(d));
|
tableViewRouteRD.setItems(FXCollections.observableArrayList(d));
|
||||||
}
|
}
|
||||||
@@ -134,10 +127,10 @@ public class RouteRDController extends Controller {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Analyses the current data and creates a graph based on the data.
|
* Analyses the current data and creates a graph based on the data.
|
||||||
*
|
* @see BarGraphController
|
||||||
*/
|
*/
|
||||||
public void analyse_Button() {
|
public void analyse_Button() {
|
||||||
replaceSceneContent(SceneCode.ROUTE_GRAPHS);
|
replaceSceneContent(SceneCode.ROUTE_ANALYSER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void routeSummaryButton() {
|
public void routeSummaryButton() {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import javafx.scene.chart.*?>
|
||||||
<?import java.lang.*?>
|
<?import java.lang.*?>
|
||||||
<?import javafx.geometry.*?>
|
<?import javafx.geometry.*?>
|
||||||
<?import javafx.scene.control.*?>
|
<?import javafx.scene.control.*?>
|
||||||
@@ -35,15 +36,62 @@
|
|||||||
<Insets left="15.0" />
|
<Insets left="15.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</Text>
|
</Text>
|
||||||
|
<TabPane prefHeight="200.0" prefWidth="200.0" tabClosingPolicy="UNAVAILABLE" GridPane.rowIndex="1">
|
||||||
|
<tabs>
|
||||||
|
<Tab text="Route Graph">
|
||||||
|
<content>
|
||||||
|
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||||
|
<children>
|
||||||
|
<BarChart fx:id="routeGraph" layoutX="37.0" prefHeight="436.0" prefWidth="800.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<xAxis>
|
||||||
|
<CategoryAxis fx:id="routeXAxis" side="BOTTOM" />
|
||||||
|
</xAxis>
|
||||||
|
<yAxis>
|
||||||
|
<NumberAxis fx:id="routeYAxis" side="LEFT" />
|
||||||
|
</yAxis>
|
||||||
|
</BarChart>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</content>
|
||||||
|
</Tab>
|
||||||
|
<Tab text="Country Graph">
|
||||||
|
<content>
|
||||||
|
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||||
|
<children>
|
||||||
|
<BarChart fx:id="countryGraph" layoutX="156.0" layoutY="-10.0" prefHeight="436.0" prefWidth="800.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<xAxis>
|
||||||
|
<CategoryAxis side="BOTTOM" />
|
||||||
|
</xAxis>
|
||||||
|
<yAxis>
|
||||||
|
<NumberAxis side="LEFT" />
|
||||||
|
</yAxis>
|
||||||
|
</BarChart>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</content>
|
||||||
|
</Tab>
|
||||||
|
<Tab text="Equipment Graph">
|
||||||
|
<content>
|
||||||
|
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
|
||||||
|
<children>
|
||||||
|
<BarChart fx:id="equipGraph" layoutX="69.0" layoutY="8.0" prefHeight="436.0" prefWidth="800.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
|
||||||
|
<xAxis>
|
||||||
|
<CategoryAxis side="BOTTOM" />
|
||||||
|
</xAxis>
|
||||||
|
<yAxis>
|
||||||
|
<NumberAxis side="LEFT" />
|
||||||
|
</yAxis>
|
||||||
|
</BarChart>
|
||||||
|
</children>
|
||||||
|
</AnchorPane>
|
||||||
|
</content>
|
||||||
|
</Tab>
|
||||||
|
</tabs>
|
||||||
|
</TabPane>
|
||||||
<Button mnemonicParsing="false" onAction="#goToRawData" prefHeight="25.0" prefWidth="100.0" text="Change Data" GridPane.halignment="LEFT" GridPane.rowIndex="2" GridPane.valignment="TOP">
|
<Button mnemonicParsing="false" onAction="#goToRawData" prefHeight="25.0" prefWidth="100.0" text="Change Data" GridPane.halignment="LEFT" GridPane.rowIndex="2" GridPane.valignment="TOP">
|
||||||
<GridPane.margin>
|
<GridPane.margin>
|
||||||
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
<Insets bottom="15.0" left="15.0" right="15.0" top="15.0" />
|
||||||
</GridPane.margin>
|
</GridPane.margin>
|
||||||
</Button>
|
</Button>
|
||||||
<ScrollPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
|
|
||||||
<content>
|
|
||||||
<VBox fx:id="chartContainer" prefHeight="200.0" prefWidth="100.0" />
|
|
||||||
</content>
|
|
||||||
</ScrollPane>
|
|
||||||
</children>
|
</children>
|
||||||
</GridPane>
|
</GridPane>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import javafx.scene.chart.*?>
|
||||||
<?import java.lang.*?>
|
<?import java.lang.*?>
|
||||||
<?import javafx.geometry.*?>
|
<?import javafx.geometry.*?>
|
||||||
<?import javafx.scene.control.*?>
|
<?import javafx.scene.control.*?>
|
||||||
@@ -42,7 +43,7 @@
|
|||||||
</Button>
|
</Button>
|
||||||
<ScrollPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
|
<ScrollPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
|
||||||
<content>
|
<content>
|
||||||
<VBox fx:id="chartContainer" prefHeight="200.0" prefWidth="100.0" />
|
<VBox fx:id="chartContainer" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="463.0" prefWidth="798.0" />
|
||||||
</content>
|
</content>
|
||||||
</ScrollPane>
|
</ScrollPane>
|
||||||
</children>
|
</children>
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
</Button>
|
</Button>
|
||||||
<ScrollPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
|
<ScrollPane prefHeight="200.0" prefWidth="200.0" GridPane.rowIndex="1">
|
||||||
<content>
|
<content>
|
||||||
<VBox fx:id="chartContainer" prefHeight="200.0" prefWidth="100.0" />
|
<VBox fx:id="chartContainer" prefHeight="463.0" prefWidth="798.0" />
|
||||||
</content>
|
</content>
|
||||||
</ScrollPane>
|
</ScrollPane>
|
||||||
</children>
|
</children>
|
||||||
|
|||||||
Reference in New Issue
Block a user