Added filter function to the Airline GUI

main
Sunguin Peng 9 years ago
parent 30f7b2d842
commit 1feb1c9153

Binary file not shown.

@ -4,6 +4,7 @@ import javafx.collections.FXCollections;
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.AirlineFilter;
import seng202.group9.Controller.Dataset; import seng202.group9.Controller.Dataset;
import seng202.group9.Core.Airline; import seng202.group9.Core.Airline;
@ -46,7 +47,20 @@ public class AirlineRDController extends Controller {
@FXML @FXML
private ComboBox<String> airlActiveCBox; private ComboBox<String> airlActiveCBox;
@FXML
private TextField airlNameFilter;
@FXML
private TextField airlAliasFilter;
@FXML
private TextField airlIATAFilter;
@FXML
private TextField airlICAOFilter;
@FXML
private TextField airlCallsignFilter;
@FXML
private TextField airlCountryFilter;
@FXML
private TextField airlActiveFilter;
private Dataset theDataSet = null; private Dataset theDataSet = null;
@ -83,7 +97,6 @@ public class AirlineRDController extends Controller {
airlIDcol.setCellValueFactory(new PropertyValueFactory<Airline, String>("ID")); airlIDcol.setCellValueFactory(new PropertyValueFactory<Airline, String>("ID"));
airlNamecol.setCellValueFactory(new PropertyValueFactory<Airline, String>("Name")); airlNamecol.setCellValueFactory(new PropertyValueFactory<Airline, String>("Name"));
airlAliascol.setCellValueFactory(new PropertyValueFactory<Airline, String>("Alias")); airlAliascol.setCellValueFactory(new PropertyValueFactory<Airline, String>("Alias"));
//Need to check IATA and ICAO
airlIATAcol.setCellValueFactory(new PropertyValueFactory<Airline, String>("IATA")); airlIATAcol.setCellValueFactory(new PropertyValueFactory<Airline, String>("IATA"));
airlICAOcol.setCellValueFactory(new PropertyValueFactory<Airline, String>("ICAO")); airlICAOcol.setCellValueFactory(new PropertyValueFactory<Airline, String>("ICAO"));
airlCallsigncol.setCellValueFactory(new PropertyValueFactory<Airline, String>("CallSign")); airlCallsigncol.setCellValueFactory(new PropertyValueFactory<Airline, String>("CallSign"));
@ -102,4 +115,30 @@ public class AirlineRDController extends Controller {
theDataSet.deleteAirline(toDelete); theDataSet.deleteAirline(toDelete);
tableViewAirlineRD.setItems(FXCollections.observableArrayList(theDataSet.getAirlines())); tableViewAirlineRD.setItems(FXCollections.observableArrayList(theDataSet.getAirlines()));
} }
public void filterAirlines() {
AirlineFilter filter = new AirlineFilter(theDataSet.getAirlines());
if (airlNameFilter.getText() != null) {
filter.filterName(airlNameFilter.getText());
}
if (airlAliasFilter.getText() != null) {
filter.filterAlias(airlAliasFilter.getText());
}
if (airlIATAFilter.getText() != null) {
filter.filterIATA(airlIATAFilter.getText());
}
if (airlICAOFilter.getText() != null) {
filter.filterICAO(airlICAOFilter.getText());
}
if (airlCallsignFilter.getText() != null) {
filter.filterCallsign(airlCallsignFilter.getText());
}
if (airlCountryFilter.getText() != null) {
filter.filterCountry(airlCountryFilter.getText());
}
if (airlActiveFilter.getText() != null) {
filter.filterActive(airlActiveFilter.getText());
}
tableViewAirlineRD.setItems(FXCollections.<Airline>observableArrayList(filter.getFilteredData()));
}
} }

@ -147,6 +147,6 @@ public class RouteRDController extends Controller {
} }
// System.out.println("Hello"); // System.out.println("Hello");
// filter.printFilter(); // filter.printFilter();
tableViewRouteRD.setItems(FXCollections.observableArrayList(filter.getFilteredData())); tableViewRouteRD.setItems(FXCollections.<Route>observableArrayList(filter.getFilteredData()));
} }
} }

@ -6,6 +6,7 @@
<?import javafx.scene.control.ContextMenu?> <?import javafx.scene.control.ContextMenu?>
<?import javafx.scene.control.Label?> <?import javafx.scene.control.Label?>
<?import javafx.scene.control.MenuItem?> <?import javafx.scene.control.MenuItem?>
<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.control.TableColumn?> <?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?> <?import javafx.scene.control.TableView?>
<?import javafx.scene.control.TextField?> <?import javafx.scene.control.TextField?>
@ -34,9 +35,9 @@
</Label> </Label>
<Button layoutX="14.0" layoutY="526.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="125.0" text="Analyse" /> <Button layoutX="14.0" layoutY="526.0" mnemonicParsing="false" prefHeight="25.0" prefWidth="125.0" text="Analyse" />
<Button layoutX="654.0" layoutY="526.0" mnemonicParsing="false" onAction="#addAirlineSingle" prefHeight="25.0" prefWidth="125.0" text="Add" /> <Button layoutX="654.0" layoutY="526.0" mnemonicParsing="false" onAction="#addAirlineSingle" prefHeight="25.0" prefWidth="125.0" text="Add" />
<Pane layoutX="14.0" layoutY="57.0" prefHeight="403.0" prefWidth="765.0"> <Pane layoutX="14.0" layoutY="57.0" prefHeight="340.0" prefWidth="765.0">
<children> <children>
<TableView fx:id="tableViewAirlineRD" layoutX="1.0" prefHeight="403.0" prefWidth="765.0"> <TableView fx:id="tableViewAirlineRD" layoutX="1.0" prefHeight="340.0" prefWidth="765.0">
<columns> <columns>
<TableColumn fx:id="airlIDcol" prefWidth="83.0" text="Airline ID" /> <TableColumn fx:id="airlIDcol" prefWidth="83.0" text="Airline ID" />
<TableColumn fx:id="airlNamecol" prefWidth="450.0" text="Name" /> <TableColumn fx:id="airlNamecol" prefWidth="450.0" text="Name" />
@ -57,42 +58,91 @@
</TableView> </TableView>
</children> </children>
</Pane> </Pane>
<Pane layoutX="14.0" layoutY="483.0" prefHeight="31.0" prefWidth="765.0"> <ScrollPane layoutX="14.0" layoutY="467.0" prefHeight="56.0" prefWidth="765.0">
<children> <content>
<TextField fx:id="airlNameBox" layoutX="97.0" layoutY="-1.0" prefHeight="31.0" prefWidth="137.0" promptText="Name"> <Pane prefHeight="37.0" prefWidth="1436.0">
<padding> <children>
<Insets left="2.0" right="2.0" /> <TextField fx:id="airlNameBox" layoutX="97.0" layoutY="3.0" prefHeight="31.0" prefWidth="450.0" promptText="Name">
</padding> <padding>
</TextField> <Insets left="2.0" right="2.0" />
<TextField fx:id="airlAliasBox" layoutX="234.0" layoutY="-1.0" prefHeight="31.0" prefWidth="69.0" promptText="Alias"> </padding>
<padding> </TextField>
<Insets left="2.0" right="2.0" /> <TextField fx:id="airlAliasBox" layoutX="547.0" layoutY="3.0" prefHeight="31.0" prefWidth="56.0" promptText="Alias">
</padding> <padding>
</TextField> <Insets left="2.0" right="2.0" />
<TextField fx:id="airlIATABox" layoutX="303.0" layoutY="-1.0" prefHeight="31.0" prefWidth="69.0" promptText="IATA"> </padding>
<padding> </TextField>
<Insets left="2.0" right="2.0" /> <TextField fx:id="airlIATABox" layoutX="603.0" layoutY="3.0" prefHeight="31.0" prefWidth="59.0" promptText="IATA">
</padding> <padding>
</TextField> <Insets left="2.0" right="2.0" />
<TextField fx:id="airlICAOBox" layoutX="372.0" layoutY="-1.0" prefHeight="31.0" prefWidth="69.0" promptText="ICAO"> </padding>
<padding> </TextField>
<Insets left="2.0" right="2.0" /> <TextField fx:id="airlICAOBox" layoutX="662.0" layoutY="3.0" prefHeight="31.0" prefWidth="68.0" promptText="ICAO">
</padding> <padding>
</TextField> <Insets left="2.0" right="2.0" />
<TextField fx:id="airlCallsignBox" layoutX="441.0" layoutY="-1.0" prefHeight="31.0" prefWidth="84.0" promptText="Callsign"> </padding>
<padding> </TextField>
<Insets left="2.0" right="2.0" /> <TextField fx:id="airlCallsignBox" layoutX="730.0" layoutY="3.0" prefHeight="31.0" prefWidth="400.0" promptText="Callsign">
</padding> <padding>
</TextField> <Insets left="2.0" right="2.0" />
<TextField fx:id="airlCountryBox" layoutX="525.0" layoutY="-1.0" prefHeight="31.0" prefWidth="137.0" promptText="Country"> </padding>
<padding> </TextField>
<Insets left="2.0" right="2.0" /> <TextField fx:id="airlCountryBox" layoutX="1130.0" layoutY="3.0" prefHeight="31.0" prefWidth="200.0" promptText="Country">
</padding> <padding>
</TextField> <Insets left="2.0" right="2.0" />
<Label layoutY="2.0" prefHeight="25.0" prefWidth="93.0" text="Enter Values:" /> </padding>
<ComboBox fx:id="airlActiveCBox" layoutX="662.0" layoutY="-1.0" prefHeight="31.0" prefWidth="102.0" promptText="Active" /> </TextField>
</children> <Label layoutX="14.0" layoutY="6.0" prefHeight="25.0" prefWidth="84.0" text="Add Airline:" />
</Pane> <ComboBox fx:id="airlActiveCBox" layoutX="1330.0" layoutY="-1.0" prefHeight="31.0" prefWidth="102.0" promptText="Active" />
</children>
</Pane>
</content>
</ScrollPane>
<ScrollPane layoutX="14.0" layoutY="406.0" prefHeight="56.0" prefWidth="713.0">
<content>
<Pane prefHeight="37.0" prefWidth="1315.0">
<children>
<TextField fx:id="airlNameFilter" layoutX="57.0" layoutY="3.0" prefHeight="31.0" prefWidth="400.0" promptText="Name">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="airlAliasFilter" layoutX="457.0" layoutY="3.0" prefHeight="31.0" prefWidth="56.0" promptText="Alias">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="airlIATAFilter" layoutX="513.0" layoutY="3.0" prefHeight="31.0" prefWidth="59.0" promptText="IATA">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="airlICAOFilter" layoutX="572.0" layoutY="3.0" prefHeight="31.0" prefWidth="68.0" promptText="ICAO">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="airlCallsignFilter" layoutX="640.0" layoutY="3.0" prefHeight="31.0" prefWidth="400.0" promptText="Callsign">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<TextField fx:id="airlCountryFilter" layoutX="1040.0" layoutY="3.0" prefHeight="31.0" prefWidth="200.0" promptText="Country">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
<Label layoutX="10.0" layoutY="6.0" prefHeight="25.0" prefWidth="47.0" text="Filter :" />
<TextField fx:id="airlActiveFilter" layoutX="1240.0" layoutY="3.0" prefHeight="31.0" prefWidth="66.0" promptText="Active">
<padding>
<Insets left="2.0" right="2.0" />
</padding>
</TextField>
</children>
</Pane>
</content>
</ScrollPane>
<Button layoutX="733.0" layoutY="416.0" mnemonicParsing="false" onAction="#filterAirlines" prefHeight="31.0" prefWidth="40.0" text="Go" />
</children> </children>
</Pane> </Pane>
</children> </children>

Loading…
Cancel
Save