diff --git a/src/main/java/seng202/group9/Controller/AirlineParser.java b/src/main/java/seng202/group9/Controller/AirlineParser.java index 9f2b8a0..4a354b9 100644 --- a/src/main/java/seng202/group9/Controller/AirlineParser.java +++ b/src/main/java/seng202/group9/Controller/AirlineParser.java @@ -1,5 +1,7 @@ package seng202.group9.Controller; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import seng202.group9.Core.Airline; import java.io.*; diff --git a/src/main/java/seng202/group9/Controller/AirportParser.java b/src/main/java/seng202/group9/Controller/AirportParser.java index 3598adf..04c1b15 100644 --- a/src/main/java/seng202/group9/Controller/AirportParser.java +++ b/src/main/java/seng202/group9/Controller/AirportParser.java @@ -1,10 +1,14 @@ package seng202.group9.Controller; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import seng202.group9.Core.Airport; import seng202.group9.Core.City; import seng202.group9.Core.Country; +import javax.jws.Oneway; import java.io.*; +import java.lang.reflect.Array; import java.util.ArrayList; public class AirportParser extends Parser { diff --git a/src/main/java/seng202/group9/Controller/App.java b/src/main/java/seng202/group9/Controller/App.java index 94ca7b5..bfc2abf 100644 --- a/src/main/java/seng202/group9/Controller/App.java +++ b/src/main/java/seng202/group9/Controller/App.java @@ -54,11 +54,15 @@ public class App extends Application e.printStackTrace(); } primaryStage.show(); + //testing out dataset try { currentDataset = new Dataset("test's", Dataset.getExisting); }catch (DataException e){ e.printStackTrace(); + + }/* + } //testout single airport adding try { @@ -74,6 +78,7 @@ public class App extends Application e.printStackTrace(); } + //testing out airport parser try { System.out.println(currentDataset.importAirport("res/Samples/Airports.txt")); diff --git a/src/main/java/seng202/group9/Controller/Dataset.java b/src/main/java/seng202/group9/Controller/Dataset.java index 0072e78..3db650e 100644 --- a/src/main/java/seng202/group9/Controller/Dataset.java +++ b/src/main/java/seng202/group9/Controller/Dataset.java @@ -1,6 +1,8 @@ package seng202.group9.Controller; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import seng202.group9.Core.*; import java.sql.Connection; @@ -13,7 +15,7 @@ import java.util.LinkedHashMap; public class Dataset { String name; - static boolean getExisting = true;//constructor variables for action + public static boolean getExisting = true;//constructor variables for action static boolean createNew = false;//constructor variables for action ArrayList airlines; ArrayList airports; diff --git a/src/main/java/seng202/group9/Core/Airport.java b/src/main/java/seng202/group9/Core/Airport.java index 8283933..7106916 100644 --- a/src/main/java/seng202/group9/Core/Airport.java +++ b/src/main/java/seng202/group9/Core/Airport.java @@ -195,9 +195,9 @@ public class Airport { * gets the IATA/FFA of the airport * @return IATA/FFA Code */ - public String IATA_FFA(){ - return IATA_FFA; - } +// public String IATA_FFA(){ +// return IATA_FFA; +// } /** * gets the altitude of the airport * @return Altitude of Airport @@ -318,6 +318,7 @@ public class Airport { /** * Information of the airport returned in String format. */ + @Override public String toString(){ return this.city+" Airport has ICAO: "+this.ICAO+", IATA/FFA: "+this.IATA_FFA+" and is located at ("+this.latitude+", "+this.longitude diff --git a/src/main/java/seng202/group9/GUI/AirlineRDController.java b/src/main/java/seng202/group9/GUI/AirlineRDController.java new file mode 100644 index 0000000..84a3913 --- /dev/null +++ b/src/main/java/seng202/group9/GUI/AirlineRDController.java @@ -0,0 +1,102 @@ +package seng202.group9.GUI; + +import javafx.collections.FXCollections; +import javafx.fxml.FXML; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.TextField; +import javafx.scene.control.cell.PropertyValueFactory; +import seng202.group9.Controller.App; +import seng202.group9.Controller.Dataset; +import seng202.group9.Core.Airline; + +/** + * Created by Sunguin on 2016/09/13. + */ +public class AirlineRDController extends MenuController { + + @FXML + private TableView tableView; + @FXML + private TableColumn airlIDcol; + @FXML + private TableColumn airlNamecol; + @FXML + private TableColumn airlAliascol; + @FXML + private TableColumn airlIATAcol; + @FXML + private TableColumn airlICAOcol; + @FXML + private TableColumn airlCallsigncol; + @FXML + private TableColumn airlCountrycol; + @FXML + private TableColumn airlActivecol; + @FXML + private TextField airlNameBox; + @FXML + private TextField airlAliasBox; + @FXML + private TextField airlIATABox; + @FXML + private TextField airlICAOBox; + @FXML + private TextField airlCallsignBox; + @FXML + private TextField airlCountryBox; + @FXML + private TextField airlActiveBox; + @FXML + private TextField airlIDBox; + + + private Dataset theDataSet = null; + + App parent; + + public void setApp(App parent){ + this.parent = parent; + } + + public void loadTables() { + airlIDcol.setCellValueFactory(new PropertyValueFactory("ID")); + airlNamecol.setCellValueFactory(new PropertyValueFactory("Name")); + airlAliascol.setCellValueFactory(new PropertyValueFactory("Alias")); + airlIATAcol.setCellValueFactory(new PropertyValueFactory("IATA")); + airlICAOcol.setCellValueFactory(new PropertyValueFactory("ICAO")); + airlCallsigncol.setCellValueFactory(new PropertyValueFactory("CallSign")); + airlCountrycol.setCellValueFactory(new PropertyValueFactory("Country")); + airlActivecol.setCellValueFactory(new PropertyValueFactory("Active")); + + theDataSet = this.parent.getCurrentDataset(); +// try{ +// System.out.println(theDataSet.importAirline("res/Samples/Airlines.txt")); +// } catch (DataException e){ +// e.printStackTrace(); +// } + tableView.setItems(FXCollections.observableArrayList(theDataSet.getAirlines())); + } + + //Dummy function to test the add button. + //Will edit when ID is added automatically. + public void addAirlineSingle() { + theDataSet.getAirlines().add(new Airline( + Integer.parseInt(airlIDBox.getText()), + airlNameBox.getText(), + airlAliasBox.getText(), + airlIATABox.getText(), + airlICAOBox.getText(), + airlCallsignBox.getText(), + airlCountryBox.getText(), + airlActiveBox.getText())); + airlIDBox.clear(); + airlNameBox.clear(); + airlAliasBox.clear(); + airlIATABox.clear(); + airlICAOBox.clear(); + airlCallsignBox.clear(); + airlCountryBox.clear(); + airlActiveBox.clear(); + } +} diff --git a/src/main/java/seng202/group9/GUI/AirportRDController.java b/src/main/java/seng202/group9/GUI/AirportRDController.java new file mode 100644 index 0000000..d65768e --- /dev/null +++ b/src/main/java/seng202/group9/GUI/AirportRDController.java @@ -0,0 +1,98 @@ +package seng202.group9.GUI; + +import javafx.beans.InvalidationListener; +import javafx.collections.FXCollections; +import javafx.collections.ListChangeListener; +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.scene.control.Label; +import javafx.scene.control.TableCell; +import javafx.scene.control.TableColumn; +import javafx.scene.control.TableView; +import javafx.scene.control.cell.PropertyValueFactory; +import javafx.util.Callback; +import seng202.group9.Controller.App; +import seng202.group9.Controller.Dataset; +import seng202.group9.Core.Airport; +import seng202.group9.Core.City; +import seng202.group9.Core.Country; + + +/** + * Created by Sunguin on 2016/09/13. + */ +public class AirportRDController extends MenuController{ + + @FXML + private TableView tableViewAirportRD; + @FXML + private TableColumn airpIDcol; + @FXML + private TableColumn airpNamecol; + @FXML + private TableColumn airpCitycol; + @FXML + private TableColumn airpCountrycol; + @FXML + private TableColumn airpIATAFFAcol; + @FXML + private TableColumn airpICAOcol; + @FXML + private TableColumn airpLatitudecol; + @FXML + private TableColumn airpLongitudecol; + @FXML + private TableColumn airpAltitudecol; + @FXML + private TableColumn airpTimezonecol; + @FXML + private TableColumn airpDSTcol; + @FXML + private TableColumn airpTzcol; + + private Dataset theDataSet = null; + + App parent; + + public void setApp(App parent){ + this.parent = parent; + } + + public void loadTables() { + theDataSet = this.parent.getCurrentDataset(); + + airpIDcol.setCellValueFactory(new PropertyValueFactory("ID")); + airpNamecol.setCellValueFactory(new PropertyValueFactory("Name")); + airpCitycol.setCellValueFactory(new PropertyValueFactory("City")); + airpCountrycol.setCellValueFactory(new PropertyValueFactory("Country")); + airpIATAFFAcol.setCellValueFactory(new PropertyValueFactory("IATA_FFA")); + airpICAOcol.setCellValueFactory(new PropertyValueFactory("ICAO")); + airpLatitudecol.setCellValueFactory(new PropertyValueFactory("Latitude")); + airpLongitudecol.setCellValueFactory(new PropertyValueFactory("Longitude")); + airpAltitudecol.setCellValueFactory(new PropertyValueFactory("Altitude")); + airpTimezonecol.setCellValueFactory(new PropertyValueFactory("Timezone")); + airpDSTcol.setCellValueFactory(new PropertyValueFactory("DST")); + airpTzcol.setCellValueFactory(new PropertyValueFactory("Tz")); + +// airpTimezonecol.setCellFactory(new Callback, TableCell>() { +// +// @Override +// public TableCell call(TableColumn param) { +// TableCell timeZoneCell = new TableCell() { +// @Override +// protected void updateItem(City timezone, boolean empty) { +// if (timezone != null) { +// Label timeZoneLabel = new Label(timezone.getTimeOlson()); +// setGraphic(timeZoneLabel); +// } +// } +// }; +// +// return timeZoneCell; +// } +// }); + + tableViewAirportRD.setItems(FXCollections.observableArrayList(theDataSet.getAirports())); + } + +} diff --git a/src/main/java/seng202/group9/GUI/MenuController.java b/src/main/java/seng202/group9/GUI/MenuController.java index e03297b..f947e9f 100644 --- a/src/main/java/seng202/group9/GUI/MenuController.java +++ b/src/main/java/seng202/group9/GUI/MenuController.java @@ -37,8 +37,29 @@ public class MenuController implements Initializable{ */ public void viewAirlineRawData() { try { - parent.replaceSceneContent("menu.fxml"); - System.out.println("Loaded Airline Raw Data."); + AirlineRDController summaryController = (AirlineRDController) parent.replaceSceneContent("airline_raw_data.fxml"); + summaryController.setApp(parent); + summaryController.loadTables(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void viewAirportRawData() { + try { + AirportRDController summaryController = (AirportRDController) parent.replaceSceneContent("airport_raw_data.fxml"); + summaryController.setApp(parent); + summaryController.loadTables(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public void viewRouteRawData() { + try { + RouteRDController summaryController = (RouteRDController) parent.replaceSceneContent("route_raw_data.fxml"); + summaryController.setApp(parent); + //summaryController.loadTables(); } catch (Exception e) { e.printStackTrace(); } @@ -74,6 +95,7 @@ public class MenuController implements Initializable{ } + public void initialize(URL arg0, ResourceBundle arg1) { // TODO Auto-generated method stub diff --git a/src/main/java/seng202/group9/GUI/RouteRDController.java b/src/main/java/seng202/group9/GUI/RouteRDController.java new file mode 100644 index 0000000..1475062 --- /dev/null +++ b/src/main/java/seng202/group9/GUI/RouteRDController.java @@ -0,0 +1,14 @@ +package seng202.group9.GUI; + +import seng202.group9.Controller.App; + +/** + * Created by Sunguin on 2016/09/14. + */ +public class RouteRDController extends MenuController { + App parent; + + public void setApp(App parent){ + this.parent = parent; + } +} diff --git a/src/main/resources/airline_raw_data.fxml b/src/main/resources/airline_raw_data.fxml index a3937a7..7a259b3 100644 --- a/src/main/resources/airline_raw_data.fxml +++ b/src/main/resources/airline_raw_data.fxml @@ -1,127 +1,102 @@ - - - - - - + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - +