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.
80 lines
2.9 KiB
80 lines
2.9 KiB
package seng202.group9.GUI;
|
|
|
|
import javafx.beans.Observable;
|
|
import javafx.beans.value.ChangeListener;
|
|
import javafx.beans.value.ObservableValue;
|
|
import javafx.collections.FXCollections;
|
|
import javafx.collections.ObservableList;
|
|
import javafx.fxml.FXML;
|
|
import javafx.scene.control.CheckBox;
|
|
import javafx.scene.control.ChoiceBox;
|
|
import javafx.scene.control.ListView;
|
|
import javafx.scene.control.SelectionMode;
|
|
import seng202.group9.Controller.SceneCode;
|
|
import seng202.group9.Controller.Session;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
/**
|
|
* Created by michael on 24/09/2016.
|
|
*/
|
|
public class BarChooserController extends Controller{
|
|
|
|
@FXML
|
|
ChoiceBox datatypechooser;
|
|
@FXML
|
|
ListView graph_against;
|
|
@FXML
|
|
ListView graph_options;
|
|
@FXML
|
|
CheckBox usefilter;
|
|
|
|
ObservableList airportOptions = FXCollections.observableArrayList("Name", "ICAO", "IATA FFA", "Altitude",
|
|
"City", "Country");
|
|
|
|
ObservableList airlineOptions = FXCollections.observableArrayList("ID", "Name", "ICAO", "IATA", "Alias",
|
|
"Call Sign", "Active", "Country");
|
|
|
|
ObservableList routeOptions = FXCollections.observableArrayList("ID", "Stops", "Codeshare", "Equipment", "Airline",
|
|
"Departure Airport", "Arival airport");
|
|
|
|
ArrayList<ObservableList> allOptions = new ArrayList<ObservableList>();
|
|
|
|
public void buildGraph() {
|
|
Session currentsession = this.getParent().getSession();
|
|
currentsession.setSelectedgraphagainst(graph_options.getSelectionModel().getSelectedItem().toString());
|
|
currentsession.setUsefilter(usefilter.isSelected());
|
|
currentsession.setForceGraph(Boolean.FALSE);
|
|
replaceSceneContent(SceneCode.ROUTE_ANALYSER);
|
|
}
|
|
|
|
public void returnToSelection(){replaceSceneContent(SceneCode.PIE_GRAPH_CHOOSER);}
|
|
|
|
public void changeTables(){
|
|
int temp = datatypechooser.getSelectionModel().getSelectedIndex();
|
|
graph_against.setItems(allOptions.get(temp));
|
|
graph_options.setItems(allOptions.get(temp));
|
|
}
|
|
|
|
public void load(){
|
|
if (!checkDataset()){
|
|
return;
|
|
}
|
|
datatypechooser.setItems(FXCollections.observableArrayList("Airports","Airlines","Routes"));
|
|
datatypechooser.getSelectionModel().selectFirst();
|
|
datatypechooser.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
|
|
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
|
|
changeTables();
|
|
}
|
|
});
|
|
graph_against.setItems(airportOptions);
|
|
graph_against.getSelectionModel().selectFirst();
|
|
graph_options.setItems(airportOptions);
|
|
graph_options.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
|
|
graph_options.getSelectionModel().selectFirst();
|
|
allOptions.add(airportOptions);
|
|
allOptions.add(airlineOptions);
|
|
allOptions.add(routeOptions);
|
|
}
|
|
}
|