From d69de8bd37eeaa7e3e5e45173769337500910a20 Mon Sep 17 00:00:00 2001 From: BoranJia <3580046015@qq.com> Date: Sat, 7 May 2022 22:39:27 +0800 Subject: [PATCH 01/39] 5.7 --- .../com/app/flight/data/csv/Passenger.csv | 1 + .../app/flight/data/json/boardingPass.json | 28 ++++++------- src/test/java/utilTest/CsvTest.java | 40 +++++++++++++++++-- .../validatorTest/FlightIdValidatorTest.java | 24 +++++++++-- 4 files changed, 71 insertions(+), 22 deletions(-) diff --git a/src/main/resources/com/app/flight/data/csv/Passenger.csv b/src/main/resources/com/app/flight/data/csv/Passenger.csv index 1baed42..efaf8b6 100644 --- a/src/main/resources/com/app/flight/data/csv/Passenger.csv +++ b/src/main/resources/com/app/flight/data/csv/Passenger.csv @@ -13,3 +13,4 @@ passengerId ,firstName,lastName,age,telephone 203993199708190934,Lei ,Sui ,26 ,15880234599 203993199810240934,Nana ,Mi ,22 ,15980234395 403912199804045593,He ,Student ,23 ,18309038855 +210122196110070924,p1,test,22,13104368848 diff --git a/src/main/resources/com/app/flight/data/json/boardingPass.json b/src/main/resources/com/app/flight/data/json/boardingPass.json index 7e33050..6f00a23 100644 --- a/src/main/resources/com/app/flight/data/json/boardingPass.json +++ b/src/main/resources/com/app/flight/data/json/boardingPass.json @@ -6,18 +6,18 @@ "age": 22, "telephone": "13104368848" }, - "flight": { - "flightId": "MH8633", - "departure": "Beijing", - "destination": "Hainan", - "boardingGate": "B8", - "boardingTime": "2022-09-11T07:05:00", - "departureTime": "2022-05-11T09:55:00", - "arrivalTime": "2022-05-11T12:55:00" - }, - "seatNo": "7D", - "food": { - "foodName": "HALAL", - "foodPrice": 50.0 - } + "flight": { + "flightId": "MH8633", + "departure": "Beijing", + "destination": "Hainan", + "boardingGate": "B8", + "boardingTime": "2022-09-11T07:05:00", + "departureTime": "2022-05-11T09:55:00", + "arrivalTime": "2022-05-11T12:55:00" + }, + "seatNo": "7D", + "food": { + "foodName": "HALAL", + "foodPrice": 50.0 + } } \ No newline at end of file diff --git a/src/test/java/utilTest/CsvTest.java b/src/test/java/utilTest/CsvTest.java index ed6d800..5f3237f 100644 --- a/src/test/java/utilTest/CsvTest.java +++ b/src/test/java/utilTest/CsvTest.java @@ -11,20 +11,26 @@ import java.time.LocalDateTime; +import static org.junit.jupiter.api.Assertions.assertEquals; + public class CsvTest { Passenger passenger; Flight flight; Reservation reservation; + /** + * Test for adding data to csv + */ @Test - public void csvTest() { + public void addCsvTest() { passenger = new Passenger(); - passenger.setPassengerId("220802200005217777"); - passenger.setFirstName("NonStringTest"); - passenger.setLastName("Jun"); + passenger.setPassengerId("210122196110070924"); + passenger.setFirstName("p1"); + passenger.setLastName("test"); passenger.setTelephone("13104368848"); passenger.setAge(22); Csv.addCsv(passenger, Csv.PASSENGER_CSV_PATH, true); + assertEquals(passenger, ); flight = new Flight(); flight.setFlightId("MH1234"); @@ -35,6 +41,7 @@ public void csvTest() { flight.setDepartureTime(LocalDateTime.of(2022, 5, 25, 11, 55)); flight.setArrivalTime(LocalDateTime.of(2022, 5, 25, 14, 55)); Csv.addCsv(flight, Csv.FLIGHT_CSV_PATH, false); + assertEquals(flight, Csv.addCsv(flight, Csv.FLIGHT_CSV_PATH, false)); Snowflake snowflake = IdUtil.getSnowflake(1, 1); String id = snowflake.nextIdStr(); @@ -47,6 +54,31 @@ public void csvTest() { reservation.setSeatLevel(Reservation.seatClass.FIRST_CLASS); reservation.setFlight(flight); Csv.addCsv(reservation, Csv.RESERVATION_CSV_PATH, true); + assertEquals(reservation, Csv.addCsv(reservation, Csv.RESERVATION_CSV_PATH, true)); + } + + /** + * Test for reading csv data + */ + @Test + public void readCsvTest() { + + } + + /** + * Test for updating csv + */ + @Test + public void updateCsvTest() { + + } + + /** + * Test for deleting csv + */ + @Test + public void deleteCsvTest() { + } @Test diff --git a/src/test/java/validatorTest/FlightIdValidatorTest.java b/src/test/java/validatorTest/FlightIdValidatorTest.java index c9a176d..6303e9c 100644 --- a/src/test/java/validatorTest/FlightIdValidatorTest.java +++ b/src/test/java/validatorTest/FlightIdValidatorTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.Test; import static com.app.flight.util.Validator.flightIdValidator; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; /** @@ -10,12 +11,27 @@ * @date 2022.5.5 */ public class FlightIdValidatorTest { - Flight flight; @Test public void testFlightId() { - flight = new Flight(); - flight.setFlightId("MU1121"); - assertTrue(flightIdValidator(flight.getFlightId())); + Flight flight1 = new Flight(); + flight1.setFlightId("MU1121");//correct version + assertTrue(flightIdValidator(flight1.getFlightId())); + + Flight flight2 = new Flight(); + flight2.setFlightId("Aa1236");// First two digits contain not all uppercase + assertFalse(flightIdValidator(flight2.getFlightId())); + + Flight flight3 = new Flight(); + flight3.setFlightId("AS12aa");//last four digits contain not all digits + assertFalse(flightIdValidator(flight3.getFlightId())); + + Flight flight4 = new Flight(); + flight4.setFlightId("AW111");//less than 6 digits + assertFalse(flightIdValidator(flight4.getFlightId())); + + Flight flight5 = new Flight(); + flight5.setFlightId("AS12365");// more than 6 digits + assertFalse(flightIdValidator(flight5.getFlightId())); } } From ba89a83dcf9829d7c731289e93629bddb64369c2 Mon Sep 17 00:00:00 2001 From: MASON <1282676427@qq.com> Date: Wed, 11 May 2022 11:06:40 +0800 Subject: [PATCH 02/39] 5.11 --- src/main/java/com/app/flight/entity/Seat.java | 2 +- .../app/flight/service/external/Printer.java | 4 -- src/main/java/com/app/flight/util/Json.java | 2 +- .../com/app/flight/data/csv/BoardingPass.csv | 2 + .../data/csv/flightSeat/MH1234_2022-05-25.csv | 2 +- .../data/csv/flightSeat/MH8633_2022-05-11.csv | 4 +- .../com/app/flight/data/json/Flight.json | 12 ++--- .../com/app/flight/data/json/Food.json | 4 +- .../com/app/flight/data/json/Reservation.json | 46 +++++++++---------- .../com/app/flight/data/json/Seat.json | 6 +-- .../app/flight/data/json/boardingPass.json | 28 +++++------ .../app/flight/data/printer/BoardingPass.txt | 12 ++--- .../com/app/flight/data/printer/Tag.txt | 11 +---- 13 files changed, 62 insertions(+), 73 deletions(-) diff --git a/src/main/java/com/app/flight/entity/Seat.java b/src/main/java/com/app/flight/entity/Seat.java index 3b2c8ca..04efb0a 100644 --- a/src/main/java/com/app/flight/entity/Seat.java +++ b/src/main/java/com/app/flight/entity/Seat.java @@ -4,7 +4,7 @@ public enum Seat { /** * Three types of aircraft accommodation */ - ECONOMY_CLASS(100, 10), BUSINESS_CLASS(200, 5), FIRST_CLASS(400, 5); + ECONOMY_CLASS(100, 15), BUSINESS_CLASS(200, 3), FIRST_CLASS(400, 2); private int price; private int row; diff --git a/src/main/java/com/app/flight/service/external/Printer.java b/src/main/java/com/app/flight/service/external/Printer.java index df2d2e2..d4b5460 100644 --- a/src/main/java/com/app/flight/service/external/Printer.java +++ b/src/main/java/com/app/flight/service/external/Printer.java @@ -144,10 +144,6 @@ public static void printTag(String jsonFilePath, String tagFilePath) { } } -// public static void main(String[] args) { -// printTag(Json.BOARDING_PASS_JSON_PATH, TAG_TXT_PATH); -// } - private MediaPlayer sound() { String path = "src/main/resources/com/app/flight/audio/printer.mp3"; Media sound = new Media(new File(path).toURI().toString()); diff --git a/src/main/java/com/app/flight/util/Json.java b/src/main/java/com/app/flight/util/Json.java index 705d65a..07d3bc9 100644 --- a/src/main/java/com/app/flight/util/Json.java +++ b/src/main/java/com/app/flight/util/Json.java @@ -20,7 +20,7 @@ public class Json { public static final String FOOD_JSON_PATH = "src/main/resources/com/app/flight/data/json/Food.json"; public static final String PASSENGER_JSON_PATH = "src/main/resources/com/app/flight/data/json/Passenger.json"; public static final String RESERVATION_JSON_PATH = "src/main/resources/com/app/flight/data/json/Reservation.json"; - public static final String SEAT_JSON_PATH = "src/main/resources/com/app/flight/data/json/SeatUtil.json"; + public static final String SEAT_JSON_PATH = "src/main/resources/com/app/flight/data/json/Seat.json"; public static final String TYPE_JSON_PATH = "src/main/resources/com/app/flight/data/json/Type.json"; public static boolean writeJson(String jsonFilePath, Object obj) { diff --git a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv index 2abc69c..d96045b 100644 --- a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv +++ b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv @@ -1,3 +1,5 @@ passenger,flight,seatNo,food 510103199810019323,CH4993,5D ,STANDARD 123456,MH1234,6D,HALAL +123456,MH1234,20D,HALAL +123456,MH8633,1A,VEGETARIAN diff --git a/src/main/resources/com/app/flight/data/csv/flightSeat/MH1234_2022-05-25.csv b/src/main/resources/com/app/flight/data/csv/flightSeat/MH1234_2022-05-25.csv index 12e9e41..56d7f0f 100644 --- a/src/main/resources/com/app/flight/data/csv/flightSeat/MH1234_2022-05-25.csv +++ b/src/main/resources/com/app/flight/data/csv/flightSeat/MH1234_2022-05-25.csv @@ -18,4 +18,4 @@ true,true,true,true,true,true true,true,true,true,true,true true,true,true,true,true,true true,true,true,true,true,true -true,true,true,true,true,true +true,true,true,false,true,true diff --git a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv index f969fa1..a56db45 100644 --- a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv +++ b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv @@ -1,5 +1,5 @@ -A ,B ,C ,D ,E ,F -true,true,true,true,true,true +A,B,C,D,E,F +false,true,true,true,true,true true,true,true,true,true,true true,true,true,true,true,true true,true,true,true,true,true diff --git a/src/main/resources/com/app/flight/data/json/Flight.json b/src/main/resources/com/app/flight/data/json/Flight.json index bd80991..e46a538 100644 --- a/src/main/resources/com/app/flight/data/json/Flight.json +++ b/src/main/resources/com/app/flight/data/json/Flight.json @@ -1,9 +1,9 @@ { - "flightId": "MH1234", + "flightId": "MH8633", "departure": "Beijing", - "destination": "Shanghai", - "boardingGate": "C10", - "boardingTime": "2022-05-25T11:25:00", - "departureTime": "2022-05-25T11:55:00", - "arrivalTime": "2022-05-25T16:55:00" + "destination": "Hainan", + "boardingGate": "B8", + "boardingTime": "2022-09-11T07:05:00", + "departureTime": "2022-05-11T09:55:00", + "arrivalTime": "2022-05-11T12:55:00" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Food.json b/src/main/resources/com/app/flight/data/json/Food.json index 28da2a6..c22fd79 100644 --- a/src/main/resources/com/app/flight/data/json/Food.json +++ b/src/main/resources/com/app/flight/data/json/Food.json @@ -1,4 +1,4 @@ { - "foodName": "HALAL", - "foodPrice": 50.0 + "foodName": "VEGETARIAN", + "foodPrice": 20.0 } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Reservation.json b/src/main/resources/com/app/flight/data/json/Reservation.json index ba7b3d4..8f5e170 100644 --- a/src/main/resources/com/app/flight/data/json/Reservation.json +++ b/src/main/resources/com/app/flight/data/json/Reservation.json @@ -1,27 +1,27 @@ [ - { - "reservationId": "1517539047050973184", - "passenger": { - "passengerId": "123456", - "firstName": "Jun", - "lastName": "Test", - "age": 22, - "telephone": "13104368848" - }, - "flight": { - "flightId": "MH8633", - "departure": "Beijing", - "destination": "Hainan", - "boardingGate": "B8", - "boardingTime": "2022-09-11T07:05:00", - "departureTime": "2022-05-11T09:55:00", - "arrivalTime": "2022-05-11T12:55:00" - }, - "seatLevel": "FIRST_CLASS", - "mealsAvailable": true, - "handBaggageNum": 0, - "checkedBaggageNum": 1 - }, + { + "reservationId": "1517539047050973184", + "passenger": { + "passengerId": "123456", + "firstName": "Jun", + "lastName": "Test", + "age": 22, + "telephone": "13104368848" + }, + "flight": { + "flightId": "MH8633", + "departure": "Beijing", + "destination": "Hainan", + "boardingGate": "B8", + "boardingTime": "2022-09-11T07:05:00", + "departureTime": "2022-05-11T09:55:00", + "arrivalTime": "2022-05-11T12:55:00" + }, + "seatLevel": "FIRST_CLASS", + "mealsAvailable": true, + "handBaggageNum": 0, + "checkedBaggageNum": 1 + }, { "reservationId": "1517540042405449728", "passenger": { diff --git a/src/main/resources/com/app/flight/data/json/Seat.json b/src/main/resources/com/app/flight/data/json/Seat.json index 856de84..43b8289 100644 --- a/src/main/resources/com/app/flight/data/json/Seat.json +++ b/src/main/resources/com/app/flight/data/json/Seat.json @@ -1,5 +1,5 @@ { - "flightId": "MH1234", - "column": "D", - "row": "6" + "flightId": "MH8633", + "column": "A", + "row": "1" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/boardingPass.json b/src/main/resources/com/app/flight/data/json/boardingPass.json index fe3c7d0..a107d78 100644 --- a/src/main/resources/com/app/flight/data/json/boardingPass.json +++ b/src/main/resources/com/app/flight/data/json/boardingPass.json @@ -6,18 +6,18 @@ "age": 22, "telephone": "13104368848" }, - "flight": { - "flightId": "MH1234", - "departure": "Beijing", - "destination": "Shanghai", - "boardingGate": "C10", - "boardingTime": "2022-05-25T11:25:00", - "departureTime": "2022-05-25T11:55:00", - "arrivalTime": "2022-05-25T16:55:00" - }, - "seatNo": "6D", - "food": { - "foodName": "HALAL", - "foodPrice": 50.0 - } + "flight": { + "flightId": "MH8633", + "departure": "Beijing", + "destination": "Hainan", + "boardingGate": "B8", + "boardingTime": "2022-09-11T07:05:00", + "departureTime": "2022-05-11T09:55:00", + "arrivalTime": "2022-05-11T12:55:00" + }, + "seatNo": "1A", + "food": { + "foodName": "VEGETARIAN", + "foodPrice": 20.0 + } } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt index 713dd9c..e88a21f 100644 --- a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt +++ b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt @@ -2,13 +2,13 @@ / \ \. | | |. \__| |. - | DATE: 25 MAY |. - | FLIGHT: MH1234 |. + | DATE: 11 SEPTEMBER |. + | FLIGHT: MH8633 |. | NAME: Jun Test |. - | SEAT: 6D |. - | GATE: C10 |. - | BD TIME: 11:25 |. - | DEST: Shanghai |. + | SEAT: 1A |. + | GATE: B8 |. + | BD TIME: 07:05 |. + | DEST: Hainan |. | |. | |. | ________________________|____ diff --git a/src/main/resources/com/app/flight/data/printer/Tag.txt b/src/main/resources/com/app/flight/data/printer/Tag.txt index ef8ca7b..6a0294f 100644 --- a/src/main/resources/com/app/flight/data/printer/Tag.txt +++ b/src/main/resources/com/app/flight/data/printer/Tag.txt @@ -1,10 +1 @@ - _____________TAG_____________ - / \ \. -| | |. - \__| |. - | NO.1 |. - | HAND BAGGAGE: 1 |. - | |. - | ________________________|____ - | / /. - \_/Group58_____________________/. \ No newline at end of file +You don't have hand baggage \ No newline at end of file From 8a2b032b2cd78f37379a9c59bbacac6759e0aa1c Mon Sep 17 00:00:00 2001 From: MASON <1282676427@qq.com> Date: Wed, 11 May 2022 11:06:58 +0800 Subject: [PATCH 03/39] 5.11 --- .../app/flight/data/json/boardingPass.json | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/main/resources/com/app/flight/data/json/boardingPass.json b/src/main/resources/com/app/flight/data/json/boardingPass.json index a107d78..ba08fd5 100644 --- a/src/main/resources/com/app/flight/data/json/boardingPass.json +++ b/src/main/resources/com/app/flight/data/json/boardingPass.json @@ -6,18 +6,18 @@ "age": 22, "telephone": "13104368848" }, - "flight": { - "flightId": "MH8633", - "departure": "Beijing", - "destination": "Hainan", - "boardingGate": "B8", - "boardingTime": "2022-09-11T07:05:00", - "departureTime": "2022-05-11T09:55:00", - "arrivalTime": "2022-05-11T12:55:00" - }, - "seatNo": "1A", - "food": { - "foodName": "VEGETARIAN", - "foodPrice": 20.0 - } + "flight": { + "flightId": "MH8633", + "departure": "Beijing", + "destination": "Hainan", + "boardingGate": "B8", + "boardingTime": "2022-09-11T07:05:00", + "departureTime": "2022-05-11T09:55:00", + "arrivalTime": "2022-05-11T12:55:00" + }, + "seatNo": "1A", + "food": { + "foodName": "VEGETARIAN", + "foodPrice": 20.0 + } } \ No newline at end of file From e2c33cb9fe72a44506c7ed11aca579cc0aa43428 Mon Sep 17 00:00:00 2001 From: MASON <1282676427@qq.com> Date: Wed, 11 May 2022 11:16:46 +0800 Subject: [PATCH 04/39] 5.11 --- .../app/flight/data/json/BoardingPass.json | 2 +- .../app/flight/data/json/boardingPass.json | 23 ------------------- 2 files changed, 1 insertion(+), 24 deletions(-) delete mode 100644 src/main/resources/com/app/flight/data/json/boardingPass.json diff --git a/src/main/resources/com/app/flight/data/json/BoardingPass.json b/src/main/resources/com/app/flight/data/json/BoardingPass.json index cbeb62c..a107d78 100644 --- a/src/main/resources/com/app/flight/data/json/BoardingPass.json +++ b/src/main/resources/com/app/flight/data/json/BoardingPass.json @@ -15,7 +15,7 @@ "departureTime": "2022-05-11T09:55:00", "arrivalTime": "2022-05-11T12:55:00" }, - "seatNo": "3D", + "seatNo": "1A", "food": { "foodName": "VEGETARIAN", "foodPrice": 20.0 diff --git a/src/main/resources/com/app/flight/data/json/boardingPass.json b/src/main/resources/com/app/flight/data/json/boardingPass.json deleted file mode 100644 index ba08fd5..0000000 --- a/src/main/resources/com/app/flight/data/json/boardingPass.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "passenger": { - "passengerId": "123456", - "firstName": "Jun", - "lastName": "Test", - "age": 22, - "telephone": "13104368848" - }, - "flight": { - "flightId": "MH8633", - "departure": "Beijing", - "destination": "Hainan", - "boardingGate": "B8", - "boardingTime": "2022-09-11T07:05:00", - "departureTime": "2022-05-11T09:55:00", - "arrivalTime": "2022-05-11T12:55:00" - }, - "seatNo": "1A", - "food": { - "foodName": "VEGETARIAN", - "foodPrice": 20.0 - } -} \ No newline at end of file From de13623561c444ec2dd38db910552db1403778ca Mon Sep 17 00:00:00 2001 From: MASON <1282676427@qq.com> Date: Wed, 11 May 2022 21:21:30 +0800 Subject: [PATCH 05/39] 5.11 --- .../java/com/app/flight/controller/PaymentController.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/app/flight/controller/PaymentController.java b/src/main/java/com/app/flight/controller/PaymentController.java index 18207d1..9476085 100644 --- a/src/main/java/com/app/flight/controller/PaymentController.java +++ b/src/main/java/com/app/flight/controller/PaymentController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.app.flight.Main; import com.app.flight.entity.Food; +import com.app.flight.entity.Reservation; import com.app.flight.util.Json; import javafx.application.Platform; import javafx.event.ActionEvent; @@ -18,7 +19,6 @@ import javafx.scene.image.ImageView; import javafx.stage.Stage; -import java.io.File; import java.io.IOException; public class PaymentController { @@ -45,10 +45,12 @@ public void pay(String paymentMethod) { textField.setVisible(false); clean.setVisible(false); - File file = new File(Json.FOOD_JSON_PATH); - String foodString = Json.extractJsonData(String.valueOf(file)); + String foodString = Json.extractJsonData(Json.FOOD_JSON_PATH); Food food = JSON.parseObject(foodString, Food.class); double fPrice = food.getFoodPrice(); + String reservationStr = Json.extractJsonData(Json.RESERVATION_JSON_PATH); + Reservation reservation = JSON.parseObject(reservationStr, Reservation.class); + int price = reservation.getSeatLevel().getPrice(); seatPrice.setText("None"); foodPrice.setText("£" + String.valueOf(fPrice)); From 5c7e1723241c78d240954695e6f86b24d3e9a6a6 Mon Sep 17 00:00:00 2001 From: HH <693906439@qq.com> Date: Wed, 11 May 2022 21:27:06 +0800 Subject: [PATCH 06/39] 5.11 getPrice --- .idea/EBU6304_G058_flight.iml | 1 - .idea/compiler.xml | 2 +- .../com/app/flight/controller/PaymentController.java | 9 +++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.idea/EBU6304_G058_flight.iml b/.idea/EBU6304_G058_flight.iml index 44c052e..6423c38 100644 --- a/.idea/EBU6304_G058_flight.iml +++ b/.idea/EBU6304_G058_flight.iml @@ -8,7 +8,6 @@ - diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 7519a9d..55a7d2e 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -13,7 +13,7 @@ - + diff --git a/src/main/java/com/app/flight/controller/PaymentController.java b/src/main/java/com/app/flight/controller/PaymentController.java index 18207d1..3d3031e 100644 --- a/src/main/java/com/app/flight/controller/PaymentController.java +++ b/src/main/java/com/app/flight/controller/PaymentController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.app.flight.Main; import com.app.flight.entity.Food; +import com.app.flight.entity.Reservation; import com.app.flight.util.Json; import javafx.application.Platform; import javafx.event.ActionEvent; @@ -18,7 +19,6 @@ import javafx.scene.image.ImageView; import javafx.stage.Stage; -import java.io.File; import java.io.IOException; public class PaymentController { @@ -45,11 +45,12 @@ public void pay(String paymentMethod) { textField.setVisible(false); clean.setVisible(false); - File file = new File(Json.FOOD_JSON_PATH); - String foodString = Json.extractJsonData(String.valueOf(file)); + String foodString = Json.extractJsonData(Json.FOOD_JSON_PATH); Food food = JSON.parseObject(foodString, Food.class); double fPrice = food.getFoodPrice(); - + String reservationStr = Json.extractJsonData(Json.RESERVATION_JSON_PATH); + Reservation reservation = JSON.parseObject(reservationStr, Reservation.class); + //int price = reservation.getSeatLevel().getPrice(); seatPrice.setText("None"); foodPrice.setText("£" + String.valueOf(fPrice)); From 2b742803e642e5334b71acba547ea546ba84b2a7 Mon Sep 17 00:00:00 2001 From: Lian Junhong <194668285@qq.com> Date: Wed, 11 May 2022 22:06:14 +0800 Subject: [PATCH 07/39] Update QR Code --- .idea/EBU6304_G058_flight.iml | 1 + .idea/misc.xml | 4 + pom.xml | 6 ++ .../flight/controller/PaymentController.java | 32 ++++++- src/main/java/module-info.java | 1 + .../com/app/flight/data/csv/BoardingPass.csv | 67 ++++++++++++- .../data/csv/flightSeat/MH8633_2022-05-11.csv | 34 +++---- .../app/flight/data/json/BoardingPass.json | 18 ++-- .../com/app/flight/data/json/Flight.json | 12 +-- .../com/app/flight/data/json/Food.json | 4 +- .../com/app/flight/data/json/Reservation.json | 90 +++++++++--------- .../com/app/flight/data/json/Seat.json | 4 +- .../com/app/flight/fxml/Payment.fxml | 4 +- .../resources/com/app/flight/image/QR.jpg | Bin 58081 -> 0 bytes .../app/flight/image/QR_Code/AlipayLogo.png | Bin 0 -> 5579 bytes .../app/flight/image/QR_Code/PaypalLogo.png | Bin 0 -> 1768 bytes .../com/app/flight/image/QR_Code/QR.jpg | Bin 0 -> 33985 bytes 17 files changed, 188 insertions(+), 89 deletions(-) delete mode 100644 src/main/resources/com/app/flight/image/QR.jpg create mode 100644 src/main/resources/com/app/flight/image/QR_Code/AlipayLogo.png create mode 100644 src/main/resources/com/app/flight/image/QR_Code/PaypalLogo.png create mode 100644 src/main/resources/com/app/flight/image/QR_Code/QR.jpg diff --git a/.idea/EBU6304_G058_flight.iml b/.idea/EBU6304_G058_flight.iml index 6423c38..a2cbbe3 100644 --- a/.idea/EBU6304_G058_flight.iml +++ b/.idea/EBU6304_G058_flight.iml @@ -29,6 +29,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index b275129..835851c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -12,6 +12,10 @@ + + diff --git a/pom.xml b/pom.xml index 6eaff69..ac23c60 100644 --- a/pom.xml +++ b/pom.xml @@ -58,6 +58,12 @@ 5.8.0.M4 + + com.google.zxing + core + 3.5.0 + + org.projectlombok diff --git a/src/main/java/com/app/flight/controller/PaymentController.java b/src/main/java/com/app/flight/controller/PaymentController.java index 3d3031e..ac5e5e6 100644 --- a/src/main/java/com/app/flight/controller/PaymentController.java +++ b/src/main/java/com/app/flight/controller/PaymentController.java @@ -1,11 +1,15 @@ package com.app.flight.controller; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.thread.ThreadUtil; +import cn.hutool.extra.qrcode.QrCodeUtil; +import cn.hutool.extra.qrcode.QrConfig; import com.alibaba.fastjson2.JSON; import com.app.flight.Main; import com.app.flight.entity.Food; import com.app.flight.entity.Reservation; import com.app.flight.util.Json; +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import javafx.application.Platform; import javafx.event.ActionEvent; import javafx.fxml.FXML; @@ -19,6 +23,7 @@ import javafx.scene.image.ImageView; import javafx.stage.Stage; +import java.io.File; import java.io.IOException; public class PaymentController { @@ -40,6 +45,24 @@ public class PaymentController { @FXML private Label foodPrice; + public static final String QR_CODE_PATH = "src/main/resources/com/app/flight/image/QR_Code/QR.jpg"; + public static final String PAYPAL_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/PaypalLogo.png"; + public static final String PAYPAL_SITE = "https://www.paypal.com/ph/signin"; + public static final String ALIPAY_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/AlipayLogo.png"; + public static final String ALIPAY_SITE = "https://auth.alipay.com/login/index.htm"; + + + private void generateQRCode(String url, String path) { + QrConfig config = new QrConfig(300, 300); + config.setErrorCorrection(ErrorCorrectionLevel.H); + config.setImg(new File(path)); + QrCodeUtil.generate(// + url, //二维码内容 + config,//附带logo + FileUtil.newFile(QR_CODE_PATH)//写出到的文件 + ); + } + public void pay(String paymentMethod) { code.setVisible(false); textField.setVisible(false); @@ -52,12 +75,17 @@ public void pay(String paymentMethod) { Reservation reservation = JSON.parseObject(reservationStr, Reservation.class); //int price = reservation.getSeatLevel().getPrice(); seatPrice.setText("None"); - foodPrice.setText("£" + String.valueOf(fPrice)); + foodPrice.setText("£" + fPrice); if (paymentMethod.equals("paypal") || paymentMethod.equals("alipay")) { whetherPayment = true; code.setVisible(true); - code.setImage(new Image(String.valueOf(Main.class.getResource("image/QR.jpg")))); + if (paymentMethod.equals("paypal")) { + generateQRCode(PAYPAL_SITE, PAYPAL_IMAGE_PATH); + } else { + generateQRCode(ALIPAY_SITE, ALIPAY_IMAGE_PATH); + } + code.setImage(new Image(new File(QR_CODE_PATH).toURI().toString())); } else if (paymentMethod.equals("visa")) { annotation.setText("--> Please input your VISA card number:"); textField.setVisible(true); diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 922ddd2..8ee4525 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -6,6 +6,7 @@ requires lombok; requires hutool.all; requires javafx.media; + requires com.google.zxing; opens com.app.flight to javafx.fxml, javafx.media, com.alibaba.fastjson2, lombok; exports com.app.flight; diff --git a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv index d96045b..3554b0c 100644 --- a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv +++ b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv @@ -1,5 +1,64 @@ passenger,flight,seatNo,food -510103199810019323,CH4993,5D ,STANDARD -123456,MH1234,6D,HALAL -123456,MH1234,20D,HALAL -123456,MH8633,1A,VEGETARIAN +123456,MH8633,1A,STANDARD +123456,MH8633,3D,VEGETARIAN +123456,MH8633,4C,VEGETARIAN +123456,MH1234,10D,VEGETARIAN +123456,MH1234,8C,HALAL +123456,MH1234,12C,20.0 +123456,MH8633,2B,HALAL +123456,MH1234,5A,STANDARD +123456,MH8633,1D,VEGETARIAN +123456,MH1234,6B,HALAL +123456,MH8633,4E,VEGETARIAN +123456,MH1234,8E,VEGETARIAN +123456,MH1234,7E,HALAL +123456,MH1234,9A,STANDARD +123456,MH8633,6B,VEGETARIAN +123456,MH8633,5E,VEGETARIAN +123456,MH8633,1A,HALAL +123456,MH8633,7D,HALAL +123456,MH8633,4A,VEGETARIAN +123456,MH8633,3A,VEGETARIAN +123456,MH8633,10C,VEGETARIAN +123456,MH8633,11C,VEGETARIAN +123456,MH8633,12C,VEGETARIAN +123456,MH8633,13C,VEGETARIAN +123456,MH8633,1B,VEGETARIAN +123456,MH8633,14C,VEGETARIAN +123456,MH8633,7C,VEGETARIAN +123456,MH1234,8A,VEGETARIAN +123456,MH8633,1C,VEGETARIAN +123456,MH8633,15C,VEGETARIAN +123456,MH8633,16C,VEGETARIAN +123456,MH1234,8D,VEGETARIAN +123456,MH1234,9E,HALAL +123456,MH1234,9F,HALAL +123456,MH1234,10F,HALAL +123456,MH8633,6D,VEGETARIAN +123456,MH1234,11D,VEGETARIAN +123456,MH1234,11D,VEGETARIAN +123456,MH1234,11D,VEGETARIAN +123456,MH1234,11D,VEGETARIAN +123456,MH1234,11D,VEGETARIAN +123456,MH8633,4D,VEGETARIAN +123456,MH8633,2D,VEGETARIAN +123456,MH8633,2B,VEGETARIAN +123456,MH1234,9B,VEGETARIAN +123456,MH8633,1D,VEGETARIAN +123456,MH1234,7A,VEGETARIAN +123456,MH8633,3D,VEGETARIAN +123456,MH8633,17D,VEGETARIAN +123456,MH1234,12B,VEGETARIAN +123456,MH1234,10B,VEGETARIAN +123456,MH1234,10A,VEGETARIAN +123456,MH8633,2E,VEGETARIAN +123456,MH8633,5F,VEGETARIAN +123456,MH1234,13C,VEGETARIAN +123456,MH8633,4F,VEGETARIAN +123456,MH1234,11B,VEGETARIAN +123456,MH8633,5C,VEGETARIAN +123456,MH1234,11C,VEGETARIAN +123456,MH8633,5D,VEGETARIAN +123456,MH1234,13B,VEGETARIAN +123456,MH8633,2A,VEGETARIAN +123456,MH1234,12A,STANDARD diff --git a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv index a56db45..7ac0ec7 100644 --- a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv +++ b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv @@ -1,21 +1,21 @@ A,B,C,D,E,F -false,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true -true,true,true,true,true,true +false,false,false,false,true,true +false,false,false,false,false,true +false,false,false,false,false,true +false,false,false,false,false,false +true,true,false,false,false,false +true,false,true,false,true,true +true,true,false,false,true,true +true,true,false,true,true,true +true,true,false,true,true,true +true,true,false,true,true,true +true,true,false,true,true,true +true,true,false,true,true,true +true,true,false,true,true,true +true,true,false,true,true,true +true,true,false,true,true,true +true,true,false,true,true,true +true,true,true,false,true,true true,true,true,true,true,true true,true,true,true,true,true true,true,true,true,true,true diff --git a/src/main/resources/com/app/flight/data/json/BoardingPass.json b/src/main/resources/com/app/flight/data/json/BoardingPass.json index a107d78..d84d71c 100644 --- a/src/main/resources/com/app/flight/data/json/BoardingPass.json +++ b/src/main/resources/com/app/flight/data/json/BoardingPass.json @@ -7,17 +7,17 @@ "telephone": "13104368848" }, "flight": { - "flightId": "MH8633", + "flightId": "MH1234", "departure": "Beijing", - "destination": "Hainan", - "boardingGate": "B8", - "boardingTime": "2022-09-11T07:05:00", - "departureTime": "2022-05-11T09:55:00", - "arrivalTime": "2022-05-11T12:55:00" + "destination": "Shanghai", + "boardingGate": "C10", + "boardingTime": "2022-05-25T11:25:00", + "departureTime": "2022-05-25T11:55:00", + "arrivalTime": "2022-05-25T16:55:00" }, - "seatNo": "1A", + "seatNo": "12A", "food": { - "foodName": "VEGETARIAN", - "foodPrice": 20.0 + "foodName": "STANDARD", + "foodPrice": 30.0 } } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Flight.json b/src/main/resources/com/app/flight/data/json/Flight.json index e46a538..bd80991 100644 --- a/src/main/resources/com/app/flight/data/json/Flight.json +++ b/src/main/resources/com/app/flight/data/json/Flight.json @@ -1,9 +1,9 @@ { - "flightId": "MH8633", + "flightId": "MH1234", "departure": "Beijing", - "destination": "Hainan", - "boardingGate": "B8", - "boardingTime": "2022-09-11T07:05:00", - "departureTime": "2022-05-11T09:55:00", - "arrivalTime": "2022-05-11T12:55:00" + "destination": "Shanghai", + "boardingGate": "C10", + "boardingTime": "2022-05-25T11:25:00", + "departureTime": "2022-05-25T11:55:00", + "arrivalTime": "2022-05-25T16:55:00" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Food.json b/src/main/resources/com/app/flight/data/json/Food.json index c22fd79..a881edf 100644 --- a/src/main/resources/com/app/flight/data/json/Food.json +++ b/src/main/resources/com/app/flight/data/json/Food.json @@ -1,4 +1,4 @@ { - "foodName": "VEGETARIAN", - "foodPrice": 20.0 + "foodName": "STANDARD", + "foodPrice": 30.0 } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Reservation.json b/src/main/resources/com/app/flight/data/json/Reservation.json index 8f5e170..1797d29 100644 --- a/src/main/resources/com/app/flight/data/json/Reservation.json +++ b/src/main/resources/com/app/flight/data/json/Reservation.json @@ -1,48 +1,48 @@ [ { - "reservationId": "1517539047050973184", - "passenger": { - "passengerId": "123456", - "firstName": "Jun", - "lastName": "Test", - "age": 22, - "telephone": "13104368848" - }, - "flight": { - "flightId": "MH8633", - "departure": "Beijing", - "destination": "Hainan", - "boardingGate": "B8", - "boardingTime": "2022-09-11T07:05:00", - "departureTime": "2022-05-11T09:55:00", - "arrivalTime": "2022-05-11T12:55:00" - }, - "seatLevel": "FIRST_CLASS", - "mealsAvailable": true, - "handBaggageNum": 0, - "checkedBaggageNum": 1 - }, - { - "reservationId": "1517540042405449728", - "passenger": { - "passengerId": "123456", - "firstName": "Jun", - "lastName": "Test", - "age": 22, - "telephone": "13104368848" - }, - "flight": { - "flightId": "MH1234", - "departure": "Beijing", - "destination": "Shanghai", - "boardingGate": "C10", - "boardingTime": "2022-05-25T11:25:00", - "departureTime": "2022-05-25T11:55:00", - "arrivalTime": "2022-05-25T16:55:00" - }, - "seatLevel": "ECONOMY_CLASS", - "mealsAvailable": true, - "handBaggageNum": 1, - "checkedBaggageNum": 0 - } + "reservationId": "1517539047050973184", + "passenger": { + "passengerId": "123456", + "firstName": "Jun", + "lastName": "Test", + "age": 22, + "telephone": "13104368848" + }, + "flight": { + "flightId": "MH8633", + "departure": "Beijing", + "destination": "Hainan", + "boardingGate": "B8", + "boardingTime": "2022-09-11T07:05:00", + "departureTime": "2022-05-11T09:55:00", + "arrivalTime": "2022-05-11T12:55:00" + }, + "seatLevel": "FIRST_CLASS", + "mealsAvailable": true, + "handBaggageNum": 0, + "checkedBaggageNum": 1 + }, + { + "reservationId": "1517540042405449728", + "passenger": { + "passengerId": "123456", + "firstName": "Jun", + "lastName": "Test", + "age": 22, + "telephone": "13104368848" + }, + "flight": { + "flightId": "MH1234", + "departure": "Beijing", + "destination": "Shanghai", + "boardingGate": "C10", + "boardingTime": "2022-05-25T11:25:00", + "departureTime": "2022-05-25T11:55:00", + "arrivalTime": "2022-05-25T16:55:00" + }, + "seatLevel": "ECONOMY_CLASS", + "mealsAvailable": true, + "handBaggageNum": 1, + "checkedBaggageNum": 0 + } ] \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Seat.json b/src/main/resources/com/app/flight/data/json/Seat.json index 43b8289..2b03dd6 100644 --- a/src/main/resources/com/app/flight/data/json/Seat.json +++ b/src/main/resources/com/app/flight/data/json/Seat.json @@ -1,5 +1,5 @@ { - "flightId": "MH8633", + "flightId": "MH1234", "column": "A", - "row": "1" + "row": "12" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/fxml/Payment.fxml b/src/main/resources/com/app/flight/fxml/Payment.fxml index cd712f5..dcdadda 100644 --- a/src/main/resources/com/app/flight/fxml/Payment.fxml +++ b/src/main/resources/com/app/flight/fxml/Payment.fxml @@ -190,10 +190,10 @@ - - + a^r|P#1%xsTx5(Kfhb21^>48 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 diff --git a/src/main/resources/com/app/flight/image/QR_Code/AlipayLogo.png b/src/main/resources/com/app/flight/image/QR_Code/AlipayLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..2e5a771b62df1f6dc84cbf39268bcd4788cd5d02 GIT binary patch literal 5579 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 KMNUMnLSTY&@=iSf literal 0 HcmV?d00001 diff --git a/src/main/resources/com/app/flight/image/QR_Code/QR.jpg b/src/main/resources/com/app/flight/image/QR_Code/QR.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3c5dc20311d306c46083dd279fe7dd3da155f45c GIT binary patch literal 33985 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 Tf3@%a=lOj9U;i(L((?ZRf!?E5 literal 0 HcmV?d00001 From 6cd2b442d26c8f8b5d47b16b56b588d00f63aebd Mon Sep 17 00:00:00 2001 From: Lian Junhong <194668285@qq.com> Date: Wed, 11 May 2022 22:25:33 +0800 Subject: [PATCH 08/39] Update QR Code --- .../flight/controller/PaymentController.java | 23 +++++---- .../com/app/flight/data/csv/BoardingPass.csv | 6 +++ .../data/csv/flightSeat/MH8633_2022-05-11.csv | 10 ++-- .../app/flight/data/json/BoardingPass.json | 18 +++---- .../com/app/flight/data/json/Flight.json | 12 ++--- .../com/app/flight/data/json/Food.json | 4 +- .../com/app/flight/data/json/Reservation.json | 44 +++++++++--------- .../com/app/flight/data/json/Seat.json | 6 +-- .../com/app/flight/data/json/Type.json | 2 +- .../com/app/flight/fxml/Payment.fxml | 2 +- .../com/app/flight/image/QR_Code/QR.jpg | Bin 33985 -> 36091 bytes 11 files changed, 66 insertions(+), 61 deletions(-) diff --git a/src/main/java/com/app/flight/controller/PaymentController.java b/src/main/java/com/app/flight/controller/PaymentController.java index ac5e5e6..9ad75b7 100644 --- a/src/main/java/com/app/flight/controller/PaymentController.java +++ b/src/main/java/com/app/flight/controller/PaymentController.java @@ -7,7 +7,6 @@ import com.alibaba.fastjson2.JSON; import com.app.flight.Main; import com.app.flight.entity.Food; -import com.app.flight.entity.Reservation; import com.app.flight.util.Json; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import javafx.application.Platform; @@ -28,6 +27,11 @@ public class PaymentController { + public static final String QR_CODE_PATH = "src/main/resources/com/app/flight/image/QR_Code/QR.jpg"; + public static final String PAYPAL_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/PaypalLogo.png"; + public static final String PAYPAL_SITE = "https://www.paypal.com/ph/signin"; + public static final String ALIPAY_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/AlipayLogo.png"; + public static final String ALIPAY_SITE = "https://auth.alipay.com/login/index.htm"; @FXML public Button finish; public Button help; @@ -45,18 +49,13 @@ public class PaymentController { @FXML private Label foodPrice; - public static final String QR_CODE_PATH = "src/main/resources/com/app/flight/image/QR_Code/QR.jpg"; - public static final String PAYPAL_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/PaypalLogo.png"; - public static final String PAYPAL_SITE = "https://www.paypal.com/ph/signin"; - public static final String ALIPAY_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/AlipayLogo.png"; - public static final String ALIPAY_SITE = "https://auth.alipay.com/login/index.htm"; - - private void generateQRCode(String url, String path) { QrConfig config = new QrConfig(300, 300); config.setErrorCorrection(ErrorCorrectionLevel.H); + config.setMargin(1); config.setImg(new File(path)); - QrCodeUtil.generate(// + config.setRatio(8); + QrCodeUtil.generate( url, //二维码内容 config,//附带logo FileUtil.newFile(QR_CODE_PATH)//写出到的文件 @@ -71,9 +70,9 @@ public void pay(String paymentMethod) { String foodString = Json.extractJsonData(Json.FOOD_JSON_PATH); Food food = JSON.parseObject(foodString, Food.class); double fPrice = food.getFoodPrice(); - String reservationStr = Json.extractJsonData(Json.RESERVATION_JSON_PATH); - Reservation reservation = JSON.parseObject(reservationStr, Reservation.class); - //int price = reservation.getSeatLevel().getPrice(); +// String reservationStr = Json.extractJsonData(Json.RESERVATION_JSON_PATH); +// Reservation reservation = JSON.parseObject(reservationStr, Reservation.class); +// int price = reservation.getSeatLevel().getPrice(); seatPrice.setText("None"); foodPrice.setText("£" + fPrice); diff --git a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv index 3554b0c..18596e0 100644 --- a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv +++ b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv @@ -62,3 +62,9 @@ passenger,flight,seatNo,food 123456,MH1234,13B,VEGETARIAN 123456,MH8633,2A,VEGETARIAN 123456,MH1234,12A,STANDARD +123456,MH8633,1E,VEGETARIAN +123456,MH8633,3F,VEGETARIAN +123456,MH8633,5B,VEGETARIAN +123456,MH8633,2F,VEGETARIAN +123456,MH8633,1F,VEGETARIAN +123456,MH8633,6C,VEGETARIAN diff --git a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv index 7ac0ec7..167006e 100644 --- a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv +++ b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv @@ -1,10 +1,10 @@ A,B,C,D,E,F -false,false,false,false,true,true -false,false,false,false,false,true -false,false,false,false,false,true false,false,false,false,false,false -true,true,false,false,false,false -true,false,true,false,true,true +false,false,false,false,false,false +false,false,false,false,false,false +false,false,false,false,false,false +true,false,false,false,false,false +true,false,false,false,true,true true,true,false,false,true,true true,true,false,true,true,true true,true,false,true,true,true diff --git a/src/main/resources/com/app/flight/data/json/BoardingPass.json b/src/main/resources/com/app/flight/data/json/BoardingPass.json index d84d71c..a0dedf1 100644 --- a/src/main/resources/com/app/flight/data/json/BoardingPass.json +++ b/src/main/resources/com/app/flight/data/json/BoardingPass.json @@ -7,17 +7,17 @@ "telephone": "13104368848" }, "flight": { - "flightId": "MH1234", + "flightId": "MH8633", "departure": "Beijing", - "destination": "Shanghai", - "boardingGate": "C10", - "boardingTime": "2022-05-25T11:25:00", - "departureTime": "2022-05-25T11:55:00", - "arrivalTime": "2022-05-25T16:55:00" + "destination": "Hainan", + "boardingGate": "B8", + "boardingTime": "2022-09-11T07:05:00", + "departureTime": "2022-05-11T09:55:00", + "arrivalTime": "2022-05-11T12:55:00" }, - "seatNo": "12A", + "seatNo": "6C", "food": { - "foodName": "STANDARD", - "foodPrice": 30.0 + "foodName": "VEGETARIAN", + "foodPrice": 20.0 } } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Flight.json b/src/main/resources/com/app/flight/data/json/Flight.json index bd80991..e46a538 100644 --- a/src/main/resources/com/app/flight/data/json/Flight.json +++ b/src/main/resources/com/app/flight/data/json/Flight.json @@ -1,9 +1,9 @@ { - "flightId": "MH1234", + "flightId": "MH8633", "departure": "Beijing", - "destination": "Shanghai", - "boardingGate": "C10", - "boardingTime": "2022-05-25T11:25:00", - "departureTime": "2022-05-25T11:55:00", - "arrivalTime": "2022-05-25T16:55:00" + "destination": "Hainan", + "boardingGate": "B8", + "boardingTime": "2022-09-11T07:05:00", + "departureTime": "2022-05-11T09:55:00", + "arrivalTime": "2022-05-11T12:55:00" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Food.json b/src/main/resources/com/app/flight/data/json/Food.json index a881edf..c22fd79 100644 --- a/src/main/resources/com/app/flight/data/json/Food.json +++ b/src/main/resources/com/app/flight/data/json/Food.json @@ -1,4 +1,4 @@ { - "foodName": "STANDARD", - "foodPrice": 30.0 + "foodName": "VEGETARIAN", + "foodPrice": 20.0 } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Reservation.json b/src/main/resources/com/app/flight/data/json/Reservation.json index 1797d29..847d799 100644 --- a/src/main/resources/com/app/flight/data/json/Reservation.json +++ b/src/main/resources/com/app/flight/data/json/Reservation.json @@ -1,27 +1,27 @@ [ - { - "reservationId": "1517539047050973184", - "passenger": { - "passengerId": "123456", - "firstName": "Jun", - "lastName": "Test", - "age": 22, - "telephone": "13104368848" - }, - "flight": { - "flightId": "MH8633", - "departure": "Beijing", - "destination": "Hainan", - "boardingGate": "B8", - "boardingTime": "2022-09-11T07:05:00", - "departureTime": "2022-05-11T09:55:00", - "arrivalTime": "2022-05-11T12:55:00" - }, - "seatLevel": "FIRST_CLASS", - "mealsAvailable": true, - "handBaggageNum": 0, - "checkedBaggageNum": 1 + { + "reservationId": "1517539047050973184", + "passenger": { + "passengerId": "123456", + "firstName": "Jun", + "lastName": "Test", + "age": 22, + "telephone": "13104368848" }, + "flight": { + "flightId": "MH8633", + "departure": "Beijing", + "destination": "Hainan", + "boardingGate": "B8", + "boardingTime": "2022-09-11T07:05:00", + "departureTime": "2022-05-11T09:55:00", + "arrivalTime": "2022-05-11T12:55:00" + }, + "seatLevel": "FIRST_CLASS", + "mealsAvailable": true, + "handBaggageNum": 0, + "checkedBaggageNum": 1 + }, { "reservationId": "1517540042405449728", "passenger": { diff --git a/src/main/resources/com/app/flight/data/json/Seat.json b/src/main/resources/com/app/flight/data/json/Seat.json index 2b03dd6..8e2ab02 100644 --- a/src/main/resources/com/app/flight/data/json/Seat.json +++ b/src/main/resources/com/app/flight/data/json/Seat.json @@ -1,5 +1,5 @@ { - "flightId": "MH1234", - "column": "A", - "row": "12" + "flightId": "MH8633", + "column": "C", + "row": "6" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Type.json b/src/main/resources/com/app/flight/data/json/Type.json index 14870bd..20090b0 100644 --- a/src/main/resources/com/app/flight/data/json/Type.json +++ b/src/main/resources/com/app/flight/data/json/Type.json @@ -1,3 +1,3 @@ { - "type": "visa" + "type": "paypal" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/fxml/Payment.fxml b/src/main/resources/com/app/flight/fxml/Payment.fxml index dcdadda..584f579 100644 --- a/src/main/resources/com/app/flight/fxml/Payment.fxml +++ b/src/main/resources/com/app/flight/fxml/Payment.fxml @@ -178,7 +178,7 @@ - + - - + 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%0AlQEdF5W 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 CpOX6k literal 36091 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 fEg2xYuqIj^xwPjHWO}sI=tH From f7d4abebe8e34c67602e3415fe1b65fdf61314e2 Mon Sep 17 00:00:00 2001 From: HH <693906439@qq.com> Date: Thu, 12 May 2022 00:17:37 +0800 Subject: [PATCH 15/39] 5.12 --- .../flight/controller/FinishController.java | 26 +++++ .../flight/controller/PaymentController.java | 4 +- .../controller/PrintTagsController.java | 3 + .../com/app/flight/data/csv/BoardingPass.csv | 1 + .../data/csv/flightSeat/MH8633_2022-05-11.csv | 2 +- .../app/flight/data/json/BoardingPass.json | 2 +- .../com/app/flight/data/json/Seat.json | 4 +- .../app/flight/data/printer/BoardingPass.txt | 2 +- .../com/app/flight/fxml/Finished.fxml | 97 +++++++++++------- .../flight/image/QR_Code/BoardingPassLogo.png | Bin 0 -> 14828 bytes .../com/app/flight/image/QR_Code/TagLogo.png | Bin 0 -> 26734 bytes 11 files changed, 99 insertions(+), 42 deletions(-) create mode 100644 src/main/resources/com/app/flight/image/QR_Code/BoardingPassLogo.png create mode 100644 src/main/resources/com/app/flight/image/QR_Code/TagLogo.png diff --git a/src/main/java/com/app/flight/controller/FinishController.java b/src/main/java/com/app/flight/controller/FinishController.java index 05f28da..e6d561f 100644 --- a/src/main/java/com/app/flight/controller/FinishController.java +++ b/src/main/java/com/app/flight/controller/FinishController.java @@ -1,13 +1,19 @@ package com.app.flight.controller; +import cn.hutool.core.io.FileUtil; +import cn.hutool.extra.qrcode.QrCodeUtil; +import cn.hutool.extra.qrcode.QrConfig; import com.app.flight.Main; +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import javafx.application.Platform; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.control.Button; +import javafx.scene.image.ImageView; import javafx.stage.Stage; +import java.io.File; import java.io.IOException; /** @@ -20,9 +26,29 @@ public class FinishController { + protected static final String TAG_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/TagLogo.png"; + protected static final String TAG_TXT = "src/main/resources/com/app/flight/data/printer/Tag.txt"; + protected static final String BOARDING_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/BoardingPassLogo.png"; + protected static final String BOARDING_TXT = "src/main/resources/com/app/flight/data/printer/BoardingPass.txt"; + private static final String QR_CODE_PATH = "src/main/resources/com/app/flight/image/QR_Code/"; + public ImageView boardingPassCode; + public ImageView tagCode; @FXML private Button finish; + protected void generateQRCode(String url, String path, String type) { + QrConfig config = new QrConfig(300, 300); + config.setErrorCorrection(ErrorCorrectionLevel.H); + config.setMargin(1); + config.setImg(new File(path)); + config.setRatio(8); + QrCodeUtil.generate( + url, //二维码内容 + config,//附带logo + FileUtil.newFile(QR_CODE_PATH + type + ".jpg")//写出到的文件 + ); + } + /** * The code to close current page and open the first page */ diff --git a/src/main/java/com/app/flight/controller/PaymentController.java b/src/main/java/com/app/flight/controller/PaymentController.java index 925a0b6..4ba1d36 100644 --- a/src/main/java/com/app/flight/controller/PaymentController.java +++ b/src/main/java/com/app/flight/controller/PaymentController.java @@ -29,7 +29,7 @@ public class PaymentController { - private static final String QR_CODE_PATH = "src/main/resources/com/app/flight/image/QR_Code/QR.jpg"; + private static final String QR_CODE_PATH = "src/main/resources/com/app/flight/image/QR_Code/"; private static final String PAYPAL_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/PaypalLogo.png"; private static final String PAYPAL_SITE = "https://www.paypal.com/ph/signin"; private static final String ALIPAY_IMAGE_PATH = "src/main/resources/com/app/flight/image/QR_Code/AlipayLogo.png"; @@ -60,7 +60,7 @@ private void generateQRCode(String url, String path) { QrCodeUtil.generate( url, //二维码内容 config,//附带logo - FileUtil.newFile(QR_CODE_PATH)//写出到的文件 + FileUtil.newFile(QR_CODE_PATH + "QR.jpg")//写出到的文件 ); } diff --git a/src/main/java/com/app/flight/controller/PrintTagsController.java b/src/main/java/com/app/flight/controller/PrintTagsController.java index 1fa2979..c9021b0 100644 --- a/src/main/java/com/app/flight/controller/PrintTagsController.java +++ b/src/main/java/com/app/flight/controller/PrintTagsController.java @@ -42,6 +42,9 @@ public void nextClick(ActionEvent actionEvent) { try { FXMLLoader fxmlLoader = new FinishController().getLoader(); stage.setScene(new Scene(fxmlLoader.load(), 1200, 800)); + FinishController finishController = fxmlLoader.getController(); + finishController.generateQRCode(FinishController.TAG_TXT, FinishController.TAG_IMAGE_PATH, "Tag"); + finishController.generateQRCode(FinishController.BOARDING_TXT, FinishController.BOARDING_IMAGE_PATH, "BoardingPass"); } catch (IOException e) { e.printStackTrace(); } diff --git a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv index 12e1c79..f0b7ba8 100644 --- a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv +++ b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv @@ -74,3 +74,4 @@ passenger,flight,seatNo,food 123456,MH1234,1D,HALAL 123456,MH8633,6E,VEGETARIAN 123456,MH8633,5A,VEGETARIAN +123456,MH8633,6F,VEGETARIAN diff --git a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv index a3eaa43..6652708 100644 --- a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv +++ b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv @@ -4,7 +4,7 @@ false,false,false,false,false,false false,false,false,false,false,false false,false,false,false,false,false false,false,false,false,false,false -true,false,false,false,false,true +true,false,false,false,false,false true,true,false,false,true,true true,true,false,true,true,true true,true,false,true,true,true diff --git a/src/main/resources/com/app/flight/data/json/BoardingPass.json b/src/main/resources/com/app/flight/data/json/BoardingPass.json index 54c9081..6832dd1 100644 --- a/src/main/resources/com/app/flight/data/json/BoardingPass.json +++ b/src/main/resources/com/app/flight/data/json/BoardingPass.json @@ -15,7 +15,7 @@ "departureTime": "2022-05-11T09:55:00", "arrivalTime": "2022-05-11T12:55:00" }, - "seatNo": "5A", + "seatNo": "6F", "food": { "foodName": "VEGETARIAN", "foodPrice": 20.0 diff --git a/src/main/resources/com/app/flight/data/json/Seat.json b/src/main/resources/com/app/flight/data/json/Seat.json index 5590cf8..1b3a605 100644 --- a/src/main/resources/com/app/flight/data/json/Seat.json +++ b/src/main/resources/com/app/flight/data/json/Seat.json @@ -1,5 +1,5 @@ { "flightId": "MH8633", - "column": "A", - "row": "5" + "column": "F", + "row": "6" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt index e88a21f..c929d59 100644 --- a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt +++ b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt @@ -5,7 +5,7 @@ | DATE: 11 SEPTEMBER |. | FLIGHT: MH8633 |. | NAME: Jun Test |. - | SEAT: 1A |. + | SEAT: 6F |. | GATE: B8 |. | BD TIME: 07:05 |. | DEST: Hainan |. diff --git a/src/main/resources/com/app/flight/fxml/Finished.fxml b/src/main/resources/com/app/flight/fxml/Finished.fxml index 25e39e7..65a8be7 100644 --- a/src/main/resources/com/app/flight/fxml/Finished.fxml +++ b/src/main/resources/com/app/flight/fxml/Finished.fxml @@ -2,11 +2,10 @@ - - + - @@ -108,43 +107,71 @@ - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + - + diff --git a/src/main/resources/com/app/flight/image/QR_Code/BoardingPassQR.jpg b/src/main/resources/com/app/flight/image/QR_Code/BoardingPassQR.jpg index e2dc888804bb4e1c4df22fb33ff76aacb35e745c..3a8df01ad2e89cfa55a6242b7115530400db371c 100644 GIT binary patch delta 59507 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 diff --git a/src/main/resources/com/app/flight/image/QR_Code/TagQR.jpg b/src/main/resources/com/app/flight/image/QR_Code/TagQR.jpg index 219adf00e7ae8670defd7755e410a20d4603885f..01dbc294567ec5c6c1ca012e7874063eaedf8c55 100644 GIT binary patch delta 40321 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 delta 37000 zcmb?@c|26#`}m!qC|jE%%MhX@6{5)GU6Fc=R!XQSN=PMSxgwP8lWvx1SBX(bAtOX6 zln}BL*~dD}7{7C8GkU*2pYP|7-|JPc>)dmm=REs)&Nmm?u1=phF!IvD^& z*`{Do_=V^^C=TYdoO$3syL4t|cQe@%bq6|eoOXuuV43bz{jkZ_@_3!#- z%Y!+xeb#wA#g6X23T~1$9X#7Pb$PL0J0JgU<@v@j>j-5*m zL%4JL*{%kVvn9c0>TIFGQ`|nqv;Y=8Tz12nk%@;PB_^s~Ch;f_?C{6d3g-#5%AAZ_ zxf~W@MlYwyY5kkV0VgPj?3p;xrdM?{wN{O>Xu_j<~k3zEuWta$ieh$G*a{fbemIo%u91CT3 zum$vgx0u`jQNpwHv6L{Y3oeNN2Y|{O#q~ zKT|ABOP@8kSz)mebM-NV%F-Uw2pB?Tdks@TbM54h7IXb!i<>21w#w!oWxoNE+n zIkRLiC4<`OT;fsVVRFt4NN7Krf1na)A!C7p2S?(wJzR`41~3c{Amo~bIfU(@Y&3IJ z%0bNFj*)*bY@Ep~0O4wJ%w*O|P%*RQG7G`-9A+rtkj2FmOK5B(O6ZqBBF&Ho&RQRyhbeJ~kBRnE}DES_1Zfu32Z za|FkbAIc_5Hy7AHT1+As${@mj#50E1vS>o_aF1oTPJEmo0B5mr!~-aqiwdA%Sukt#|MUVK3$s>SUO=SRFfjtdV_`^>iO2QTPM5U zbb9?6Z9^rv8ZsE_D}W3?T=^Xb2^kB})((YT|GKhj@7|s$ifR2H7{l&0vqobfBnU7dli%UiJSWvArvDebVyuAghDlY9e1d6I#&_02cn(G4?D zM-*uWl6X-&1FfKWJ*(G9r^~(-1%T zn8OV{)XT41%NCvtk~U~6 zaxdO-B;85W&8q0m#e%2jjvNay5O!oA?7pkk{EZk}rKRS>@g4@imVvUpRz% z@E6*DeU-a$IJL}X)Y?ZAV|mkRxw%_du_e#jHyP$|zpdd$S-0~8elJg&rONM+sn^qf z*HEkYEXA+LdqZHG)%B`_@2c7}$*Y5Bpx-Kv4^G|r@p)1H`JUNg{k9AwIP1MRnhzy7xtynUW0X3iJ@xF0|Oz}mcJC>pfI#0Ky$ z+rNF@GUimGL-Ww7Sn%^e6D5H4mVp4BdH*gH$rx)aHw-|Jnbbzq!Q1_D*-*+<*7B0~ls-5;thDQ%n^68(R_Q9H`BPFJ34e#vBra=0nTY&i+|~ zI2vKaV93z&B$-q+VYy`J@#dKG!+Oupg?=sGbm6Q1efQwRG|y5#=eOZ{*zEV3g;~OB z7iy*~GoLo^duH({Bg@ci{q~ZDhDE!@Cqz5o^w1D@*9YBMIcsuj@{gW+nB0|!1D)mXPzTNLd z?gL&|ff>l??;uH@(NBEj`yxrY$`ubAXj`hAkC`8t-?TGr#o|ExS-U!GC4NP3!;Xvd zjiIGhxMRnfj+a@CE^~W?fw9P<4maA3Xw3}87ZeQxZ zD^vsLyJ~E7UKo7Qeaf{JDTuWStXF=tXT64bYO?!=X9}wBmWza_nM0D`-&sHv)QG<~v0F};YvB1HD1pjF31BJs|VKv zv(tf>U;xpF3oV#@mIe+f+>>)5X2L(rMVA?FvgR?~5HwBK$W75sQt~zQoLdtFe+Hz= z6nl6{;F?E1J0}cW%_Q6MbW(p<5#BmTuU?DsXywZ{)Y+k#R}@V+DUl_%dU&nw$98PM`LEO-C1uRbbyW+7Li{PFg%ZOH9knx zzqe-g)tz*CUZIP$Em(KHG1I_7ff#39F%;OeKss8y_<*tcwA#4+*R~NjBS+86CC(kT z@mCoiD|dCOaJ*Y2a-95?CPRr<4Nb2*@1kVka%P)>3RUhSE$vbJExokHMf*g6hqm~DobaaX2m!&czk?=CTM$}QzW}`n zKN`OWnyNLfIFNIVQ{*^RGU^@|n30u(_Y(u^hYSxEkuA=tNA%;)3S58N**^hcIXb-VHKewrg{S zqMpaV%w!=2&PzBmY^+GLj3&jF-e_2XAJVk=RgS@~G1vX}b;JYHVxcKZN1 zvg}?RBx$SDMF_FRVSRAGJGWqN5cb=PVN3}x?WJHJA=AUJDo3+Jj1RsGtuJrXEK?rc zPb*P`FeUPsNc-Z;#Cp8p+nQf~2fnRWQLjOkPwZ|pI9%#uV@&-W`fYa$)M)HEVrRA7 zTgqbB=}TGVbUE>L!ql??;;zr+e(5i4xa4=O0(a&?^(;mx>Swmqr#Yd?n$M)K- z-~WAb1#I}1_xzh0{Vig+jVG>|*>v#yp0;e*MS0Ys-5`WF4c)8#-DJJPjY~^?Un`x~ z@fH60;KPSvzL?2`{M^+w^u=!V!^*LSV#Qek4fDf`UbmbUla!7YO!kXXl+>{6rDMsY zeEXVOb?Q6aVhR71A-BReBa=rC>GrR`z{+$JFE>U}7eiPwg5sO%#-ndJa zYVEj1CFG9B`(se6~-6A){^vvXeltNBNRI!?^n?_a*J>0_$;WvgpV5@f^3!2`e!xY4#8I)V`CbQL6cp;9GcVJo5Y5y zn+IU``A;s$QKwA`ACFV(WG)p6tA+FHZlYOiy=B}A>j?dPo~rz2cuJf{z{gvx&LJ3dW^gg?U-%NW|6F9 zlKo&|1bHQzh=Qb$0R+!u;FyJ)&28BUCwusu43jHWWhJDnjF^$1vgSl_m9&clW!{lq zP?;n5P$E|Q#^vngS-FOrH_qpExEZ>=Kt)z1qB8hI2c^-=gRI@^f`qBhK)OG6*r)7- z0)7wkJgfLb>907xWMi>7FHd2bvV8{@-oMLz1}bWvl;1iyoei?}otH7)fC$lvX^4?y zTR|phstq1|AgkWRdHK)Q>_~=4I2ceEG{0x{&qV?6f|%(wd(Q8n=wYd&fPh>pV0yxD2`=J@|`G4>4seaq&`u5aIg9BP8Qgcm+P+eRPigm zvc~n)$u~90AL`Upmp&DiJ0&97E>ymyJ!Y~tUwVCQt~ljh=kC?P9SY<3E+*q*-e1TI zP7>@i7Z)E`z}LTW1Rpd5EqqA+@}g&@En)t9{=-KV&MZ*3#>*B%v^pWbD!$O|d}mw3 zmj3o$U)fqcdXv`RuBmm}QCd-IfAJY{++CS)J#A64t)GrzTLkO}9~CxuPKkZYk_>zdP0s4|dKY2#1;q)WAeytV) z1-SF{k5w|SsW!Qn=_Yu!E0Ux83I1aH2|kksXZK9~Dj z+)Auu+PM1e*r|Q~qOCKKm^avx0D1~^#leQ>X5hxAW_`H5xkep7QdLa~yg!-Sg7vhf zCy=v+HO{auO2vzE@A7Lt+I>sgpzZPjFSxn z7t8E!5Bckbk{E=^gPemRS%(;eE&6NF2XY4C`t|_s{;fp#)fr zm4kyX<`HWzNt9+c6c&*DDKpo|a*S~Kg4u3)%aD*^ktlsrz9d1v^q|o_0006S0?LCJ z`y-$>kdoaOLH9an-@ml5AT0yd2)0dHmYHOTM z^bKk@94x@rd>E4g+)PSXB(PwZeSieu6pZ-+I)HsH9>&HG9l*fFqyuD#|Ne%_&%c5E zft4i^uGs)a7BEYn;6y`G-d!%!0bs;wK8#`(qKgtrV9Re z%~3uVC~G#Bl9}ehWdNw~81u4a&9On4i$5-VL78T%8-Q_)g)=jQM5b_95=U*GHTzsz zSS>&j%j{8DCM~FX!4=jVVWGV&3*kVrHNttpumV;Kgvmcpu%yqW1g1QIaR3^bV&~8T zvxs5$u;*gYJ4*_euvvW!Cb$*N;*5ivn@>O^mm#4fGn+8m%(%tJ!Y~)n|J7n5>P3x* z;~XrC(8nCp;6xKD%(3#hgV5O+Vq*%1VUHa3bBUHE&$%*3fjRTBop{#wX1S-*VOBRs zj+h@ z7Qh_Nb_=wR#Soh>wpFl)fcG2{n63#-0fbQoLKZwafN3C%_zQaf-8z^uVg?8{3n+?N z1#oC&P5VFC#;l_N78aX@mvY!AKYX*iG zIEv!Pf`xY$Jq4a!X1Gicl^N3;7*@lgkp(uZzyI`tHJ)Sl+|+XP$W%PcFjg>1`z{12* z#B7Th!8qZrcUGCRM1j$>dS@g6Kqg@QV+YW=;`!q}H`}Zj$6yj=p6x5MhK5E+hFCZX zpu zb)lqmgY}>Bob~Qmv?xCe7CD~7@NAB~Fr_#f062~SfY3e$EGKF(VjNp(tVu!q;Zh4W}TqV7YB+XueLvd%n(fy#u%G>0l6TJS*b$YU75Sat*o#~wn|;d>L_(z z^z+7#r``GLP8x3(my}EC++MJ@&}Nao+bW-}LWl=1b~X0BF(PV+k-;8sCbX(6tu~v1 z=IO3-OZwQfDJQj7!z!b`I5DR*!8S-oD{_PIe!cGEk^3UMk<@UE^pRTJ3?$gzG6PL5 zuuqtv~ug!2eho_=8?O9;Q99u_W6G$sBxMq^W6q><48{+dbQlO+q=O zT2QU>i;P^HMc?NfFw#j`qSb!jbKgD) zx@f3#Dnm6#vCU{x`Q9=>Z_k@Mui8DU>I_$|-_5g5f4<>79&opxe#aUkEpsR)-v3dr zx9RwsC~LT*tBh)qwKq+xT$3lb z${C2P@d`1*VWkIk(j{ zaLl|+BKfa2506-nHS(c$_4=nTpWr_&brXDaJARxm~T0^OK$xSJYlF zJF9ZW?rw_ShqZb|+qK3;e<$$kAd?u3%u?KVC|aeGI0OASf}a*uf!z3zi71Q=CIR^? z9%CSP9nN=c7nxc)RzVZ{G6Q|w4{l_egYn(=wfG@x%^674A`r=J#VBD0k?6fxB@4*& z6}UT8@<#6tlZo_@V^i>)Yt+dl{HwFx1~oOUSsib>K+^g7nJbDAv_(FC<1wUZDS36Y ztwQGv1lZndM$SFk_c&yQJm!uZkNh=CC7(O8q8K9!=f+m4tKfEyz^^YSNr-4m+t#Uk zQ=ycrr3CiGYs>d09g6bph{NW^*$~1mS*`Z8N=>WMU1Pub%JT4I$BH}72k;l#z4P64 z;nB57LmJk;mS8cXi2bn+(dz<-iaxsXens(XGctpknhUc&Z`gTFE>wH+@c!+2(0ufi znkqtHWXv}MRX%?(1GQw~=&K(m6vc~XyuH)ZUYMn>R@f;Yx|b3aaqR=|@=r44pfLJU z5<0vV9bSZ^ul3P_Z_$?yHAN3)9?eM|qDP%|!9~2bTlXlWR;@@F5h=#3!M=AwNJp?r zigEZ>UUJ~{LQp0q@N@=hv*YQVfhc-9z(xOh8aM;_cEgmI$tooHHbzbX3kC$yn`WTv zM7liQo{Fy{Wx!uO`{U1mf11`8yQDNljv=4UfbyjK!obt{uG2K1(^S3^RcZJq7LA5o zgE1aT9ajp6frh|cEydJ%2I5!r1I12%% zpv%$% z&uAe8Jz0j7#4c`HfD7?_j`yVx&1(<1^5Q;AYxk)JF^Gh|nF(Lb#%qME^`00at1biS(NLLSeplmV0j;a`^SA?bdFM zvhFdyYwKOKK7PI>7P^^#<=^4=(kjyLRM_h z-?!|-CPRFPYXZ(wgJ`e2_0`*NqegqC=2gk*N7ht#nlznHsou zY12prxJ1cZv7}gVv8=m%gzpO_ad|=>bSVa!T*_S#F;#Kk+vUbHjSgc*y5FYeUFeni zuDmwjgE;1z`1}uYy1#M;8HNV`)6n{+)&BZAYOG0B-191Ro+9)1z28+-?^|qA2a)aQAC3^xh^MIH1Zuqb~ z@nS@=6z#>cheset0>Tt2$0B@!SZQo75ivQBQR4B@)IoC1Fp}8Z^GGuR1UejI1U!vr zdd(K{>{pMb$7xq`9Mi;i$XeT8`?KlzaQyAP5k#Nb%kY+`; z4H(1wXMMRBcmvrXiWOBDuJAebCianA&s6)N?<(s~IBeQ^bp2Da+nKS8^VV%I$7qeK zW8NXDpD?o6mw3c04y>}(h_MJ(0jvBH*-602@@~g%HbZ_K!ARpzQ`WnuFxb9n6XSll z%r??cEKOVNcBElPr27{`ueJ)I-$>-qW{TgQ^sF$6*7$L)#)}y70~a^(<3l{pBBjw7 zDFsZWn<|LuS>)Ql08!sx9c@`Ck-XjjvVt~XJ^f~{b^F}=C>1XynbTb71d zTfRdK9Wb&y_k{-$IZMEzD}wYCVsKVpG>=rd#9n#(ZA@Tqw`i&QowRi?B%qckd0Spd zkD$c=&I#mswtcs32D$czLw{SS*sAXX2ejHvUIZzefOveMcF{2_L|YfDh%9`75yeO& z13xfQ>!2(DYch2ek9;-7tj2k^TAy@(-eh2V^6a+8@6mOFi=(Ad7ijG-$>XJq_Ti9s zwHO7x+nA22`0SVVXyTOQ#Y~(E%Fx7VDI;-O9ouH%p`U5*rE32DLrSapQ`ii>2`whQ#jUP>L>=fK`NM=Z{rFQ>GFQ@0fYih?Yy5Gs% zFJGDaO;Zj!)H1w@zt<8+UfPm)Q^%tH{odoL@8NHtYIpdJ{O~79hntH!_&@a|zPB^; zv>$5rOYe0O=-GViWoEs)Vd76ir)3TjhWv|P{bj@ZeC>tZd{X|9dy)T8W|5^hSvZ>5 zGo@LV{$=EXFv>hybxN2$9;>Bh*4 zx-&)uy37LD{=1Ir3?x5NNE%<5H3NM$vRY&^zc_%V@{*FhKeAv)8r9;vvv{=5_b`5b z-p)@_X5KD+V4Fi~D~Hd)`5rUSlCXX&92O!f7EY;Sqt*=*h_%UBcZU zX?Sfyh^OdtH<6=(d#e@GW858TT8~xN-ClF%xKwH4mK_b>a$_k9fYrdiW}wWlX{AV? ztzip({5%^kRN1F0H$0Ghnd)}ND6iioWQSm=F#k5?Um*gmPQf{9ZBlAh)uT>nXJbzP zG|ePTzgRK+AfzDM!F1h)7yBUjb|3qiF{iM7xuRb)V*A&(8`m83P`;_sVb^-&xy`A^ z!JmXTZJT!`UK>sF+pMVbEa2{^_XVeyqGn|9Qt$EatrhjEiH)5f$Bz=ORIhWlfi5iQ zs6lRR#;jWML3L8Oe#LYS{97k#3{(Sw70*KrBX9Q1)8MNH?v}S~W-U#`X*%htdA-W* zv_Z4YpHl`*&p$Dvy_WqX)IyHTjM%Koc2HiNUALMHkNFR40K~8Wot|0SAKu+HRtf-bBKVP-f0h^!dqhV zf*u9P*j$Sf*>5>PSX-sUTaJbqRU$@aXDpeR@8FSlRekHz=dMq`@Ma1)CfUoS&0qV4 z@NStkzsJ;JJeHh7X{xax?u{AADz} zbkcbCvo^I&Uh!r_K0f;_w)Yf_5W{s;TC*!wxP?~jNR8wlNXhJT|8ZSne_V%;@vd!2 z-N;*S%qkcvn0`w7bp%)P3gAy!*?6bN;K({rbGdUHiX>gf?h6x&nih~(6gsVF zb|dD;z~cco;m+xp-ttfts+?IvM+6)dASHH@@9$BfBI(uJDh-KPflsvTq@$MNgbUgh zhJu^4v}8t!X>=)y<4C?PZ`Eb(Ntwu=+AmE*8 z$4T$MJ&o8riI^R&rzDgaz zU%^O-^3brV3ypVor*TF|& zj)SUB%_rmf9pj@qa6^xCWx?L^J;*CTu^8=QZWy_?&NsA=(`zUtq}4)h@7t=eJMpEZ67DOtPOUwP|QF&(>@E*OwM|M(CA>>h;$6=oHYGA%*y<6{O)S%`;HwVX&B8 zm)5RQ?~SE?5h%;ZxcMuZUW=&@T43!n3BK$YC8i*{S1^()Il%1OtpaG)iN`5c`(9U{ z%B?x&rQ5Xk#v`*D!)qaXBV=XuPDWz1`s{eRLI`UfNLgl!P!3ov0s+htxJLs_-(nGP zbEw^nV)#<8J;eK0QPK7_Q8bWitVdw{c7FYtw5mi8MSjUIxuJyv%qnA6)!3kEt(j8 z;f=TxG13aqXqa!pVjbmH-25gp`xs)~`p4g;PaCI|tu`qZ<5POu07S8d-NF4J%$Hm*zF zxf_E=_G)1iFb|NK{a8i)F8T(riqmCaYuKj2YR5PZ|CxGhRTqo|JDj1n_J&qJABt@& z_iMo~Y&?7Q$gVwgdJ zbZXyyt@^$|nI&7F4<46JM%T2>X!|lv@(fT*;=2}vdA7Nea$o$BO`#2G?@8~1t>4?yHc?_hRdN^gAYB1h zk8>I(b#|53rNLC8xWVz?79iU;bSF3OC*;$WLIt!X%tG%+o(-}N|MXZNvuTBdv$At= zhp^XGf?my1HL}PJ`c^>twKfSabEe7PxGlVYp=9B3`4PP2E zy$c1h#er`H#|#M}L+QYLUIGc*4T`~)nqVhSS_+fv!Cr4pvIi^*2P}+e$FQ)+!=_(B zu0jK+q6@*TRLxZ8xN8HgH{;E4&J3h1Zs1T?-~6*^V^i+#q0F1AI&y8=Mi=w7+{0r_$FLgAm~4MWnB`Iyd57mIe=upD*Z=K5{9c ztw^iuvyK26XGVd+abjPry?Ab8=VXGt!TIxz!49YClfCiPJ#-0ps4=0~Ypd}xw}*y( zgUP42UNv~SAyjSUH5vKck^`TU%bk6+#vtMhBm}iNm{uWG}2*}+gkSEGmIrxXC1M1=_ ztj}wXUNz2BUD#d!CG@$|GkcY7QH8FHUlMj6dcEOnRJL6dT=#n<506K(uoIxBlGm(>T5MCrvpC^(?4~;YtG#AGkN+$l~gxRo~|T% zk?DV}wKv3^>I!08gSoqv&B&$e`i=K`r)kzwNnzy70DLPlaup+iof;%e|G*)p!I(wZ z?NUgVK5+2bz^_)jC`ii+|I1Eb&+#Pp!OQgVBL|P`zcyNY;FG_PR)qCm(za8Y9))(@#55 zJ!YVKjZdCHci=Xbr=WIa=J?ThWF=|{OaNl$=0r=Qi`-q@$JMLQ^kcMsj$7d zS;06?t&F;AYnS)Wu1lH|e1E$p#V@3!5#2=eWA}dRSFgK&r!_@9<OcfDBy4{Dn;J!yLd0!Gy^+W98&q;0`HXV(7}fOKl-rCl24C>fam_a2rqvd308G z{w`tO6HyBK+hy9{5;q{NyD+%b5csGxEEqSGs6TkmChbC0`n6YdM+5f2yy09?D%HF)SQC6@{oitAy0@VVg`$QkhD_@i2P z;;!1gcfXq+QPRk^mf*lA`7+2>LBe-F5@f5IX9O*3dF-DRExIz6GSb=%+})zZNb@); z6l{)j8h>NM{m!TOL6KLL2DeLt;~;@5`XVCb3BFa5>NKuM+v{CDKBx+p55uk`+dEgf z9GwZl?W@z(RqNWROAEK2Nd{}U@x5`0w<(^)zUl07Er)j_!fL^`^K*6-!^0-Dy?|wN z;`GXDutE9Sgl2E=CxxFfumG(HGc#l^MdIAI-T$STwXYDGhqJ|kqo z%Ho&VG3!0gPD=|ecY5GkV<&4!-ENM6v#F2Bw$V&~d zgQ)%t7Z|t|(643TrqQe=w35#X4LYlFWIRo_X;E%1y%_BNCgHaup6?qTAEN%yD(V~U zw{${??=dDAn6Z4}{pdy&^ryJ~X6of(oiOTTw(GtAkoO}W!BfB#`97IG~-T#n!Mj6#>z2c4^?h+rmWm1!yloDqYg9}(JN_&ogs6}5%3POl{I ziYBM#+eMx~t#Ji$BVg?pESrH2y3!BAREMiwzB!^#DGZ(nj9h`rH+*WzvVLr&ZHK$gZoJ$=dK#lRy7$nBrCibfzvh5H~G6-mx&i$3J$9H zbKy@R7LuSG0tsK{< z-LAvNQpvTk?^{lQ6XTyJ!VL~fCFLN$dBL^|>;sWK!x-FRV94Cb3y1>zVHjDBlVEL< z0=Jj*yWxp8C%X1_X>hllAPDD6wF*e_^rM+~G!-n(WsO<-a5jOFcy}Udqadgr4+O_= z;HX~W!3@-VlSJwN7e^ZPMsxI2ZXRfkuHCme66EM_27ma!>EaVFQuDI}aa}-@z5+)x zv8uz>;p$1l)8h&0?v|#5r0PDSy5aHZ*5IzVQ}3&eRGqB3Y~R1W^|6_%Lq}%BBbfsm zObbCLL5512&F|95?5R^CpHGVK79XI5Jc!ZC?{h%*s9$dV*DXXYPuu-bahRF zlX^wEQ2E#A*4Oe%6rZd>uYjbnrlm;p3Q#Iy!uMk=A-Oxo^~R|C=)Ggj{ma$*M^-hJ zWZTb|e9n6j(^8FJX{c#C*p<4QStX$J>HFKi>r^`>rXEcN(aAy zuxtGh9ceZ6+eP45PU1{f<9t zKXT;SEvCEta!%VOx>*i*2^Se{Q}l4yw8KGSw@t*}s4(c&!bjUKJo*NTJ_yoFaXewf zBqXdFvlad&!p#q0$AZt-)1giEMw9BRp~Rpuk$xet^ZHCRA`&Fc$MwIdR;)}C+`6VE z^zLtP?(=Vj86Q;y7=;<;rj_bRXko^%XKaJOWwbCOsKEj{8Fhw_FMRjlc1cie-~}(; zM=@;e^@8(2_EmT6-pBg7y}IKGm)C`MUMW3l@MWdswfL>W_Jumes9cKsNDWhgAmWfp zrawFPH-tD*aI%WFUa~Uaz92QJeA6#Zpkzxkw*?v1b|KwoL3exn#8QbkP#s<3{Ig!dMSm}{@%Fgn3Vso z>|e(k&n+MNoM7YQs2{OI@cO4uich?Zk0V=kLBJ7h!}04JZ8I`%yAxsyw+S5?s4>QS zsx_6Y+AI?u{2Uz6-3thOF&$ZBv~9HwRp-Fz&ym=RJ;u9mQRm$hKj=zPLRtlIq7h>}ZBn%M<^EU{4A6XOxHEgf32P(`(s#Z{NmCtBT}8eCHG7mDUwYZ7QyL?^~2# z@poD%v$|&FwV2%EhaHj3Vl6u!kZ$=a42{tJ2Wj`-g0w5DZ6)&A5~H-CdTdC3=@)xv z(T_Q=cj)Ys-XeGEWw5Xw??rx{Up~6P0Ox{rA?}|raxn#Rl4&iiUqkF=}q+JDtg_xRoWyzH*#Bc&X;EA0ESb5 zWFSA10=~lkYl6P-CrmCK0WOBn&m>U6=~R97!S+EggGBL>%~O`*na|Dg>TMjEcjRAg zvoFb^GUU}ftRk#jHLB{LD@4`|O#cF#e$B0V-g70wvdMV-IpIspPT~HH<4R>4wIED9 zM7*O)9MsS*QB@u2%FZH4{EFWp_Xgrw=dJ~bipxF)!1%RF)3QQ`{1viMapFWkPlCwmH@SGsmrKL;6eFuwVC8uL9zyDn33hEU^7jhtYJ;oz|FKA5 zJ8qp7SVpdfd||A^--(Q6xbTjaq+sOLBgp3|jMTEIar~c^1crpZ{@qwN1Ekp;EYrj^ zv=#)DLue(-^G<%t3PYm8FgQ#Ecgczj?=sA9Z-R8h8W~S=TbYEHTG6pi|2S`pjU1W*pPO|B(^zJ^5FQ)xhUX`vsMAg~fnkOUq(C=$lmnD(9 z39JxRV8fh1J@(%3A4?P5o=Dqo^#eZ?1Q!PO!**2TanmW)due42q_Uzu$Md#N+k3Y! z*F~JPu`*b5X_OZ%P-JQaIK(zZY?ooBm){owiCC+lrw%B)@Bl|6j(AF^TL5xT5~C<9 zI-20y71NuSEB*HE9m7QA?>C?j?UvfBn}+i7hKg}DIJ6>V4W^86VY3qE6H+!GtH=X> zK>%rf2<~Lx7ZOSo2_QYgUzg_nPLp`h++=6TO3=pN6?NHtf0gGc7`g81;jsTPQ^}D- z-t&X=e&`iK4#(iIE~AJ<0yt%>Lhi<5q?6*ojQWC2Bo)~k@b7At4>a- zez;&{-(n?V{&SbS+Q+Bn@)4h&92MJn-&aJ&uSoggTOir;mPh$c9taM< zA7^td!P#mnoIj`du=WR1xf?5W+Ef)}hncNijFND0qyb98Ra=%5p4&Ce%gwA-r)G;c z9E_;Zes*lNa_7!XJdks^zE_A_BKWlt<$C6?jp(?5D{b1rM{e2sBEc%3L$!E$@h+pl z0+K(Ow@u93rIm1R-6{O>;<;De$L8@lJ(au(fZl9eShR#ae0^f!ud$~d5kWcQZ=_y*}A}c zd5x#Vvyzh!>ZVhAw1Pj!pEJ15i@n$({1U$vDkdiWvF4ikxFvkhT{Yxd2WJA;d^Mc} z6R6!CjhPa;?UL3P$Hs_e;D7boNG#N2p0Pid2$ft8x;^#wXP$F1PD57FRl4y+wF*l9X^{1PuPUx zS5o5%$+zX?Kj{8nm94d=NJ}k74og%*P9|bx7WK?PX{xj@`0?K}P{uPJYXn|`HC~b| zQm;+lBb@+#j0}89GI~Cv7HMk*c~{{dh3)n|@N&1bf~$#sE?>0wk>^Lbd$}b3)N^uh z@{o))lG87J7PMepVK^iiX`h;!izX}f)Gaz7S&6i>Ix7+3v-X0!IIj!whK{0_(^I#y z9i$urxO4|U-Wokl$XLE>-Gwb$&?s7Oq1TFEayDT*DEb5EJdDpnCaJ&TOLu?0#OrhV zMqY`Gw?+?)yL@l&(IJ(PTqLovd0$o>$j|b>rCP1sAGvI4aJbrl@?*jRcN~1)jqq`+ z=Jm_ngJWeCuaA`|`CFB`Z|Ybwf6>yf#+~5&k*Z^Ntmq~OJFd`7&G0vAYc9vTexuAaX3%qy)gTW9cRiF9LK!^C%nMVXQn3yl|24EBdI zt9j)AVqRrOVoJBJkvc>_gc&iI6Mwls6JqiU?E1SAK6{KbrUWT*#%w^QBQbKDI`Cj;qI5NI z+V?TonY=P3Q4)%pq!>|hOoSOEqvg>c*%pTeNlBp|Y9 zFtSU*?#XTt?4IChe``P^_-R%=YOM0|Y5(VH=AMW|;4w10#(-=rNFsRVc|#aobGy{8 ziCa3FPc0464b<9iJvvSS9zWV$KJlJ5{PanNu3_~Lu1pY1P)8y2(#%ta+?1GTZdKQ9 zc{=&Kp}Ok$+xZ=R%tZi%)w_cF6I&-)dJtatY2ag4Zeek zv*jZ`Ao3H!zsl~krU{TU13jgt-%pdCd4Xz4+hO>UeC(UaSdO?Kj;Su`-l~z`&=b=X zYppHg658{7)v0%KG8_5Cd2N5xenvjUgBs;)t(|#XOnu+S z=S+yAQK5aNWmGCETF^2rv5-Qu~g>v~?#{V&qI&Ybi6eSe?N`|~+O8#EzJk@`?ylf7<;c{*RhWp`>{ zky~z@mHB!7N|iuE$?&AyBQ=rT2EyOTZ|;I2Pka=|Fsm@*A#`&vt4`2!7OaFgj8Zwn zhDll7Mpj`Nau2+nQ_08i1FwiMpi^%6i8t!|#SA5N6hYS^U{!Z*>NrscSP?+}@4kj8 zqWQ)%5gjYupA3qqUJhS~&M^I0$lf3{)75Fu1BPXw4X1k1c^~SY`EvL(y`JDtUdF0x zE1JuS9W*YwSFm66`c(ZbStqW(;^|3C+#KjVP|Z1*8mjxa@}#SK*5_^G%7 zN2kyFC0*`~;y0Q{=J@33>D19+X87M6jGqjQaJ{2oPgv?&;GK`msYNv-yg$O8EpQ+m z#Y{>~-ASnrOUjKFU8syL8o zm*O(**CJL;F!~RCpH1J<1l4IYVFcx(2`7#cki^VgrgZCQl`jk)v1=3y~qE(^#&|Z)edj z*I=Bwa~F%;2D=wnQ{xx@B%HUy^Hbw7LD=5wh>S)7>Bm3xrU>YRx?VIiR)(wVe-hRX zWa9F=?H{rOWo4W$pX5=bgoQl`M6v~|Xm*Lg*^`d{-t%YDm~$APRS2haB-rJ{xp#460rBu5>lzZA!A zt{_U9g;H8mz*plM1h}sT6Uqn;Y&BK?o_es=ykhEm8^YIGp4R7kmmkz-=b&nl{6?(3 zz~Y44jlEk_r4DJ`k?bt@-1!ny2u3Ixb%w)~a;NVsic9D;i&FU|>#Tp%rHrXp&QhOX z2W`7v)VBrD2ADk$00ED6`5`jWuK>UL3$8E=6Zc1Cd58sXvDr>UXaut9jA!1wOa?)Ha`6plXz$Oc#M$igpggS zgvlGDSqH7oBT5^Rgpl&xkl7u|M%y-{rL(8vrCn#Oqw;6cwVw^#Zk zHlSYc=p2N#&(3Mn_@Eqk!E(+n=aW9~<*<5_$6y4T`7>R7gbCa(8|f%av-W>cg0j+kM?lsSKgF(~;lAr`g0t%1>Ac@7$QLd4z3%Lbl1x{2{K}5K& zBUYFOtGse0mKp*9=YU{LV-%6m-2qptfYt`jX4E#0U}Y8xXu-3b0Vj_U-4vaP!{b5D z{@N~LVr45Ki1m|1e-yiV1A;(0SmJs_VWBBoqi$*g?dw*!8rI1B5bU@;k+M&^%$M0;Fv31^^dOBI?yrn`?Q(Nf>Q&hCIQuv`Jb&naaQxWN4x$vs9zy(x9l_WK zBSfCM%dO}>ZM-G&ft~_K&{JWcHlZ=7s6pbPr%_&3XLQG!vh_hIMj1e)H(T+h2YQwS zq!2a5bhoshlFrY{J=xn!{=Lk6R`j~?cxl5NLG3jaW*u)(VK`qKOko^B%Td*SIJLQQ zYNlZE(UI^EIy@4$EIY|h>M&Na1(BDaeDOfXz-$JFsPRVpN3`X2WB%Yl_rYX>8fGs} zT+8EDrH@&KAQTfXjuw8{nHP6@@Bs`kW?-)}RVOIBN3;fFwhaayUDKF+sfVZAQmD`B zlfF{Tn1x^bu7Uz^8qW}l9bOU+nN^T(F?V5i9Ej4S#hyQ+N>$hv4S)j)6MU^46_)bW z;qK$m8N1@JnM>5z3bD*f=QbSkd(x2ZgGm**`II%|x~k4okp=)qag9`Ug6xUq`9`H2 z<`r#9zH|ppb~9HFwc$E=Y}>fpa^}H()7&yV1i&rRac;S$a(0M(T|UMLL?pJF4{Nu3 zvQ<3$i&$q-m#L$#;ptD&4x38pU!k7ek`WB-4cx`l5i1x1(o?=EDG|PQl#@fEW=A z6F@=tSbk1?6pkXUYVPLu!SKxh2b{cW-) zbLa0`BC{Ehc6pS6V#j(wG+S((7>>wc-*^!PDpTd}@)6r9_#G*O?8e^DLS$sY_Bj$J z=|)+o56-@iGwFQ@IQt%-E=^{|+-~`x=haYvwe}(MGO)nybNYG#9ROj`Z9DG(XiiH> zmN+$re$(1X_(s7V-9jX-AL-e33?BD&-#7W44R5!YX2V5qO|#)UQ+`AQ>6A=PC8aS; z=G~YlYePs%j>AizPSoXdeZfoj%HLN-cdTB7oWj(CATRfUjaBs^66Sqn{}mTFTo1bp zWIi-Wv$>EB5M*2&V{jVBD16cByaFJb#>wBybgB)=sZI+62RR!kkiu2=`;(Biv#=$T z40kK<5x|x4KnQq~*YH3{g|?0m1VX@@1aSfz=s~2m)|@7R$OrpF5t-@=hT6K zXSgkbwOZQm_DnvciucvuQ9@%_wB zEEftdWC$$mfyD#+XZUv3-)N=5^l0?y04oyoJrc*<4t^w;@L69rWYJK|v5#XJg_G{1 zB%TlGURP|%>BA}#OG4kS%3ac=xR0W;Urk_j?+ZA+LYgLzHkUQHwW^<*Y+>i5>|F8W zag)%R7X*Ry!*o?A1`@GMW~BVIiu-7#m|Nl!udn_ObB{k$yWZ}9<$1A*r2;|VK4OW5 zd_^RMYw)3WH$L=|IQYjacdNq^;t?(M`4FH?`Z|3p1D#3*i(Q=E1m6j5Qs3w;w&>&& zd7}=Gr5@@@M=F`B!$$#ogKue40zyxCT!jOnCy1-$L!0(QrTusYX~yNY8RRGoSw@C9 zk2?)a;fhtuN6t61@y}(0k4n}w6oe}BwDT#y(buG~>`aE@qSN~|bZ8)C+_?HG+3f|k z(rn&KAgS1Qsu|8EGEl}%IRS7seaBEH7tV&kW-o-ea9p| z=8vByQsM5TX25S~3Z@lXo=jF64v1!|O#3LkgDY>;w?pJFn&+%lusXYkSTq0=%gUUo z0+=?$M_{YjQJ2q~w&_~0|Am897KiHQ*KNsD+xgq=M-mPuYDaT2f+;`#z|qzlB}II! zyy6_}Th}=VagFgFcN!2XKPFga@KjC8mg9?baFz`(?S=_HAk(RQRsh{j`zoIi&Xmtn zxDq?oj8#P<(z0EgW&1A#MC!}+HEd>hjvp4)O}k#4j$`R5T*3^#I1q)zy$F zz^6?67KjwUlqq+m8-*!zJEyfbc5DEKy{m;}lp8v1%c0I){d{ckSPE#ZAQj_Ma5+f9 z>FAOW=^^>^txevXN+WIr^HeIV)Bd?-rJMO%TaQ3W=V&QSoNeAdDB#c&Fuv2;KgUix zU(ig_-OnpxkKFCp8p}5Ai2E(%z}paORKOl95f|}1TKgV51C2Zf^iqJn8jfoL=Iz+F zDeXy5v;lp924%k}Yf5%})v*j|$%6>UE4@@9pb5X%Z zy~2KC^d|eSi3*wlc^LCl2B_?CGvj(m+Wy+L4tZu(JM79K>}L4e%~ZqH1Q(tvy2y|P z$6VkzpvaVOTb2fvpVn7p4Q?Dxe7xHw^ZNpHqh4BP%bs0nOIIEud@>-%{Zc3dNBpC3 zq*w|;NEXVf0r7gpzhAM%*gR{ITvZq!Ytv;GX~#wDH=oBK=Gl}{?{O7ko&d65;exD> z8INlyRBhY{DRo>ie2!~`WY+5G;YP@owrBC--cckI+9im4XPyKzOaRNWf+-`pXlU>m zmb_v}{^Il#;pj1X#LVy^-7wr-Z&3hK8yk@T&Cr`+aTA=j16X+pOfmyl3>gj^A&;>` zj)=ItL-~)N7dF?+By{GnvCts1gt0(_JX^E8iuWdFX@Z!_-e9nt%bLN}X(+m@iR+av zmnMG)Q%5K4TavSn?-(eb_^&1s#Ibt#q-dbRDc|?Lo{JAa=n%dK$Jf)}L+AJJ;d)>r z{BJCu_Q^rMz-?BX%4!weqU@bt)n8_ZxXFclQC5GMM>hWyd#?AJ$kUcNtcw807v1S; zaeX(YW5)DUn6!S;^;(wKzaewc-rti5gi7e;|NRGQat@rpVrx%evC@dVuwx1k@D||D z@wa@{@q+C`IR!H?1WsT-59L|1L^ezChG}~o{|mj&v3F^ffn!=iCUU#>Q0G3Csy`J} zp=L=w$5!V?q?xP@u;mwJX@y>#RK_#XpIf>-D|D}wslOW==p<8Fr`nk!uGQ}$KGiVb ze0Jll@xZi_aDz4LdDAErcYe8m3uj!x%OqRO%LG|Uyk3YE7b5bADemQC?`IR05mU_4 z6u!x;3`)PERvu}Fp=rhYY!Q9;P|muy`KH4Z^EZBO=zZJD?x1+jJxvcqcK>n4RGPdX z*c1!rfrALoYfwV}j@fS)LP;av9a8Amqnq zuuW_Ah1`T$6oZFZkKby%RxI3@(=)g#C~B#DshBnUjhg6|CsM(+=udECP#BiFo=Br0 zy%!!{6v$3^O^G29x#y^R1d}Mn_Sli*a6b6-lp(lK77B=puH;i%Z#=VH z9GF)|PZaNhV6g4z#QAOg!={l!CdeO(dZHX(E8hGq>qCM%EN8QBe=2vBd6Y9$o2?<# z7oaK`|9-KQIqZ13Yx&I&zpc*iWybZ*DQ(I|9iE*yt{jorZdGK$FsQBn` zq{@y1EytMi^d8!C6TQjv3VNw>%TI*Co^NvGc8lxIy+w?V^|to93rlks?Q1w`6rHWU zS~9^hcw|lYg}!#X(|8MteSU&j>G}6b(;X-QDL|bw-MG~G)#19TFz8h}?j8b7G0>~j zQw8)Ww^wPy^QTLpR|!x9MV@>n4PPkHf2ZhjXFiJbmz24x{iBspJ2g9}K0xmdZju>_ zuh?~FepV}P6B7Dv$JyEj1_2o2M>Ce?kcoSqb^erlXm$)k8r)P zBrD@P`Y@K?<%qv%h%$0&)lnGHgru_KJbM@3QA?V-3Bf01N$;C6w-G9P;>Iy#DT zSg&8XNhjbOR``>ZNq!}yorH(m4~k7bGb_`Z6kTZT9&*T`?I^z!lA%Qf=TEBXypo+X&;Cb)I-Q|7T4 z+p=T7l$3nSXi7g{ud!sSSxkgs334=IE?ap;pgi8H*S<_9Sz#H~d)amq-dPKSW|7qm zB*^>`5=?m9n%fn-A{;i?Q)Ac9=k~@0O2?`@!2$bUw6XOxZv3py(4JO0$^Y82%_Dod z-6+}Q`L5{a1E)F^__!8wICS&;Ul>Jm8_RG<@w)q-Qcm^xJ%4zfR}ZqQbjukq%3~29`)k?F4ygb!zhR zm2lrm`9`;%h5yP|+5G6Ej z=Hdlk+Rwf|ey2q3ToTuo5-I+WdD(UQ+U++yKYrDIxTJShwa59z4|546O0NV+((%pt z9j(`t0mn#w&Q8)K#sv7mcN-x)C|3HUX80Ht%;rODJc@Zw6> zhJcfrb~+LcM(zBE-455w#fsLN*sQZMuptl#tqAU>%^1Zr$7sjcJK73Vi*w1BZbFG0 zcJLx1i6sdTwS+P|W}4bx%CTi<5i$xE%?y#tnqD33dCC_ih>Xz!Pke%asDLj_5JwUg zF>qW*@$!7V|60-38}$ECv=tnA8p;u9b3WlRAx7UB3Nm4#k$H<3~RV_W+iZ>0) zV7&4u!0hD864i-%C}a2<1&g8*h0)jSZO|<-%`PO&Tan@K87K;YC;MGzNG4J@c?Kr` zGgj6HrwD(x?ssJ^lg4WDCC`G;>%U)!%p~A3bciL*x=)*gNH0_cUlu58$4XV_u;SXv zGOqSwUtQpxe)PNO&jzFR-*tOjo=^Mh!Wht^1T+hD+7u!)HAs^7=-vYXBJPJ5Nr;D5 z-IJZuv~Vv)!$WOzVDIyExZ!_*@gEPnv}qM|R4(4xcfp|Is*;bvUt&`o?;2s($MPp*PtxEbC^#PcjgfNj$zwN_`!2f`-l2`9P0iT6C7xz9$o zeWiO1sdC|}@riLx>NxE|XbL275mS82+PI zUpQn(RS0jJU52Xl{dd=s?dl$Fe-I;Pbas95hd!UPdIidP*wI^vhHj-f)Vuh)No{S~ z1KGNcM=^T{YILh7l0vJF_U*5Epy=x^K56}Ehd94-&3-3NHbX~hSd;E0oM37f#;-01l7UUfSNn(&@`!AoxCiO}P6q5iinn?cn=3`sppq6&r4@Zl1vh4#4|F<{ zmyR^Y;+Z2@78WvrPyjD4!fpYZqV{UZ5^eG1H22*ul=FUmO2&L1JU&^-^g8nC*U$7D S)^30(994Xoqxcf(Kl?vu3%v>e From 4de8da275070eefd0208a722830fd3722ca69d03 Mon Sep 17 00:00:00 2001 From: HH <693906439@qq.com> Date: Thu, 12 May 2022 18:01:49 +0800 Subject: [PATCH 22/39] 5.12 update pages --- .../com/app/flight/data/csv/BoardingPass.csv | 1 + .../data/csv/flightSeat/MH8633_2022-05-11.csv | 2 +- .../app/flight/data/json/BoardingPass.json | 6 +++--- .../com/app/flight/data/json/Food.json | 4 ++-- .../com/app/flight/data/json/Seat.json | 4 ++-- .../com/app/flight/data/json/Type.json | 2 +- .../app/flight/data/printer/BoardingPass.txt | 2 +- .../com/app/flight/fxml/Finished.fxml | 8 ++++---- .../com/app/flight/fxml/Payment.fxml | 2 +- .../flight/image/QR_Code/BoardingPassQR.jpg | Bin 155589 -> 155815 bytes .../com/app/flight/image/QR_Code/QR.jpg | Bin 147006 -> 147006 bytes src/test/java/utilTest/CsvTest.java | 4 ++-- 12 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv index d97b1bc..6534624 100644 --- a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv +++ b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv @@ -100,3 +100,4 @@ passenger,flight,seatNo,food 123456,MH1234,2E,HALAL 123456,MH1234,4F,HALAL 123456,MH8633,7F,VEGETARIAN +123456,MH8633,8D,HALAL diff --git a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv index 49eb838..b9afc61 100644 --- a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv +++ b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv @@ -6,7 +6,7 @@ false,false,false,false,false,false false,false,false,false,false,false false,false,false,false,false,false true,false,false,false,false,false -true,false,false,true,false,false +true,false,false,false,false,false true,true,false,false,true,true true,true,false,true,true,true true,true,false,true,true,true diff --git a/src/main/resources/com/app/flight/data/json/BoardingPass.json b/src/main/resources/com/app/flight/data/json/BoardingPass.json index c911302..86574e7 100644 --- a/src/main/resources/com/app/flight/data/json/BoardingPass.json +++ b/src/main/resources/com/app/flight/data/json/BoardingPass.json @@ -15,9 +15,9 @@ "departureTime": "2022-05-11T09:55:00", "arrivalTime": "2022-05-11T12:55:00" }, - "seatNo": "7F", + "seatNo": "8D", "food": { - "foodName": "VEGETARIAN", - "foodPrice": 20.0 + "foodName": "HALAL", + "foodPrice": 50.0 } } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Food.json b/src/main/resources/com/app/flight/data/json/Food.json index c22fd79..28da2a6 100644 --- a/src/main/resources/com/app/flight/data/json/Food.json +++ b/src/main/resources/com/app/flight/data/json/Food.json @@ -1,4 +1,4 @@ { - "foodName": "VEGETARIAN", - "foodPrice": 20.0 + "foodName": "HALAL", + "foodPrice": 50.0 } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Seat.json b/src/main/resources/com/app/flight/data/json/Seat.json index 3b6181a..b25f4e8 100644 --- a/src/main/resources/com/app/flight/data/json/Seat.json +++ b/src/main/resources/com/app/flight/data/json/Seat.json @@ -1,5 +1,5 @@ { "flightId": "MH8633", - "column": "F", - "row": "7" + "column": "D", + "row": "8" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Type.json b/src/main/resources/com/app/flight/data/json/Type.json index 504e942..20090b0 100644 --- a/src/main/resources/com/app/flight/data/json/Type.json +++ b/src/main/resources/com/app/flight/data/json/Type.json @@ -1,3 +1,3 @@ { - "type": "alipay" + "type": "paypal" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt index 3d4bbe6..85abc65 100644 --- a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt +++ b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt @@ -5,7 +5,7 @@ | DATE: 11 SEPTEMBER |. | FLIGHT: MH8633 |. | NAME: Jun Test |. - | SEAT: 7F |. + | SEAT: 8D |. | GATE: B8 |. | BD TIME: 07:05 |. | DEST: Hainan |. diff --git a/src/main/resources/com/app/flight/fxml/Finished.fxml b/src/main/resources/com/app/flight/fxml/Finished.fxml index 4567823..40cae2f 100644 --- a/src/main/resources/com/app/flight/fxml/Finished.fxml +++ b/src/main/resources/com/app/flight/fxml/Finished.fxml @@ -176,23 +176,23 @@ + layoutY="90.0" pickOnBounds="true" preserveRatio="true"> - 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 diff --git a/src/main/resources/com/app/flight/image/QR_Code/QR.jpg b/src/main/resources/com/app/flight/image/QR_Code/QR.jpg index 4c65e617a9f98b717a8f605f65e2f812a3e51d48..7ba1fe4624f12dadcd7225e7a8035de48d14d16e 100644 GIT binary patch delta 34518 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 IL5#Nj7u1AjSO5S3 delta 34447 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 diff --git a/src/test/java/utilTest/CsvTest.java b/src/test/java/utilTest/CsvTest.java index 5f3237f..ed6f20b 100644 --- a/src/test/java/utilTest/CsvTest.java +++ b/src/test/java/utilTest/CsvTest.java @@ -30,7 +30,7 @@ public void addCsvTest() { passenger.setTelephone("13104368848"); passenger.setAge(22); Csv.addCsv(passenger, Csv.PASSENGER_CSV_PATH, true); - assertEquals(passenger, ); + //assertEquals(passenger, ); flight = new Flight(); flight.setFlightId("MH1234"); @@ -51,7 +51,7 @@ public void addCsvTest() { reservation.setCheckedBaggageNum(0); reservation.setHandBaggageNum(1); reservation.setMealsAvailable(true); - reservation.setSeatLevel(Reservation.seatClass.FIRST_CLASS); + //reservation.setSeatLevel(Reservation.seatClass.FIRST_CLASS); reservation.setFlight(flight); Csv.addCsv(reservation, Csv.RESERVATION_CSV_PATH, true); assertEquals(reservation, Csv.addCsv(reservation, Csv.RESERVATION_CSV_PATH, true)); From bbffa6a05b691706dc6c5a506f0da6b2bc82d220 Mon Sep 17 00:00:00 2001 From: HH <693906439@qq.com> Date: Thu, 12 May 2022 18:27:36 +0800 Subject: [PATCH 23/39] 5.12 update code color --- src/main/java/com/app/flight/Main.java | 2 +- .../com/app/flight/data/csv/BoardingPass.csv | 1 + .../data/csv/flightSeat/MH8633_2022-05-11.csv | 2 +- .../app/flight/data/json/BoardingPass.json | 2 +- .../com/app/flight/data/json/Seat.json | 4 ++-- .../com/app/flight/data/json/Type.json | 2 +- .../app/flight/data/printer/BoardingPass.txt | 2 +- .../com/app/flight/fxml/Finished.fxml | 2 +- .../com/app/flight/fxml/Payment.fxml | 2 +- .../flight/image/QR_Code/BoardingPassLogo.png | Bin 14828 -> 25583 bytes .../flight/image/QR_Code/BoardingPassQR.jpg | Bin 155815 -> 155933 bytes .../com/app/flight/image/QR_Code/QR.jpg | Bin 147006 -> 147006 bytes .../com/app/flight/image/QR_Code/TagLogo.png | Bin 26734 -> 40095 bytes .../com/app/flight/image/QR_Code/TagQR.jpg | Bin 155668 -> 155668 bytes 14 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/app/flight/Main.java b/src/main/java/com/app/flight/Main.java index 6881361..7fef2a5 100644 --- a/src/main/java/com/app/flight/Main.java +++ b/src/main/java/com/app/flight/Main.java @@ -22,7 +22,7 @@ public static void main(String[] args) { @Override public void start(Stage stage) throws IOException { - FXMLLoader fxmlLoader = new FXMLLoader(Main.class.getResource("fxml/SelectLanguage.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(Main.class.getResource("fxml/Payment.fxml")); Scene scene = new Scene(fxmlLoader.load(), 1200, 800); stage.setTitle("Welcome!"); stage.getIcons().add(new Image(String.valueOf(Main.class.getResource("ico/OneworldLogo.png")))); diff --git a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv index 6534624..6ba2e6b 100644 --- a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv +++ b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv @@ -101,3 +101,4 @@ passenger,flight,seatNo,food 123456,MH1234,4F,HALAL 123456,MH8633,7F,VEGETARIAN 123456,MH8633,8D,HALAL +123456,MH8633,9E,HALAL diff --git a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv index b9afc61..594e7b5 100644 --- a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv +++ b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv @@ -7,7 +7,7 @@ false,false,false,false,false,false false,false,false,false,false,false true,false,false,false,false,false true,false,false,false,false,false -true,true,false,false,true,true +true,true,false,false,false,true true,true,false,true,true,true true,true,false,true,true,true true,true,false,true,true,true diff --git a/src/main/resources/com/app/flight/data/json/BoardingPass.json b/src/main/resources/com/app/flight/data/json/BoardingPass.json index 86574e7..97d5582 100644 --- a/src/main/resources/com/app/flight/data/json/BoardingPass.json +++ b/src/main/resources/com/app/flight/data/json/BoardingPass.json @@ -15,7 +15,7 @@ "departureTime": "2022-05-11T09:55:00", "arrivalTime": "2022-05-11T12:55:00" }, - "seatNo": "8D", + "seatNo": "9E", "food": { "foodName": "HALAL", "foodPrice": 50.0 diff --git a/src/main/resources/com/app/flight/data/json/Seat.json b/src/main/resources/com/app/flight/data/json/Seat.json index b25f4e8..9bafcec 100644 --- a/src/main/resources/com/app/flight/data/json/Seat.json +++ b/src/main/resources/com/app/flight/data/json/Seat.json @@ -1,5 +1,5 @@ { "flightId": "MH8633", - "column": "D", - "row": "8" + "column": "E", + "row": "9" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Type.json b/src/main/resources/com/app/flight/data/json/Type.json index 20090b0..e7597bf 100644 --- a/src/main/resources/com/app/flight/data/json/Type.json +++ b/src/main/resources/com/app/flight/data/json/Type.json @@ -1,3 +1,3 @@ { - "type": "paypal" + "type": "alipay" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt index 85abc65..e4af694 100644 --- a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt +++ b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt @@ -5,7 +5,7 @@ | DATE: 11 SEPTEMBER |. | FLIGHT: MH8633 |. | NAME: Jun Test |. - | SEAT: 8D |. + | SEAT: 9E |. | GATE: B8 |. | BD TIME: 07:05 |. | DEST: Hainan |. diff --git a/src/main/resources/com/app/flight/fxml/Finished.fxml b/src/main/resources/com/app/flight/fxml/Finished.fxml index 40cae2f..6759075 100644 --- a/src/main/resources/com/app/flight/fxml/Finished.fxml +++ b/src/main/resources/com/app/flight/fxml/Finished.fxml @@ -202,7 +202,7 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/com/app/flight/image/QR_Code/BoardingPassQR.jpg b/src/main/resources/com/app/flight/image/QR_Code/BoardingPassQR.jpg index 4fd16a64c9a0ff908db68ac394d1a16678e72403..0aaea4e50e3c576f44cb3958a7253dae206cd0fd 100644 GIT binary patch delta 6997 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 VG~tIm9@kpRKtC#sb5)_7;X~QUOQF=l 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 From b6c0c04cad44e5d1c9682ba433a43c856107d43f Mon Sep 17 00:00:00 2001 From: HH <693906439@qq.com> Date: Fri, 13 May 2022 19:07:17 +0800 Subject: [PATCH 35/39] 4.5 version --- README.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 760c2c0..e12cd55 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,18 @@ Coming soon… ## Iteration logs -### 4.0 Beta (May 8, 2022) The Latest version +### 4.5 Beta (May 13, 2022) The Latest version + +- Updated the seat price and get the price in Payment page. +- Updated the pay QR code. +- Added the boarding pass code and tag code in the last page. +- Fixed the bugs in implements. +- Improved the pages design. +- Fixed the bugs of codes and selecting seat. +- Updated validators. +- Added test units. + +### 4.0 Beta (May 8, 2022) - Several bugs fixed and new features added in this release. - Separated printing function and created scanning function. From c2df6efc3879c55242b101b7c085defcbda6bb9a Mon Sep 17 00:00:00 2001 From: Lian Junhong <194668285@qq.com> Date: Fri, 13 May 2022 21:05:02 +0800 Subject: [PATCH 36/39] add surname function reduce Code Redundancy --- .../app/flight/controller/HelpController.java | 2 +- .../flight/controller/RetrieveController.java | 3 +- .../controller/SelectSeatController.java | 30 +++++++++--------- .../com/app/flight/data/csv/BoardingPass.csv | 1 + .../data/csv/flightSeat/MH8633_2022-05-11.csv | 2 +- .../app/flight/data/json/BoardingPass.json | 6 ++-- .../com/app/flight/data/json/Food.json | 4 +-- .../com/app/flight/data/json/Seat.json | 6 ++-- .../com/app/flight/data/json/Type.json | 2 +- .../app/flight/data/printer/BoardingPass.txt | 2 +- .../com/app/flight/data/printer/Tag.txt | 2 +- .../flight/image/QR_Code/BoardingPassQR.jpg | Bin 155933 -> 155933 bytes .../com/app/flight/image/QR_Code/TagQR.jpg | Bin 155668 -> 155668 bytes 13 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/app/flight/controller/HelpController.java b/src/main/java/com/app/flight/controller/HelpController.java index 4178a81..9356765 100644 --- a/src/main/java/com/app/flight/controller/HelpController.java +++ b/src/main/java/com/app/flight/controller/HelpController.java @@ -100,7 +100,7 @@ public void backButton(ActionEvent actionEvent) { Map> seatMap = getSeatMap.lookupSeatMap(flightId); SelectSeatController selectSeatController = fxmlLoader.getController(); selectSeatController.flightId = flightId; - selectSeatController.showSeatMap(seatMap, selectSeatController); + selectSeatController.showSeatMap(seatMap); } case "InputNumberController" -> { fxmlLoader = new InputNumberController().getLoader(); diff --git a/src/main/java/com/app/flight/controller/RetrieveController.java b/src/main/java/com/app/flight/controller/RetrieveController.java index 0f93db8..934a637 100644 --- a/src/main/java/com/app/flight/controller/RetrieveController.java +++ b/src/main/java/com/app/flight/controller/RetrieveController.java @@ -137,11 +137,10 @@ public void nextClick(ActionEvent actionEvent) { String flightId = selectedRow.getFlight().getFlightId(); FXMLLoader fxmlLoader = new SelectSeatController().getLoader(); stage.setScene(new Scene(fxmlLoader.load(), 1200, 800)); - stage.setTitle("Please Select Your SeatUtil"); Map> seatMap = getSeatMap.lookupSeatMap(flightId); SelectSeatController selectSeatController = fxmlLoader.getController(); selectSeatController.flightId = flightId; - selectSeatController.showSeatMap(seatMap, selectSeatController); + selectSeatController.showSeatMap(seatMap); } } catch (IOException e) { diff --git a/src/main/java/com/app/flight/controller/SelectSeatController.java b/src/main/java/com/app/flight/controller/SelectSeatController.java index 091d84a..029211a 100644 --- a/src/main/java/com/app/flight/controller/SelectSeatController.java +++ b/src/main/java/com/app/flight/controller/SelectSeatController.java @@ -97,7 +97,7 @@ public void start(Stage stage, Map> seatMap, Strin FXMLLoader fxmlLoader = new FXMLLoader(Main.class.getResource("fxml/SelectSeat.fxml")); SelectSeatController selectSeatController = fxmlLoader.getController(); selectSeatController.flightId = flightId; - selectSeatController.showSeatMap(seatMap, selectSeatController); + selectSeatController.showSeatMap(seatMap); Scene scene = new Scene(fxmlLoader.load(), 1200, 800); stage.setTitle("Please Select Your SeatUtil"); @@ -105,12 +105,12 @@ public void start(Stage stage, Map> seatMap, Strin stage.show(); } - public void showSeatMap(Map> seatMap, SelectSeatController selectSeatController) { + public void showSeatMap(Map> seatMap) { for (Map.Entry> rowMap : seatMap.entrySet()) { - selectSeatController.gridPane.getRowConstraints().add(new RowConstraints(70, 70, 70)); + this.gridPane.getRowConstraints().add(new RowConstraints(70, 70, 70)); Text rowText = new Text(String.valueOf(rowMap.getKey())); - selectSeatController.gridPane.add(rowText, 0, rowMap.getKey() - 1); + this.gridPane.add(rowText, 0, rowMap.getKey() - 1); GridPane.setMargin(rowText, new Insets(24)); for (Map.Entry seats : rowMap.getValue().entrySet()) { Button button = new Button(rowMap.getKey() + seats.getKey()); @@ -120,17 +120,17 @@ public void showSeatMap(Map> seatMap, SelectSeatCo //selectSeatController.choiceButton = button; button.setOnAction(actionEvent -> { - selectSeatController.previousChoiceButton = selectSeatController.choiceButton; - selectSeatController.choiceButton = button; - selectSeatController.previousChoiceRow = selectSeatController.choiceRow; - selectSeatController.choiceRow = rowMap.getKey(); - if (selectSeatController.previousChoiceButton != null) { - selectSeatController.previousChoiceButton.setStyle(getSeatButtonColor(selectSeatController.previousChoiceRow)); + this.previousChoiceButton = this.choiceButton; + this.choiceButton = button; + this.previousChoiceRow = this.choiceRow; + this.choiceRow = rowMap.getKey(); + if (this.previousChoiceButton != null) { + this.previousChoiceButton.setStyle(getSeatButtonColor(this.previousChoiceRow)); } - selectSeatController.choiceRow = rowMap.getKey(); - selectSeatController.choiceColumn = String.valueOf(seats.getKey()); - selectSeatController.choiceButton = button; - selectSeatController.choicePrice = getSeatPrice(selectSeatController.choiceRow); + this.choiceRow = rowMap.getKey(); + this.choiceColumn = String.valueOf(seats.getKey()); + this.choiceButton = button; + this.choicePrice = getSeatPrice(this.choiceRow); button.setStyle("-fx-background-color: #008ef3"); }); } else { @@ -143,7 +143,7 @@ public void showSeatMap(Map> seatMap, SelectSeatCo alert.showAndWait(); }); } - selectSeatController.gridPane.add(button, DataParser.stringToNo(seats.getKey()), rowMap.getKey() - 1); + this.gridPane.add(button, DataParser.stringToNo(seats.getKey()), rowMap.getKey() - 1); GridPane.setMargin(button, new Insets(18)); } } diff --git a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv index 6c3e752..fa3aa2c 100644 --- a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv +++ b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv @@ -131,3 +131,4 @@ passenger,flight,seatNo,food 123456,MH8633,2E,VEGETARIAN 123456,MH1234,3A,VEGETARIAN 123456,MH8633,3E,HALAL +123456,MH8633,2F,VEGETARIAN diff --git a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv index 49ede95..4a7e6ed 100644 --- a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv +++ b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv @@ -1,6 +1,6 @@ A,B,C,D,E,F true,true,true,true,true,true -true,true,true,false,false,true +true,true,true,false,false,false true,true,true,false,false,true true,true,true,true,true,true true,true,true,true,true,true diff --git a/src/main/resources/com/app/flight/data/json/BoardingPass.json b/src/main/resources/com/app/flight/data/json/BoardingPass.json index 4ae8f95..7428469 100644 --- a/src/main/resources/com/app/flight/data/json/BoardingPass.json +++ b/src/main/resources/com/app/flight/data/json/BoardingPass.json @@ -15,9 +15,9 @@ "departureTime": "2022-05-11T09:55:00", "arrivalTime": "2022-05-11T12:55:00" }, - "seatNo": "3E", + "seatNo": "2F", "food": { - "foodName": "HALAL", - "foodPrice": 50.0 + "foodName": "VEGETARIAN", + "foodPrice": 20.0 } } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Food.json b/src/main/resources/com/app/flight/data/json/Food.json index 28da2a6..c22fd79 100644 --- a/src/main/resources/com/app/flight/data/json/Food.json +++ b/src/main/resources/com/app/flight/data/json/Food.json @@ -1,4 +1,4 @@ { - "foodName": "HALAL", - "foodPrice": 50.0 + "foodName": "VEGETARIAN", + "foodPrice": 20.0 } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Seat.json b/src/main/resources/com/app/flight/data/json/Seat.json index d8d7796..f322487 100644 --- a/src/main/resources/com/app/flight/data/json/Seat.json +++ b/src/main/resources/com/app/flight/data/json/Seat.json @@ -1,6 +1,6 @@ { "flightId": "MH8633", - "column": "E", - "row": "3", - "price": "200.0" + "column": "F", + "row": "2", + "price": "400.0" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/json/Type.json b/src/main/resources/com/app/flight/data/json/Type.json index 39ce37b..e7597bf 100644 --- a/src/main/resources/com/app/flight/data/json/Type.json +++ b/src/main/resources/com/app/flight/data/json/Type.json @@ -1,3 +1,3 @@ { - "type": "id" + "type": "alipay" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt index 75171a8..013f122 100644 --- a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt +++ b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt @@ -5,7 +5,7 @@ | DATE: 11 SEPTEMBER |. | FLIGHT: MH8633 |. | NAME: Jun Test |. - | SEAT: 3E |. + | SEAT: 2F |. | GATE: B8 |. | BD TIME: 07:05 |. | DEST: Hainan |. diff --git a/src/main/resources/com/app/flight/data/printer/Tag.txt b/src/main/resources/com/app/flight/data/printer/Tag.txt index 85ace73..32752d2 100644 --- a/src/main/resources/com/app/flight/data/printer/Tag.txt +++ b/src/main/resources/com/app/flight/data/printer/Tag.txt @@ -6,7 +6,7 @@ _______________________________________ / \ \. | | |. \__| |. - | NO.71 |. + | NO.72 |. | COUNTER: B8 |. | CHECKED BAGGAGE: 1 |. | |. diff --git a/src/main/resources/com/app/flight/image/QR_Code/BoardingPassQR.jpg b/src/main/resources/com/app/flight/image/QR_Code/BoardingPassQR.jpg index 0aaea4e50e3c576f44cb3958a7253dae206cd0fd..3812daf801f37e529490aee9bc4ce04dccfe752c 100644 GIT binary patch delta 7518 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 Dt^D~} delta 7579 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 diff --git a/src/main/resources/com/app/flight/image/QR_Code/TagQR.jpg b/src/main/resources/com/app/flight/image/QR_Code/TagQR.jpg index 7f5a2bee153b1f3e1647bcc7d004fb4bcb76d241..935b5c31c964b7659e45bcfbd125982b5428e888 100644 GIT binary patch delta 29816 zcmb@vd0dQb`#*kNGc6>BYSKRKrLm@HUv#%ii&AMNZY`*gc9SBcMV%NzrA7NHr8(j4o7)`yw6r=9&=sfpS*~@6y6hShdb~zt2}C2o7-LOb#eBa9rQ*j&lh(c z^5J{DqN8x+(pUCT;W39>_)(adNE+ee(bIb+ZH^!0ywpZN!fSKDENlW zAp?SWl+Lph`luJ_p6|>>bbLBtAJrg{r+A6$e*uhyxA|Gs>VE zk#<0v_UY~xcoFVqwZuo*MMR|O$aNh$uKY5(qmcG7kbR^Vy9hJvA`+*!$RX1wGKbnO zs%(i0&az({#d@iP%C**+S1!WlWE`89x~_d5rH1mwRLyt}an8>F$F~ojE9(tD5cMBfi+Tw4alL-~O6wUsihuXxPZ+fQ)N@~-v17C5xiIP^20_ydpQ zcBxi-E3NKqxy!kyhO&DQ+|=XaKy`V{7%#`Tui~tZ&vlU?P`&819Ov}$XK5W35`Y-g4< zrjD0KNF;oj9@?298Nc_O#HxZ-A=^){7^zzO-i1#h(IkfMI>tVS)NO?qQ@(Nzp|y2s zx{iI94WRrCO_@XL@3h9$vA?B$2tvhhV`NZK5<<f3J+Lm$EC({w03!JNzrPq8qQT>{*tkwS+e|+paMA>|6~q1 zHC8!?OehXe=$p>WArUDH9$qsIBY(T$vgzb^L?h zaMf1cFEt8WL%th?Vhi^B$lqpJRmlSHBRPZv7$=j=Y<(u?5NyXve#LfdPU5tj95POz zYpd;de2kX$=*F)I?V;|7AOAP$DOvubBjcX4SF5tJ>oG? zEQ{oTYw(_PU&w+@5!}?)jVM8ZamQVTUGXhFc7bP8!~L$O#y(540;*_)p}{B&0Ftu0-(@_s0@@|w< zCqD+x&!w>!+vWu6cSMqvbJVLjKfCp=(DR!_jv4d4i znw2ie?;Q)jCoEWTf2)Awxm$1Fv|V>?(A?dYy50K4#jZ<8uc%NU2lBn4m;mFS4vc@N z4^bxETQx1T)mn;H+1tI8++5Y&8@EO7Sw-JUebF#@abv|G;k<-8LhFRPjB5^gyK5L; zVd2rqDa}(eGTo&+D~m-^GUybelCt8)(f$VyAKZyHl#Wf=b>O(@<-LZI35JTd!8Q{q zG!w+!A%UbWGWcm_ii<$N=ZK@=mWmWu5ycIJC6s}9S0Jd6=avjU)9ZAqjS!=F#mB^A z%p%+`x8=jGmOrfI_^-(v+4RQ#+eDrxcvHI-gzYqSYOPwhmGiacknm{QnVzOxq>IQ0cQP{!_#>W#MKf zQO`-ETOI500|Deu1Q`0^&ff|*MmaZy*7kXpJIJ=R#J?vycZ21<#yz2AnFqTHqngjN z>sG!W*>py|R2KhEHu=tsai&R%pS5-Kx|S^oFJ5?@ZP7Bi{Ks0flAT{9IYdzwMAu7g z)LgW_M|U;dYVo-?YSHatJ9b#|L97dl?18;ioN?Y@$o&TR!%Y=!rwT}-BtC1n2RM7N zjl0w%@!KqER#A(z(cDRwS|Nc-#K}vevY^~la!rVOTnS|g#p?K)Yp)~B&LOYokm~G5bd&LGj^m_=yh6B3OyZXwOn|#Y|4&W_L75}6)hoYEBoX$3 zB|STo$zinor#ILu0$!;&X1ZmXsNEm-%JmSCKfU&4*u$oN*}wp6xKEY~V++VOocOJW zG^?s5QmO0pD~n_Ia$3x~U|}RkndPskCQWeF%^_nmoipx_sLv0f;&^1r2sn0IQt~{j z%M=@f*i&?}+%Gu1W+_^BINLqq6<_w29iPl2#l{BhNlZu&31H-!f1{i19**e^Rpq20 zat__vx?yzU=l%nwcj7y?#PNlOACp^Jb*fjUuJz4D#JYW!1$(I7`9D~9Ly(x3f0hiA zq`3e|j7RVjp-pwxNF)*Bw+x634&Fn1Cm6WaT7kNZ7Zt>XtcjC64<2Rmg7=#osos33 z6#5*LTT9`3CqT5gBq+0%<{4x91$m)&W~fo`Q6aPt@SQjO*D2mA7ldoR_d&46x>exT zO}AfpSiUN)4obq#d0BM#JKGB{Gd=l`IkpbQ^(!X9(I?SMx zIe+aUMX9-U+vVfv;T@e-#R@Q{+NXNgP`EeWJ{N+pJ(r|K0HbGXK~pm~@aj>5&u_bg zY)&amBrBr4utWkQ<1;Lg7+lFSc*dz+t<68B00Y!BSw++uY!Q$_Q84(PBm+bK5*e7F zEMbCjfO~|Sk)V|3kmqVmnj>VH*@%eJ&=Myqg$pOWrc{C%=7gxhfWGj&1ywp3gK24L zV(TfGYkCROM8(>f)h3Koqp3@c;J}IC_SAt@+%kY9D21=rwWnTtfePc3IDCL_syDbK zBMh{OGC*^M6v*dOks(x`P#Dk6KN+O%>D}WXz~9rj4ko|ybGCecB!w>92O$jNd(m1G zRBV#~?(K5mV7u(EmyE3+b45a%o-~aqzJD!;K2+Un+_Y{(l7qa0+qyq(Ew^4Wg zW{J`_;>Tm?2V#MY)IzKx*E)yju0xIyK{s)`6f>~TPGa5xD2)|pU)c)*urjDy!~K8p zLF&}YINWMLciV*uftVNKtcrE!TK|vltg)Yk*mcW&nqB)-p^bl>l!#X3$VhTV*b%f^ z&PX?iF{viUe+*yVbcPW7WRmLPMMNh81gq!kqEUL0->3sDNLa^))-AXF}mGQP{ln#uU~n-{2<_JC~ClCDreJHOn~ zo@hRCt=JlY)0So%5qt>J3xCv%?Z1GFbYQlbm(nwb2#l(j!gBXRl)hs3ibG9~3N7>JH*=V!tY!7@(S z^phi=G`kE!n;wt8g?OcX0Nc0Z0cPtzjm+E zTTwUpZK1Ec8`lPVG=T6t2}w4`YY@cgJ@AOy@JHjp1N&qf7*I^~Ur4Me8N#69Tz*~~ z%6O=s=Im(`!W_a1GYakh$6owv9|I$I3A}8s5g5fAf)*BI5HY$6^s}g7Ur}H1_Mw>J zrLR(paxLTp{xfDNBqu_&0%|cdClpNr3WM`)xs4k|4%#b~@+`M+1s1;=%et9hN z1y9O-y_TKVlg5S}l`((<(*@fA)m`z43_?Daa~^o^8Y$7K1#zo z^rHE7SbaGRUY$C?Ue{XhLt{Uw2`gBS*~jhGwzuow$b0yB-9_!YZ->ioE8jY#3;BV-Q<>vn}` zbTZg87gli@TgoCt*+0u%ZE8HBz7|Er_`X0u%3M8SlpBUaB>21%$KPmR;Pf(lFqBUa zoLWu%AKOd5_#C)oKwNPZkX zJSzK<%r|CJ6Z!Xte*=joJA$MkSJkCSba0PPU42x09ca&LOTNptJ_F&8IxWu`AlA4*#F%T_D!I0hgy`0{>048J) zP9xvJp;mF8)^^5z@Q3UJs{>`=7UWG3Fc&WYgiCmV)3udg_lbXhwX;@8j430+I!JhZ zr)kTs!1lAFy>4P>We+$fT{qYvAG|y$(_z5|cf~^zD>+0he;55nw}YT<8Fn)Er{8%H z2TulH#AQ7>gI6KF5_MLZV4IpPU^yY<#I&2sI`hw}EyZZkCr(quLP+XmJ9*ZjPAY!X zuGJBRiA4A5w6dEiYgZTDwb#32BI}&@F+?dcvTHhidVK`)J&dU^D5dJ!;w14%9)Y?$ z5EV6l^g!!DG$sL6#AxVQuG!j>}rb3eQ z8*!ra=)%QIB4`5Do1#)>&ajkJGtSh3!2qi?bwj77uu2op>I*AP2_=nNcLtI{P`@;I zoy}>mamJ0M)sdC9ytKr^M6G!L3wFck}A?Nao z29gM8HM?2he&mSnpIvqf%gRF(Dwicrl}K`e$(V^@dIPpSk;EtA@<4{Ru(XxR6yaSB ztV7_|aL&}6IB3b>kwg8Sz?=tB18XCNrg)p`gRxb?G0bo<16jnir7&adGSTD^jUSpoc+{)@;Uj4%uUu|5Km|odlX4;=rqd53msIjTn82 zohIWgr8(_|)zoBn>pJp9w{?dct(J#)8HH{RU7`LIE*R7EqWrv0=}T}YO%VZ1ow|;d zS|kN3%YIZ^&ic{fhn4snrgub>%5Q`dTT1)*i=GEw86+ZkeOcndkJb`FLCj-M75dle zgk?0V*60!)Z_n=BKOqnI*-=@d;L@e07gZ~_b%iRwhUMPEnukGBo~O#+L}g@BnTtH@ z5GL{&6L`2A;2!!egxOKUil)aYFS4 z6Ufo6Y;S*xadfbrtWJX*T?N7}3989Q;6taLlt)F`7|)-JT7MJe<2G;A?k)c=dqN75 z)48p)QSSW%)OrC_a{b$Rjw8A382v|&L!ch5IjW4BJG5)#maBsIju)A7UH-bCU(A5N z0m-XQ!_Jm^QCg@syn&Cn-mWGgC6M1uR7&scUJX!@kW z8ln_H9t9ys#JF9Ng|*r-A_F9^hKOk)NY)~G);n5LNmSVJD763shO!hq6DJ*9?u7fF z7)Fny@F+uCtrZf=)t<9*a0Oua^~J((RrwUL7(UKi{TZ1P5C`1MhgV%0**Rmir&g`i zn(IAAr@r{u7pJ%OO;z7KnTk`9%?EppB_I`lgZ!3hSClU*8k%2I?T9#GA`hCmXho7> zX~56IgN{pqs29>KG{`dp(*a@h46x?Cik_j~I)I9?m8m7+BFLaCUmULhx7@bv*J00K z0pNlF8O9KZ0Jq(OFeVhXX5!-rtn^(iJ>>J0<*s$L+-ITBt2u+~8Y zb^i*S1O+=Yz7Y5cOxDiuLE`JF8GF*AbCLg#%My5QAo=p|!paq2!L&q;lhj*u5AFIq zfnMW!g?8%hpC}iuP!_y02}8|6{mV6y%tTl|1&cnFkX({;rO?;Idpws-z0HRsvEnTv z$OLKuJ1S%WN$v=G*up0r1Di$g_H-O!A192zoSua+J$Cz_hH76O?2Wy>*8)>AHO`Rl zt}1t&p<0}&at7m|@raGzx`v&vB9Gt=c1=0X2iDiOeNZ#9L-w5(J%Dij;CKigzjns4 z@=z}bp**X@DiUF&Rm38#(@%lIsh^DgF2+G{&({Q|NRYoS2J;rusrE8Y6S10r0nmK| zE;halxI9v1At7rK{Z7z)$C0q|T*U9gF{U7&cOs8EM8*lR!sDhJ1a^#w5)uFT7Utg? zO8IF(u~3GRLt&~z%+Mc9L{pg`P3GJN4HoxJbf?F(N`Duhl}#chCfnnd@?CkxCLeZK z+;P)&P|8m06oH3{xoR3y^PnAYqmj|zAUKs|_Y`VCJdPCJ7Mn%l|f78JG z9=bS%RORCBQY))QzUTvD0MFHyZ;Za4Mk>?&v5N_s^v3da>ZkEDYST7J@y^ut>vgpRZo-N$y zDyl{(DvO&a1+hZP3?@LFf{s9pGzKx!Im!sp2V$i7Vvhb9xOF7I!Z^%<#bFaI(n@n( z9)$67d_I1ydrMevEyoA<__U5RPMTwBac<7pEKBh%JNjI%KO7r$=!6A97{ohLP|QH5 z(3=sj1tmd7zRS4v<3kuT-v+Agt>&%Q5>Z~*CoMTqc8%)ggcHN%af9yb+)8lcVzj?V z)QZe3he0T{cnk}*XCsvnclUkP<$EkLd#SRHUAxN^W@P~^E9cKf?f!A1j0cP-3G+;E zm=#dPBGvL%&9N%Ynd2eqpeUBRrC8ay_CQ-W0w@8_|sL# zzdUPD@QRgSVcWQDWjbPq=G>p83F0Ax6&DTsQ{ zq81d^fr7jBFF8qJOphtlV)!K>pLb_VvC+R7C2|iz7&aJmXd8Z>K3qQGVck9nK7192 zkA2y{9y>SOGR*Z9kXPTzifEk4qfmErqT*829w)4B4kBj{9*2D1-HvxAo`Qy)+Bzyk zmY!|iV89jMZv<{;^W&W4srJFB*lKHd))(IBUrjJpS$s)y1Zc~W6XK9F5RD(|AqV=U z#{1h#GEnk$1nGhB;h7!uEPGam0 zc_qtw1R1Mv?B&I1rKY>8d{^ezAqZx9roNHT&){+xlw=aHpk$Rl8?pO4o*|^r__vax z?8&%2_ip;?CoSJr8FJFxEi98yr09omf%*>Z=_Bs+#_B|muL`B>ohCdVsSQzDrn3@1PbbVF zJ8siARNk8Yqp48IW;Y_h*UoqCee@$rLa@pc-+GbLax2pb9(H|^i4YGCy@@K+o-9siP zNPT|x0@dY5<)5&nWxgZ_H%0sN$JF7?JKfrzaXC7@>pWTMpMGvOY^{Esb%B##woc>z zFL^$Er>@FbZ5Fdo3A-mm$~AGxaT6FZ70zv1E%!pF>PcMb3iF3GN`uj^AHOP0zfT#X z$Q^fTjeSAi0B`ooM5%?-MB*cs5qPs?(pUhLv^bW2^e08CiA+mI1@6n4KANDvbE$gF z4~;Y9YF!CdT!x=4b={<53$jwyR!x0VII5V!ek$GW+rNGw>xxH=uhJ!C~&siRYh8%rU-J2KalSNrMmO?vl zM!Z?1-lh3oYt`sVROHHQ|4j2`Hcy+8AqID_ozgcT2_Q?EPZIsqq(4g&KI6}-8P7x;cwXsO-Bd90xel(EU9OXRh#%8CWBN{HnyQ*R=3^yd!nP^wtjvKAOY9R;J&AO)2R+s}mG{I9*K}JOWdC z@Vow)$(Ec2Xcb2wDDCx%(lXrsEl6 z{qCXo;E`}u<6+xAytmCQYteu%k?Rq?WimFe6;DSEtslt!(6Ak6KL{ezJSP3!r|nbYr~~bgA3f3pH&Juy9ft- zP3XO)oDjUNr`Pn}?Mo-an;xEzTvZaP7x-l}y+x*YvTo`%?@z@sLi>l8T$dh1=G?wB zlNy=Lxo_qnd%ipE(B37ZK9om4{Hza}+dn(|P=;13ix$Zm5999cS|BWyX9ZoBdi} zu6lK_;2aP4r%PhT`^(k!wSnW(+{(3WtY51i+L(*z#6JFh_TkLi6F&8G21r%^)A*v9 zdnF}nMs8Z3FiQE-HyuBq=F;t_raDfwk<2N&b5?CoU;D?vtku+Pa4_Q0;kz;W;1&_H z!=ot`aNoTBUiV9kV`7Da;ryR(%Kt@+RSx?V@P%iFHkym%mH#?PX8+eGiR!WfC&e9n zh8f|8fTZ)Htl5cBP7Ml-6gGN1W`=`i?2VH`<2pW`@aUVrX32m@ABqe0mcUlE(B4!K zd_;D$h7c`vWgC6CYReQ&pL3PF?;0WR3@cr(0tBr^qkN z;RjngEZz!JUk@C9oh6%`I>hmHgMeS-=!rk6X)kA^z8$z>I^Ait^JnMI&cP;HdXz@% zC$|9m@`29d{!Md8&ZL#*he;Oo*&D8)Bbtx$_mHw;+&8S#Hr6x$5-`>4HV}Ok%>F|o zeO#C}ysG*_b!>G+Y!XLS3aT}LOfbcibSo*B%ccIiE_FOTq&K^KgK5H4Un~##;q9hr z^z#m6y7l6t;S-w8eKrLb^q=V+5kGY_lJ-)>zuJ^iAmr1@m3nOal~MGI{9{>NLWc!y zx~3yTDCiFQ;qk5EwtFq^tb5}BQ2C{^bBuN*p`sz+kzoDL=GC_3(o)V+)$Xdx0r#v| z2ZSo7DuGSBhRZmG4$$=i!xB^vNF?8==03Ol8~ju;6ZVR6&esYetra`fU5< zYC-ia?e6Xk)1HRmpoz@q9KP#r=For#?J5@MUHiK8Drrr00TOm2kkD}{t*e%}rTkz^tAXwW$Fk!5m*Nv21_&856n!t1EH|0VsO@^<*ZP3kk6Gd| zC)W=@b7pspjC^4meK`2&_~vN(3^}}R&t~&bSz^B35?XCBRzCQOz zc6z_9eSbuUzRtk5IP&u#*d>#=apvbeSn?g(DVZ02UELj|D;st^n-a8BwUdoJez~ra zUp1oYq_)Q12PAF#Gf(rsORLoUybXWgxkIkE6K{Fnm0{9U%^adHE7P9A#>wOXh5n{^!25#1=EBzfR{>!nsEIbN0$fdUTonSf1$My4d= z8J>c>w3skYMH0_$?K~&_47H_4GppC{v#Ihf&}!Isn)OQWEt~09*mPJZ`2EfKgPI#m zRKo&AH7fwka}99yc1Jf*6P!?y)$UL+G>6QHCP4IYb0-vrRvy!wG4TgA1~RxnT~P5! z3JQP;zrqU)G!|H((Wn_uJT z1ka`KGt;$9`~VO7C7n9W4cU<|#bE6UaqdN0Ec64ARumV9&uM{tK%a@Wf~?hz&oU(Y z2A?(e4*gkUS!B}|NIv^n!WNaY<=e>4BD60cV$u}cW|zcy6oD*Z8R_rIWz1qOSoJXR zJ$|5HSZp;6y1&tZ=7ArBqB#2xpnfY4CMCL>a!|5@|OV+Ia<-U=v+(&#a;yh)Uz zIN|U=VWxkWp7Qg8V6`o-cM|p`+bKVJ3%@A-Hv0V)_>5;`VBjN6*IMn=WkkN_4n^9P z;^k?BJHrlZbH6z?GjqX=^m#hARpaU#->?~x>G$UY19IYzh_LHy5W)&Je=hrM=PVd=l{%o;S+`qLlR<>)m6l%foA)CWs^~vrCOzqt(84pK$cXCla>@ zV=F619c@#G;$y-lAMzU56IIu*yIMeMOb9-*WL7WFT|=a`grr=4|7yu;(PdWzg${SA zObc;_UFzeE_nnb!p{Vq^v7cM}QY9oi*d6yGMZIR5vSuP)aox{;6M>-H?iv%M4&Mv( z{wEFX->c`4mldqBz0Ob63)m%nt36J)Oxmh>_mIh|N*zk*J3gAF0Y6_lfj?Y|HpXCwIqq)XlZ#$LEBdYUscY2k&t5p z?Aq}GrLUAT%nm*N>=?Y9@8Ia6)XN6zZbleJ58AF=bF_A?{?6ya!#m9#_xG9#1n0kM zn0QF3|85I`_1%91>sup7>eJ*J?hxh^=A}gmvpJEVuC$HpmzS(oex zI#eu3)eo$U1s0HT;7*USWj7|u_xadYvSG4G|A*j6hahjm%j1g7EpyXQ)%6Oijj?8Q(W385!w-(<{!RWbmDF~izW z7x7yZPxfPqb}`j&i!YBsOrt~brZt@y_ZLm|Odr6wzvHxf7hc$8$(rqu#4Cw}=7HOR zJg5#hNtKdpb%8<+$cs#HK{9wobH+V}sV3z?E2-<0aAK^O;EM*{I4FQ&jkUOsCe$fm z9EsP_+R1YvVO}Phgaa4s#qq?iY2fBEp0$4cPZI?Oq1(wSFEg#umvfb^)T4C`a<`p7 zzZ0|#-`HE8>ve42`}RwX&7IlGR0ARtfTkgh>v~Py6MzcZWkKoH0*3bCG%}_}gp@e! zy*(lyJg%;v zw=lKYCR2%uV$VA4*TBQmrj=%>LM_T14@jEiVfAV&duWh!%Z&`Staer@~DN z^vS2;kqWNOFH#ziH&rQHciyqJ#3Ek)$sN}3-DaKAZxTEb8{3nft2NU$grqgB<@!=> zyFMjKvq1-aXzGhl2t|?svDdi{QNvHG96xg6Yx}baVZ7G8@t+|@MS`gZ`EN-qm!N2= zuIRLlZg}p(IlU)Wu5J$P2#eE5wa#paD9b6avTcYvt4Ogv z&aXG|xd~3AZ;wy+-Plcjqvp{oKe`^=QkAu!IT)A)y?4&)FEZPq$|>Y?t3h8;Iokx3Cmj%krFaZVQRHxcg}c>cSar?PFyzFvOCAR?UiYI z`*Uv|4}s?!H)S4?l$2d7uO%ZK6;!`aao~!t!`ev_Z29Q}Nu1@>SN5<6oeQHZ!(vSN zCl=!oP1YdWx*-3Y*J*>t<1cQ0dbpLd)jT=V?8O5?hv*}{MY+Dv(9Gl|o<0#GKVy9B z^}JoBO)+8Wg@<3;wr!YMr9y^ZBfRVw?ACzI#ZtKJB5G0*Dzjz^iUOF_Ph-D{79D=T zRgFaHF=F;-A%Uz%Pbgx_O?3g`otB}WU8Nq_`PfH(=+`%9P4vidM)b}$$b2e*HU-ob6u`fVh!Q1kP)da8_s8zLc_NEu6}B4 z3hWKG2!mK|Im&y#yN^#uHmmK=b64>_GimoyFn3!|VBodDHImV;ZF>8UIWO5S8oHz_ z3<3kFHUGQrZgOF#+aoE7K&G>%4(;B0(ld9`MB{Vy@uohX=po*75#P-@Ln?&!tx9xp z{6$BgXL=2!i^oBxqZ~N*m{-ebC*AaEf?&gp;LX9dn6nDms>2Q%9m~#poPXOJ$Iq*{ zOW#6!7YlUPu5x%9#H5}=rsqwul;4|Tvr5K4s6vmTP@R!4L)>R78ma`>*NJG|s9E;H91B+Rp~0@wdNCXrAn4@$Wd7+v#_}(oJF) zB249N*zfB+p%JNEIr=^9v*L5VCzXSg+^W|5MwuB&eaE;_2%8EADER6nZ_I~cT$Z0R z43sNhTIaSq_tsr!>g6McqaKKkKl{*pX0K)~@py^q|2F(z-+xqX2Y-XFod~7Zl=UZg z)vWM(SHH@8#v#-9EavkR@JNtb^|67dX%;aae z%ZaHrZjQch54nWB3I1|W*mMG4AjC;CzWioDL}~|BO85BveV1E!FCVox@$?k3urK?5 zRd3mSmBg=2peg>Yu9t=)E%9B+YqIgh?=v}H^JmuHh15;Qq)mh{(ku*=#ii&zNW2bLjM^^zm<&cMI+%d>%3-@7t)i?|40|kEME$T0uR|Hks zB`ix2bQ1Op=;^WP4qdn79n_3*WF%Wj#`z&Dj@lf9!wNvGlQ`%iu;MzsK$i|58V9@t zqyga#57liMY_XNWzBiM(p5ga?&_zo>eK=3NsED>cO5w``gWl*_=>vPc5cCdI(iXvP z?gFQ6`vhXm>{u-tX5vN7*fpJWXK=LjVJUvR)18*EF)75~zB9H(H9K|w3|2ADpp%L@ z6yL!!Gbp{4xAiq~q1-P6Ukkr=b{~mtUcC#>>=XUlTMFZESJT%}4s?yNb+~oNJ_^$* z17`jW?K>~n8Ps3tHS6A2DQ8qryFGIv-(d0GBTSxUN7yd+87z~k^SKs|k&;`ceYTAX z=QbEs9$_=E*deb~`vB@8|EfEr$#QVM0XL=V_10ZY_dLQMG)yjg#Q%;%;qqOD?bgsE zBg$|qLniUm7}O#w4kyw#LF^ilM9627r8up$_U_i?^#hi)%V*NvHAI^|*B&lh=C^)b z-iCc~$|-I{TVX@7i=ogCzC73z>&;@K6w5jo2^|O^riP8O$U>RIY{x3Ip&dA{W|&5Q zY2SEnY^D4C<6DYPSMg4@e7mDBv?(Vt>ugd;76SQR9OQSB%S4&4IzM?9b#J?Tx62NC z;>{kF-SAO{7O<;n&SjSR2sN(>WmBqS&w@4>rkM-QSpk>9t>G=ho>^{F)H?DRo6k3G z8TR)jnEhP=9p8_s6T$fxGTaDsWh~G*(|f6{WDKMyKyYH?&>6xc!vhDM< zPg9?6+|ZwwLcf~};i|6h12IP(GofnXBZcI1$XIWDT~swS!(rY+zWY`ECMUU_p_XBh zA>Je8ep6;j8G*7``d4U1WGH|cW<*Q@j5+bkF$FL*BMLZ&Dm@K8qs7V`_J5oJH@^`n z*p?q}3Cp4LPQyf~&_39@GnUsl+j9N_D;O83MN(N5>j%phY8u^DU-I4i&b7={BK)1% zl9Z_9S+aa>>{{$e1Dg!5)t#7(fc{s*rX!9U#{)dP6-VQ;++~%8St|A&*BlKXRnS7! z#{S0`{!O5-WKY*bORq<}lx36I5tXGOBa}8qR@t7?Ed2JMk?}h#`i?N8=0l3tSW51K zV}~l)!}UJrsIHpz%P#D011qEXx7qbLo!w;Oe0iGu?9TS9m;bcLU8(t4v+bMEimC*y z)Z7fqN|POR&GHlhdhJNrpO?~}sm&o+^Sl{0&&L81IvuY7vy*%j0y|wDaxGJnwhDb} zE5i4x5~hMpyOf`c6biXun^L`#Q(bXc z85L$Ki29l)^IiTob$=148SG!pXG(;KFue7E7;$4d65H8u*gg!%#&2WlYWsEmQiZ#|Toy z-Kx-TusooDmh(@BQMiste;3o*07^H?;s!||;Dr$&Jl7CohLccK{&(@LbrZ1il4Yx7 zui>$7kLwku)Uj7Fh0W~FMPlpM|7_xeEWS-PADScrioNNcAlIj12t$aOZl1BqraW0@}qSu}hxlT<)r(_{82VK>C`Cs+e9}OSAaihwLmF z?EFaYTbMyqz$pP^FefO@9kS5Y1&uJPspIQ$GLk)-u+ZOw75aqP853COyW$6@nbw+0 z3rBfy9|J(}F+qwJ&+s5~lm9ELZvqGXZoVHu@0xMLsKUFX%iVeWc`3)8pIUisDURI3 z?ztQJu_6LGXarPY#9s~r^jKBr%<)I%r#g9k#zg$GhK-xoDZF)#c>bA~>*BMwvfc}l zc6(|)jiBvbHm95mIsrR~&6CDd{dG7VmgPp|Pas556m&u|!M?e0O(DalXVVhcer~;_ zO(nynCwYC}bbPuN$&|VAmLG!+RKlc&*gz$0s?(GCsZJ4D|C;Iqc@=#KrB4=?qx3gQe@MRawYLYuFCndu(y!#n!cmilgxm_u@{vY%jc zt~kkhAAJ#kaLmrW&!Ar>T7m4a6u-_^YbbKdwD>*E-ZacfnZ0pS#0-r?Ocw*?M z<~)jS7DC9~-P`TbD%0Slh*TpIP!3gHUT z3YJlbl@%Wc4EJd&WowhOYPPnh#oQankJsS#Bb(6rBl7N*S_D3r-$4#mj8Ppq*r*ON z#QDrd&5VMw+kM9`TC-EecRo3>qA@SXJl%2VPN!?V#!XLQu<|G^Hm5~Qg;4$=bxXk*pg`T!bhkG z7|Tn^?jxDj>+Yvh;bs`m%g?gQIi!B+V(Y4$kV|XN+TcT1$gArj?&eM#!7K|2&L^NS z8B&IU?mZP?67NlMe2(?1Fh}#>M@;;v-PO3K<(S9l`tDSl4Tt)QVpBvnT3e(>hHefU z@Obf?MZtgK_(6d}dQ&w;*fhy@`pHw+50TUx4FVK#UWQtJN;l@zta6(1pvi<43NqLW z%lp)`>^MFZBzS{v5F}j}bfX+=#;-yDYm6G%2M){Ft)ph04~Jz$GL*!h7)oL-;g6ug zZ4GFC&P7=`yQYr49h+ytj4AqulbDs)6X?XEVNz2ZP^`mD`_5~Q>`754)(&VeoTSDk zMs6RA>`r^w)L#Tiq9W2$9OSTZYdBP-CjM2MBh@WaM{U=r*J~dExl5ecCkx;9uU8Fd z^#^%;GOC!JmB-wnKeUY7qeHF!)-NU#8-|84nNR{c&t!%uE%L~LC&in$YKc6DeBZ*y zmIOoH;9U<5V)F#UI*LsN!K|Yk^VZQM!f9FX`nnQzqb-gLytuA9|3)H7R>fR5;1(EP z_H_4~D3>g|Ap!Y$@>Q}SoMVU&fA$$BcP5ab(3Hu<_&^h^(w5!#O$( zt1~oo-odQS(9rn@v^rykPBZpm>sL(E^2#CM6b&`;c%RxIG`K&7^IWPD1WV{+88tmI z%bv5|h|1A1^_$$X>DfMueUeL_L_N6V|KN^6qRcElDk6qT6UA+% z)J-zUUO0w z4~|(hBXGEcez(_Q>pXG(V10KeS+Zz@w&hkZqedKmMPJBj>P7xZlk z^m^#~{Y~+X>6;y`Q)hz5^X}%n{UtVjuRkv~R%M+R8+$a%B8yyIPM*xeo03+XVD^SU z)Bl|yY5LtHI^l8AZpTcjYcRTcccV`)lc&XX(Ua!xsl^Ux0l@Aj4uwZjX8Nvq~=P#G%B0t?xCU~)}@8p(wc%(D~oUCXhK2;b0F4cW&0 zV;MOEGtpO>uNl-3n1Lv;_Qw zv#u=DASIeKAg%CtCs^xU;U5OLnvBdD{;t@WQKr5YFY7dnBCJ>9q zH=I2*I%Ayj%UtYB+ssf$AB;2Q%a4%-GgdpenRQmyF|9zFU;^a#E1~IBf-z2*#TrHx z>Za?ch;)k+v;e{bd^2AMvjA$&SRo>+*wCZDOyuNWj#X*eM;LJbGbO9V=L2ROjbKjU zQTkF2t(0l7?8K~;pU2W2c3@UYH=7NYpp|lIwE_P(D6>fW-zY_Ys~_Eh@_<-387}5b z#i)K)EAp6ID}0c#U3YI^J3k_7YPmz*i$>$(3O8pX8G$K z1)KCj67swIG(oaqW`CYro9|ggJ5@o4Z9U5ZJp$iJMDw-iS^Z(AWrZL}7mBg>3uf(D zE@}r)J9VXQpSw7JZBckLz9++<&h#3 zB9mwMAsk!UrorLV;a5{_9q${lzQ1*?OJm2e`%QgYH|2yHG%4B2S;siL7kQ$z zeyY1BPE7I%Gmn_Epk0P3Nf{i7#3Cj@5rT3!rVG5*nSFeRGLVt|7R2_g0gnp`s2wlR zRjV;M+v53=ozz-hoU}}7@*)}?@ndIpVIQU*ZbrqnU;;MD zucol!lS7%7+l_Snnx?!4);l|J%H`DaiZ~MG*hMJNBS8_ykRyIP7ZYK)DSYWjgCdO0 z4DYTj!@KL(&*Yee8U|*=Eb`5Cc~CHI*WI363F8Ni6Z_$O4MBearTv`5_iH5NS6wIR zz{kxr=K+xOIi&x&YZM#~+=W}M$f$1FGwZRsK^Fws%3!0@xS7><$B306^P(7U37mC8 zVN$Xbn}Qi7ahw?n#_y&WYy3a@hMBN5oIL&Z*CMl`J3-r!xU?=p{I8Omk~|QssBD%S zvz#9HwYMxq=JbrY5byCVw}rJO8+mHPVhtj3`_^yi+11PcOlX>}zR3NBj4dugvp!L) z$54_jrO+DAO`F|EgrG{HPHGdK6Ey`apL8LMloy?W;0NBf> z251usY)+=oh&o?>z^eI|?ArQGf)r!S^wZsCnVuQ0FQGdcmf^sNkNnVig#fpbE-;%>nkiU3N!%Aif z5IVg6+bA9DET*28NlOv|777bXuY95ZUX=VccSBUDvYr7%V3~<$&h5WV#h9tvo;*+v zkL-9}RJQ|mWG64f;j7q@-75!Gd=m2b$QW%#2Mq?1g(Xd^e^)*x+ro-4@Az(ZXej*YxzM;DP-^Zk#ZqU?xdE zVje@zJbGbbezX(Ou<@mXn8!ga!4=n%DE{g}&&3 z1IRWmBkHczdJYwD$$8eAkP(tez($lQvqrO@oj zFr>~Se(6PsKf8jNiibh}UmaASrzZn+^<)^g7m)-I zIZ?;l&^1mwu`wB4aDeN-XIz^vylr|Y94xZ9i5a8jrnc2lg|?hg@)X~ISsqRe+MY9C z^b`!tL)uc{_Cy@#?*Nq+M3DMKj!VdzS*C||SLa)*CuKrC?9LtfEFQ<-b0kh*{L(&W zFKzY<+Py^KV~m>R?_;+W6*`xDw7q_WvGZxcxQ7@!|IzF%WalN6M0?*`)iQhM7F*}w zK(zFV4e(R80-sxgEKn281I!cF03$m&+@%?6)>c$(8w`^gSW9xjP^a8lR{DmgyUJ9? zC!f}Y7hZ8bzw^GoWZYvbOLMt6Lo)QpDozRia{KE7Eut)(I_d*Do?2m3CnB(C>X%N=o>(EJRz)~C(c=E3O)x5$QSlEjQzHVOw_GE6w1-DX->rfHXOw3D* z?X~}-G2yq*OKyAb2URnee21Z$QDn$>7^<0fn0!YUs%8xKi(b&~3S;ba=HFg5-^~($ z-7NSHt`5^M$*=P+0RiMoF;vPR!GdFhnHunTCJfpHY89KS z;QvVQT;a<@_&*Yy-+Wsc+7~3h#z%)}FpZ0HtaRdVE0b!y=W+a(bLj{a2{cxv6|fmB zv0(E;Y74RxsjJpQcXreuLCF$@>ZFC_XAj5w#OegO;-bqPy;a4p>WofHMjL;(bug%8 z;jLtWZYy|Z|2~jM0xhJ@EyW41lf`}HvA#4D++4VBen9$7Ul&z(?-WCi&3`-%%G|Nk zVud_fQ;rzw%Ey5~5-rrY%FzxV|e|!HwnZ>Zi z-h$G@75)bnOkDasW=G1ev8GNTlE3qRvojev7EcDS>YY4l0&iKM8#@tD%e4)jh}Yc2 zXG&5AO3&Cu9*1arU39-(AxuLEG@YmwuTeS5;(p_zGK2gnCd&6)!V21@gd5#~4<}Ul z6((+s-h00M-XXC#-SxZF{=d%7J*cTO4dXcn1u7yc#(n5&kP$}=7p+>#O&3^1MZrbty8C`P z>?}FS*6#knWQNIPAo+66^FHtM{$BDgb2CT2KeF~sEZ~c;n zIzB_+zjMqsS#0%rc46K|Dk`Vpln?PC&njLTpZR!NTC!3n>JB?9v{OGLPm*beuLv9K zYYN6C&@-MAPB%G|LWA_BGPFKm7Vu8!!wX1}M7E8RuDKDq#jA;`%F;Ax;(o_8X|^*> znpguDY7D8WL`n|88e4~4{xB`8yDUssHjhzFnOB^^;JCmn0!gu5K>aRLJ zsIn344jNe7<}%_KLyZi!ZH@L;d^_VpqS*RLlXB%VUBz7jZ6E1_rOt09cT`;NSW+Z@&B>8z7I<^Z11eXZjeqLsYz_U2*P_|_^xXU@Lm{b ztOUben2_y>Ql^wLO3fAlr;Mgbfe>NAE zqWCKUWO>;4-?;M$OAEXRh8RLd+(i82{^I+k8@*IsnjXtJz$jf!gnpeN?y&3wjFLYm zyol0>bz6HCfzh|xnV*xa9B?IFJBzS){2TGAPNz@&F{o^9NN5>Ng^@zAu)Wo&D{4K6 zRPR(UKZeHW!N-I~#I#yS7Bd*1_hx4~{W_@MBy`GTfdTB0829*mm4ap7i3JNs{c&Ue zARMV-+}Pg=M+zGIkir#dQn;O(V==Dc-#f8TMbxSzpiQWSkO}X|+5;-C*8teAyHPe0NuG|IMM78-HV?jyJ3zm2eF zUpa@y{(fZU?rpe4wV`CLcDO_}UDDI~1C*$KIXU8K9^HYxiyCCfVCS=@DaKJ<V-oiG2j$o6s9X`iEy%G<$(cj&6asTn;k1Ata*-lcZ1wVs8(zc zV6-2(wu=d0x}cDdz`gr)U%Aevol{?8H@=!;F!{H-#Mz5Szd4a{oq^e!R*=nvWi`-LF~E!xodCQ1NMlAtP!df?t^UwN}NE z9bquf-<~;mreT2JI?tT@vdEH1_iPX^tp{LWdx-@^ssHTb;^p#E zNG<9p*!;Zp1mDv17S=M*zhzyxpQ7oXij|HAPgY6`*?%RD^-Wk_lfG!|{m)ri!{6sizNgbuu{~nN&<{@S)0;+Wme+rJ@a2| z#W&3Ag^hh9lkg35^6kSG+4zQ;Q+OeBxX~>1#S!)~0l&M9?lmR(7e8$;a&*c`m z?dJ-p|4!}Utnj8IJ>k*-`v>r&SB*{*=GVl*KL#QUrc}X|*%K{saYc<6?f)mR|4j65 z!vd5mbfxo2(q_DR#xEsBcAq$ez}HUOllwt8*Kc&2%VPOn8DooGjH{e5Ne>PiQ`tD6 z=Y2d$D|Up)eguT@Fr8AL~hHoAo%_j`}R^I=1s3U{pi9&Lv!(!&I8_GU$T3 z4;52osR=+VQqCN3tDRlEBljl%ZD~nS5Qk$0I||?*5AToVrtx4_m$mVz55;dvS{yhW zd3|1(;$EsrT72myUSdmmvB;TT<9?2J>rm%xJIzv}Hwt$977$Xv26ZqdgxqTiox=&( z_|$$ol+tf+YZE`}k_1Slu7SfD(fLWc8e=rLM+;S+AGV9Pp&8YlB+2kgm7CbHzGdE= zM1lEGOvb|1ma)lSoa{CYdRadZaCu+%!|vC9;(U+Xz}(h6OJBR`yKV17qL^JEz0^i_ z4vuj^)@p0@&G5-DH?07?Z5;BG&r()Yv(r})+YZf-1MNDey=?eeoT75?@$Xh_-ZkX3 zg~*$=_c&+4Qz`JF*&lOh!D%2^hFlJV_ADT=f~PTJcT)7Y)NO=|T;2zNy;Mzg{}duD za4@sZtprx6vF*M^lLR|IQ={a534RAJru3_U#LFy+Gh!C%1*3ptHU`jqM>RXSgf)GA zkg(lSab7oWMD&bkhsV#})IC!zIB0|8EbQa0FKmNDG(;eBL$kqf62WTL+I@J6Nt$UT75dcNKo@b6Km?N9rJ71Cc!0|J2FP)Ue+M|=(h zB@)f90N}Qc@y>`;GUYU8^(g;OrOm#LLI(rFL$MG=`aKR0;V2Rg56w_HZGiAl@uKA& z_o(NvvT;P9zRz{LDXOx?>qC6;IM1m9}c6xs7$-W8WVrFz)Bq{RN zc>#Ez-@kmRB6{3H#64DNJ&+59+}NUY&($pOIU|)mg)SV|(xWQ(znrR=g~twSW)DQnU~iX>%i#7QMf`INgOAz33@ zt)bOgktGz8EYIhrbH2wo-*e9I_dL%Z^JUs-FT|N9+L$gV-Hc`i(@u+F=T0 zS9+n{;KK@0!9+rioBE;G^>1>-}3Nz`293$Js z>tqWX?e6P=&hv=w2G+TGS79kTP3bWeR~@ALhKWsUB>xEU{fym)^} zBxzfiRpsj;Z;Zdpy%cPJtq#OA^g-$P8U`nmCLOXI$Ql>?$G4P)-(~l0ud>C0C$1bT zGY>FKjeX}q%67QAId)&w+YIkZnq|`0K-V)-U@F4~-c-ba#;p?Yp~(+A-lokowKzQEh84hrDOLka&IX zsRS>}!IxOcYE%eq1N*j$xh@RJ>V(>OQekmyM{iAul48vV(I}&-%NI{o(XD+XI2Il~ z$5FvJk2JR5oJYE9$#YWWI%AzPm$cdEk(btk@Ie-OkE7q>ufhBD{Jy=L|LK%*rVqSE zyJD?Y2OrrMqZq=X`OqF*)Zsumv5t6DKth)G154qMh?+-Y{8I6c)Se}62&~c}djg$3 zqEx3fX7KIuTl`dD{b<5DWfLCvxTqW5v({f~2ThCPJ3e+iF%*g0c=4(OH-X1MFho_b zoz=;6iet{OFRWsSY)RM=g+!Ll`uFWIovdWAMU)*&+UDT@d<37(T zV%7=MyW4F<_cCCkE+~V*kNWc6G=o=1KpRdweCnZ~^ZHtF|Jin6{95hK6Lwhw5R{}) z5i>nbw9%JiZW|dMSsETW*}A+l_mp6~yWQEG4Ig57dX9`e<|FOheRPG$1>HX7d-KT3 z&Is*(_jc`37nOO01h2cvX$|$kiC)%e-id}8ZaCo{+PpluD&9SpFy-IVvr9bQLE+W= z82$D2wPK<%exmW-I((PEG7j_4BY?a?U+U)>GS&!eg17ffkJAsPchvs2oRcN2@K+vh z8Izqo?NKrAZleu$Z@&rzA5f^YH!FHdR|C%C&9~3YBO(3NskpZxD-Iv-DJlwA-F=R* zb=^UdnNB6bf)FE2>3$wsjMW6Ld6v}ajkeP#3npY&yQ)8b@b+Mw__ZMQL^yp~#dhDL zAbAuX(cZU>j1Ml^yqQNvLwvR8P8+jY%p>%T^T?R;2P!#GIkCTkKEJqm+<0T{@fW@N zF>S5Fd&(_S>CzZ^klvT3jP;ky?BZ92@a6LR`gin5d<=2e@k%sGk2&YI72O(N!6aKq>86z74*! z_88j+l%J4sET&Qn9FkNA4NYtyxsn0|r4OJIAo8p}_HsSS0lu#imw}HOf82;o-pP9H zFQyZ$Kj;nN^WKw7&fPtGo%;Uf0C|!Lz^U?3hiuXgR#7OR=Q;-*Gvc7~f|^7@;I1j- z#3|MXzm?p^PNW-a6s3DS^$}J$Eirttkh4!>({y`eBOGer5xWG~CLzYrzU(+T;Bc?t zCLQwOCMP*+^;X~Nxl<+N*(o@-quNr#%C)94ca2$JOnK`ztxy#Zu(~vIokAGXXU>aP zSJboKOk_>!2P3H@v=xgbqk?EU=)Iu9f&Ng%$H)uqArfUSGQ2ziZhE=DqJs1e9}rG! zaEo3JJhoa3E~v2Ke-Z-7*z+<}kc6DL4EMdeCuYEN?YRf}^GJWX`%B<;LP*?{vF0+( zgeaRw=6LF==8=6|TsXz%2}Zv~s=_VmBnbWvaKOhpP3AO>6t!aNK||nUY|eFb9|&5aA|%+$Q~U`8InEQ_DsLiKdK<*eL;2gqhP!hyM2$C@L1F zgw7*jQKQsZqEEw*G1hs6Kamw*ra=R~OiRIKT2DDp*GUg-XcpT0y*ZdkA}N?@nmXx) zFS}{fm)0h;BvN3NlgS($z$VJ9KbRiFr7|gzbvF)sa;SCGFD4pB^T_VZ+*!`nMr)^Y z$6ggCFbzyQ+}FR;@yghf&%nU6{{jt`G+VnKr zot3Zmo-J_Lo-gUSQ6zZhsp|xQn~OFOfq9Mr=a#fBVi5 z>6cERxl!cN8&leIVP)_(GQbUZ%<4?939qm9U}d>bQPG%8q|%p9nB+RI&YEXKdv+se zfuY8pU@Z;cC}3<)-*ERvJbk%UB^M(su3w2BhZD_IsQ?d`OfBW**-q(Fs*oq6K zF^0}k84^6AF~tar_s(PBYbJ%LN5ZfUBQHF3Q_qyuckA5u!MBFkyyr5?a>*Y_mFaIs-1eEm(1|$QwP`mQ2X*|Q^Sro+b`HZ%0K(w{DaG5rd1LR z+w&%JS1j32;ZNrhSx$z(#XdQr{0!BJgmCGj*faQEoXAq1fG>#g2g#EpxFG83IimB( z3JTozEaA520Jl93#}O>Yj37?b5oiLf;>v<%dRsL{U%z?k<+c7u6+2gqA-7c0sTe~I zgi$SV<MatJPW|!cYyHcKmQCCz!P?Hd_5Om zzMlWXzOjHc{_p;~F2|ow>*sr5wpvJqvB@6`yUV}7+e6uy!?^s0sqkZ;gE4vbAb2N7 zM2y#GIC=!*@zG;}kDg=NGsedt-qi*|4@BtyFW=D}!DLVZ4_&wfQ5K7LLIt=i@S%lo z5K^wxDH%Aq&*g-KBTummlpsK~y<`U5B_$N^F-B@wxqFhzD$e;_S%4)czGNhw3Px53 zBfX?EddM++N>{@v4W}K0B6ZB_GtjvpVenNiNPA(I(}262G-WP493p|aH71M@?xy2# zw}d<=p5s=|+jz`9>?aP{94VHa@yo-bEGtb}6wtc7>}?VV_+i8YA{92E>##MgC^y3` zSm%8Y1!gaf0DBQtV1IiL*xBF+M)$I#E5M8qH?~2Oz)5hR2hj@B;G%-$U%twBkm$7C^FdOndu0yV!Cyx82b*FIo?eW@vny9a-^nn=JZp;7qL;UH2hrYR;7gKa;c`f?));HCQWgxqr*g;i7SwIx`z@)aLr^Hl~1!rvWkJ#2P)TiE``Z=ZQ% znzPc^;J*6_D>;Lb35CxA+j|bw8cPvEDIBGaB}*PiBVz@q{U|PE(R}RXvBSJ|Mn!JC zi^pBD-ilL#f-raaGu?wV2H001j9vqt{Um~_Hn>qBO#O)s0zdUQ;b&cHmHFxT^vQ_E zU5?K^`3#v;!jmu4_2?*`>X+^>nF@tlyXg$v+MVrkXL(7B*v|C? zLDI;wEvu0c1@8!##L31p;!}5WeZM}mv2{#$yIoCZZE_^roiB4O%lXiIFI`vy{LSns zAh=$ciX#?f4dwJL$-bEetukx%L!M0Xom(rninNtk=P^-LAgTO3Ee6WHA^}InJVL`n zxcF$M7e4OGs+hS7bg1uf^MFS(9U7|Q_egtn-Y=(;!}61F(015-^BkX^w6c!vb&ty5rO1567==nG&e zE(hf8RR~&V!0TdRZTsevT2nT=+72DNAEdo&*NBHmQRJ;K!J9WiLcD}jACD`4NjWA! zhnJq+xj&d*!*!%Jk+taenc9VQ20*T@?l;lxT4%;6=hn|{`qVV#^kA&vK#;q{3jt%} zU%alo;C{rQ(06>FqkIIhAy=LTqHm?ye5X$aYXOBgVJ@FZSozE&@8f;3xhfl{Y01nU zCOC~TrA$kn8)vv3aj2%VS?%%kSa{Y>so(V5oFi061|7uyD+`#K zdC;`~wen>8kpiW))?e%m@`HC~NbX@U;HjJ-eW1cA2shY754e1u6vC(Aw*G|@-Vc`W z^bXYi+qq{Yh@a*WxF_Iyl?r5tD%L=x`uclIP01zohVa55^LKl9%6jfEj@*mL*&MB0 z$F3MU;4TB#GLV0f1E{^?K#PHMlMwv~oFZ4it2hO^+>F5lEN?x!76>v6iNixLsfHYv zfq4mHj|sRCM<#gt058#9s0?s!l|}tQw*?15Yuy6)L#u(;YaZ~+TMBsBF3cs}3J-Qx zyPFP945qlgxmCC4ksfy!%-EVB!TCb~9ulV|G$1Vzl2b8m0jZVQ)fDQ9e@peWY11-h zLDZ$sxnF|#WDa#xkB#iI8w|2Axu1WdP;HS%E4SS8JCT-QriWO(z)OxIyGRR)>D~NO z*C7T{s7cA&f$m{Ava&8eYgxVV72i<6^lB}F-38EC%FR8+UfwxMffd+l>PxA1h;=t0 z$2j39gSYJ>|EoJ;iuz;J9RyKeWlPbo9=pZi;LBCBadOP?XFZa>|G2yyf<6`<3!nN5 zQ4B;2={eM{63;pD^3J4SEx{!y9U`gRbWF>XASu~XE=a@ZAwg7}jS7V`)*bGcqb_hX zl5FDuC54|fy6;bG{qIXXCVw3jAha&f;e>uN=)S*Qn4vF{5;j=pC{$b&tF}mTMutkK zUp^}swL;{28$V>N#hb)I0zEx2ZI{8mGoxIx&JA>JMeJ|h>WMD!ka|*&D!W2h1w(74 zN0x6@4egkaEGj|`p#RU)`m2YPxr~u;B{phzZ-V9WYJc(^vojopnXI+(N~78BrvkTl zdiFT*x_xMoF<0%aICu4BO(jCy8{_*h&`%G+A7Id#t_oNVwpW%56cxjAkjgyf7W-KA zs8dZ=gs`bDeZdNiJw>!1-@_z9e66MY($TlB*4jV%^f0A;y-Q0o&PuXbilcgXY6Op(rc1X2~0xHGe-_rmqx%q9<#UkOO5a;|HKI_ABVz)RQUq}K#I zcaro<{+@Ab)uv_ikWtoGbr5(#z`HwLd;E~q_^dBD=t-gaZiQtcgaS8naRxe~6PAfV z)ZPk6qlw`(TKio1!KsiU%2;Z6PWA`_ER2JMs+T>O|I461hcKnGQjOomiOw zDG6nql5m>kENrw~C>?l-@FPI`HVIoKsYrv1PQ_7ubfT=r>^WV@jRM1U;XDr8Ggb(W z!ZRzcURGJawMlw-DPV2Ft5bX$SmM*b0Zs!BJ8T0iQRtDFaOpm*cm*oVAVKUek?sNV zZc1FP@a^yC|2L;EMv%w`bKU&JEOi6~8i`5dTK>h^AWOMJ$b_5+q4O$^ri^dKZR+Az z;Wxh2r+Y9Untf1FS0?pP%vQ0PtOfGZj*hKXdPp6S?xA6N-%Om*4uK6KuMH3D!tT1I zUVi#mG?qjjw~sND^p&Ac-;oL1Phu@;$)7Ek-DJ#g4Y26jTME zCLF|mNTcn`5+OkDuyaSKhz$({%7inF4$d&9IP%;oIJA1)A7D2Qq2g4yaruwUBM|Ew zeuP-xc_+mBmW5rk6`G0pm`qvLo9y!R>;aob=`%Y&=fqpB4pAVoD~9L?JxBI6>3R6d ztngU40cVrrR{Cs$r97uX$yLiWx?Lfv4-w}kCr{WoSlI=8GbAPL8Lln!NKF&gIfZfx zuYts|QV5?Dzi(JaheUVCh8-V7qLi7^lB^L#6=9Kwtc&gylF*ceF+7W8yTWoTd%#*w z5px~(h!@)stg!ilVlYF{Y5PCj31K?8#-0bC)`?P<6>G={EobwL)Zq&@@{<{)Lm@x% z0wW5-{qqnnmr(8v4WrxD5ail455LAiuDkE+%@E{Dt*nF~HzZgA1PL3INIErA&llkX1yGU zoenE#d1b%Vi}$gTo{~X2r5I$^kf8EkuBH&J2l% zI-P4hMc?gkU{`sojPmMz2g-_Ldi0`PL&A=)*Lk+Lm+}HGiwDR!mNLSz)F{MK83;}f z|9Q=|X%G+{6YHyt)Yo1$<)|vV-Xn=O^l^H6jIIa=4^nG-xW=efF~)Da4zDjD#33Hj z{xJrjKYyYo%U`s(9LKsV*c}5;yx2Qh5iSx^U)v^!LT~?iDV7hDmrHw8=pU8*nMC76z{Q<5~HP{!wHLFAgnd(M@L8vQzNja2H`LX z!r`R2QX)-#owYO2eT)*}!{@nbV56<2wfeL4)VGG7oacq>8zb>PcqIMhQoIkoRw^9!!SR~g9s*Zd z7Nq^O36Ur_$%@jzo zC*22QBf{Wty)uYwRt1crqSU^*r6pNz(cs7PtReBDqsNmE_eAP{+ZJ1=e_46e+2Ict zZ@G30>#tzmy;f)kDtMqcrxQNrD!5>;hV7af?V01jnjy=;BYss%C-AG{gI9HyIyDTL z2#0O_2Oip%r+XA&3StCKSQ3b<;b4k(AeAsZ9h13+uU$??MXqq|lFaUPTM5^$GztRO zE?#8HJbV%_)`Y3V<=TUPUkfj*oRF?%W65vqKy8UmsYqzEGznIuyYPJ|hTBUdA z20P+h)2)LTZy3%sReK57DM79&OmM%P;;8`~B;n`|$gC80fvhfVw`zCNy$X8YcH^;+ zksH%fs!lMo*(=}Q&@7d|JL47Kt}waYitJ;T&|ccs;zzuTwM;w!Ne)mYO#(uGLgt+4 z=jDxQc)Mvxp+A#7f5Y{pF^0ASvJe^l4b$;NDGuYB-V6Q7|5WDMwAYqZ!9Ei-nzJ~h zTP7~YPdLCuacE;?j&TrB`O3n&(e_jRAEvaXnxbWa4oafqRxz&T$fwlo?r zs0WNDMbu0g3;q|qo@20myY`eIDUpSyuQx^?R0o(nZ$m+Zn+mRj4&f;$5Cl3~U7oG+i&40=3NHXAJJ z-8x?Pz=ZYo`7U?&GiUa7B+mh9{#%!|2P#FTjyvZWR_*_E-F*M0?&s3H0s>Rs-3hCc z_zr8z$XJD*&&(6MASaqm7a_?rw?>`$eMGyB9*MHY@DN;G@nR^L>1zW!HE@fsOh=2} zmm6zH0kM1qokPbfC)5}}JX_Yo9pG zUvxXWBCaln_IMsuAD;6YA6(t}i$7=D=Iff-o-qp4?oDHqS-OfZbkrH+E#AH4HShF3 zJWhX-dHthce!_Dd<-t&$rc+cpw~a{DuXdCv>$3VhsmUq4E^YK%R(_hJwG-gL`n zrws;J8jqYTRF2BO<({u`yvWo(Q<9Z~W!t!#e&4#@+iJ;LWY`;&5`0sS$`!!dV0)%)>p7oF4|nkH9%4e_%y zq+B&4-HO$JkP&f*^D3+ERJs*UHAcTI( zDcm#pEOGq>qhbk0jUf;9z9QQRZQ{%?1*IV$l&=oo{dPLAE@ta178QC%?{$(-(GWk? zy2P~lX@QfnsML|ki>(6K;`}38pSc9aB-aX>>-L&3y|dT*$z~i`9NINqi(Cfc0dzh~ z07{b@Twfq@rGRi+UeHx;t+8I z-VEltnjk2d$ZDBOrl~U=s~olQeyRp67>A_EbKy{swHw$9@WN@O%H9VT<|V{T8qiH5 zp--`HW`Y2n9uoKouySq#+utbC;XTWr?Nl|uD$S-4U$W)3DW zQXgGRq`uq;85F&2anCKs51Ya1VY;B!x#|m?cJokEBQ@M6D-?~IKfuc6$DR7rSo1r>V6h>qI)%4ZR)x#K(6 zkVM^~9W47q#@{3~a6j~q6W+>O$D1J>OtRdKY(h6L{qdI=QTfss^;=ZeRf_VJrs^?4 zQZf0D9q(pt8}d2osM(&Q6ePpFfj_zU{`zuPvKPXa=UshN?qnH@bW$Odsl8%8j_I|Y}dvv@cQmb$9h&sVTC-6>h^DgFXgo}cd4HrXHD{Iv!`ZVjdduvReeps8} z<|0j8o$k%WE#gNP@$LPAu`Cmx!JETz8>Zbm$VK;K#iYG>cDd~PZpdTJ{rLM)R>#(! z*EMXf2Tx3n=DbY0caiPr4o-Q*+aV#W)cdw;2e~k>IAl2G{K;NkNehfZjmVqG(dsi_ z-NRF8ux9tW!Uv+E+I7VQ?Hl$tnjW4`QTL(TzQO7+78on_T?kUDX$PG%rcxjL7M)Y~J7VW(JcX!`X0N+4H-bpRdKM&1o~2w|;m$ zq1@gc~$v~n6T0R$O| z?##U*4SNreGc^1Ni5=%%+T)h6cq9L=;rm^}XVn$f`g(y~5h+mZHO&Zz%Sk2T6+V!8 z71Daqk1Ga~sp{K1!iK`aCDPSHN}mFgeSEwcZoMXj-{TxH*=dz`@jlvvnpP&?f=sBX zwjd#bn<{j_KU)9vistCwvcGI8WZk)j^cluL{~E7b^0&N_ zZn+XN(%{rWG$np9=-t_C^@}MXBLZREE!k?g^FywqRmzEcJF|*Vqn5t1d!l+wpAY$H z1qXm&t-=p7)1A>1erwl@vVCE@e)i_NUX7!5@m_#B#K?c5CY@hHkv+K}^PN;NBVSmX zs#dZfxzeJXuXJ^H?9NMB=Z|!F>^S<8Tcpv2II0w%Q#(%e(QDf_;<-h3$CQ^?d^YJ} zM`ENKi|8}Gn9bFUJacUEU42on9`$FJ8YT_47nR8S?5m3KIJCYu`H)D<#DG+EH1)R+ z`C$#lMO0b$BUR$Q-vj$jixea{RrXF5d#>?4+WTPe_A?J}FS+&G1N}U139$C4O)!8K z7lW;XE7fCKhkR5Lm<3}#8g5V)4_m8d5YPW3sK|q7rb6rP52w?Uh84qcku~>fJH_aH zC+bfeC`xhjReWfi`$oC2nJtJA@;UR%qcRnL;(#_A^({+AoZ*0r1>4!%-$fg==8@A5 zT(4EA?%Lq~CXG|~J^Vf1Mf8?yGj-qHBu~wG`TDN$`lCBSezE^@^?QkTi}G+u=@;96 z?Aw~(UhOHm*f_oBR`?eu0`*a!^E`4`d)&_Qv2=1OtL?2%_2wrEG{f5J+n$KgRX%kGVlTKtM!!l|q$@mYZA^bkZF)1N`>Hy>h`N#|R~Nx+cQ?G&`0kq3M@LxYyqxv}#5cfmyMcM~ExL5kN$7^gHR?ya4i*roJd zgC%UwCf3OylPOT|Z2PgCcjhBVBr3;oy_I6{1`x zj!&+Qad6m{ue;{$=XVv;bMFSv-I==PCN^{N-K)o>^gunS8_zN;zqfy-@C?cMxBt@M z+{?Op+XbU59vmJ9-;=x^y+sFDSQJCYl|QI!VV>SOS{Kvrym|7h@m9F*mybM%Kn+J7 z{|>pWO1C<<1S(T`k4BUwwF=}?S4W@M(9~F4WGHHW>bISbHm!3G+v?IH5*qrt^p0Vx zGMRDk==uxAQpfG>6nATHD4+LH$(i(h;GthBGNeUnA!c zEO?bjZBd$p&tLW(eShszjbK%DepO5p@Ya*W-SwfX20J?6zQ`i*!;dC|S(^05-_<}>@ z1HVIKtC;ic?`zhOxXzxT7Oe{Q8+wji4@we>?CP8p^fibRKe>sk7Q(SAG1XOpAEq$ou$B zcG>qk7|_}_7C8fvjHuS**`E@=tT{h6r+-)D-pu+gTrUmR3*8Og(3Vt<+mguGs)wl9 zw)ipHS|hDXm3CgG{xip$NC0NdlBgeWB*KzuE&l&~^~({4G@H{o4gR#Z zQ%*Yynp5(dQi8NPjLzP2<5e|`R4}?INPpHW2H_c!{^U=?F8-yes|E1-ic|W+X;t6| zPVT{`PGT(7V^F(saD^0l0?#+!8k7Cu_X9XOrJvc(Mi;Lx|k;XDxyacs@(RrD`b?n7drI z4owsAv2KM9ky9movr}-#h-zoUO4(5gXU_x;Y353-#LkNn6o@u&7VJ>MI0JI;)~7q} z>d&JvkEX0|MQm?so7p)P^GtW3xJGFQ5WlBPSTvPM;-0Z};?jR%s{1QkinCn%pV&U}^xZ0h zJEND@yA-z!-z+LAK6jSoN${Gh$nd8Ix@ni(igs-3P1We&odz%0{4HtUOCP-==+Q;2 zJMpbb18uprW3qANY03^|PYajRqn^LcBSp7WPHg23lr6kOjuOU~6sP<--o1PC($>(&N9rNn7VrDV=aIo5CvrvGCf-zV53YIj;FG88-Zykd zi>(^Iy`BEyO^pf_{hHbHvT!)yp=9#nAKi{cYARqnB*lkL-HjLU|mog9&TTD5`kx$lMCruvl z7x+Fg*g6$zVC<<^TyQu^-=Rrr+D>$>9nm2XDuQzwmBq<>VgjW6uY{9(7E zkzSASsl~5!%t{edaZLwB`&?oDL#M&=f_ zu!|Lm{AWCK3|o^*duz)TWtu;!yA+(3CA~P!_`H@WC%}iUH?OMB_OPh8MXLJOufk)g zky`B^-Tdt<`sb13elO;ctO+Z)*K5w*@Sgd(i?5;G#_@U!6neAozbxrwecU>mmu=Fr zXkZ@6xw+1b*=?O`IxmuuA;-xQ%(~5o(<*+qRhi=4X10^sk6O1C-KIX;EL-=TcW*=Y zfi3prhY4^(EgE4O+?dB4Q>v9)3eruZiutUfj`kL1pSWbT4n#4Uq70yMT$sw(>xBDQ z7fhQi=5c<9+q!Mrl=d<0!Wg~N>rE%eb3AGKP{lOb;lkc=^k4aJ%yf9;d0*UIY+S4o z(cKrYx@OIJZhE|LvG>$=vrIim+m6999UDlSc1`@}4uX^VBKtu8lh+YY-A}Ke_a2Z1lMyn>^XB8lPa{x}SNK`1( z(b!lHWjYUQ@~i1=Z`^q-8bLDqCBsm36j}E%4JBc==QX+mOo8kth%MgK(&a zOk^$p?+y^}g`Vf1Tg$-;6SD06>dK%!SZmXGMeY3`+T2qc8+MGAz2*Hd?jN#a^7Y=3 zk9rYXg)wOX1Jhml{`<~kLq!ygC-;UE*-HP0aKqzT=`CVw^v|Jx!(MQ(ecClVo#@j_4 zj<2L{Cxu>Y+|KAS*M4(`m0Lt@YlddTMlrFWj2Vh<%E8~_o`*Q@dR(%xE3{hVgf;)! zc|^nN_2@8%UHNEzTC;u@71<=S;ntJSRsBKS-l1>4GQLvEwr<&#XY^D}MgQ#@-@P6K z)%oPUaIeeH##9d&zB>eq#z+mWNfSlO<{q33ZK+J2waJv28%Y};|CHI~wAMJi*QlJ` z(3{sI>d4Bs$v^t?$sL*jU)zf_Y)@WvPVwt>E{tMT`}R1`N4t@w((Q=iLm9hGiN2TB z?JtvFzlyQjX}jyWmvULDm*LSLANO&~yd0o5n46d%d`_x_%6aPkuS(f67JU$DR(xq_ zg_@{<7n9TDhhILqq1J{;@%2)<&&C>4wqO4B6(Qj4%g8I*J_aL$-~D@8L1NHW>S5db z>bh6votZ0o4O|R*^$Z&6t;~WGk0JgRX-QdMH{*htKagX_AInvXICYgeZ)*C%*B+4` zMZC9fy15Wlp-&asymw#!>GHN&CSh+~$CwDcxwyFKr}3K(d1!e7Y;ak}#y?Mi`>g@@Nm`E3)~DAQN_-Kj-JcxQ&3ip8#n*3w3LMeYjM87rGjmPUKy@&)XNdf z-D{09Z5A%Ca>2yD%Ll6QmifPeMMGBRkfL`WjLqtovx^!2;Lu zADMS^b~*V%j<0?Ck16;pB32@g)L$IiJy5zl8@Wtu5t`||EtI>u^55YT3z z6_=$EUoLwf?Rhq|9c&1v@W=(g)@uAaQl*DTby2sc1TrD3TU5=VdQThLhkQIYl+~T{ zxte&H$#5O^rJ&?u$chaiE1-R7k=CVc!I$sO1{#?HR8I7p1C)8w+`Lg%=tqRtzQqw< zdnixER7PsLFXq^GxUJK&Z9=-ARGoFg#zZQtiU&Q%QzfGHF<7Dh9|ViRa{amZO1MN+ z=Ze+q5ZM2l7?QAHvQ*i~;8yY*3=UAP#nK#LaDdsZ!mBVifRQeJ!AEVKN=patux)SUW$FVel6K!g@%HPkMqmuuMZt^S(=pZ zk1!8JiXN;a7WBN{o--tHrs<5TW`&%8C;N^ryWV*cb+fwXYmT<55Sb}=rRT#ep6=w2U6W^BPQc6KZ|!M zyL-yP+5Q{j(a(G2wmM`fzF2!UZFp@!>wh128~-!##-l^9Z}IYDmp|U_zPGzp}vQdC3mIF_C*Bl^Go$j`W$q$ zR#UUj=aKz+?6uEpP`b-xt4cm5V|rQy zel^mUx@D&kRN=H{sqG`0c3Mv-V3|>1AHb3KBrR$kwXwhn2iSQwP6VyBBz z9r<9TM}&F>1g(`ap*=ffd>JmD7_X=@T7_esuV!O7xkLY~PT`O@(Sa z4rozhgFjyR(~sitN9q5uC{EoKU&Lkq-gyX{%F8HqCugv~K!_U>?ljc$(z7D{m7G-; zP%f(gr{_ngj`x0OB->BDu_#n1sd?@4$Wp#)U##4%s9%GhX>$xZZgs3$nw)Uzc1wxo zmw;90kDd_PH+avFJbN(PVIOCfM`n52`~IAQ@b%=KUo@^QAjOS;LW;AwTc!l$wu*IY z(?8F&zZR)4DO7O!Ndc>zRCAuH^Z=s4F~xFp>pn2}o-7YNxl4tFMj>VOY5RSIOfHHP zEF)jlO97S!`7swLf?VeIvsNq5e;;szRQ-?EJevYD=OC9y@B1_3H{m$~e=;ZK!N32p zBYdi$3_Gnt5L7eUJzaNk+@AMvP2FYr+@rnZl)&#le$k1Y(`reM*u7dxJAHPj^hLt5 zlfg+UF`gIsmj={40>^0Y?0rmL2<4#GL7U#t9GzR!RPuu_CVoLa61Yq6*NbOg@<5l~ znd5sLy(2j4k_Eqo(@OJk>B4G$Ser2PQ@{0i&TX=s@PwAhwqx$YGQB2Ev8&$rZFuk6 zeM!#7{8q#x{UbrE5kCjmQTTJ2H4lQ{o1>z@UPVwG;^!qFry~IAGaAE0nFZMXUI=Xj zkJ%~E{mpKW!&+Oh@-A7xU2Y&Qr6YxT%r3hmJL_zQrQ*gN?_I9n8~LO|7WfxhT`ZJ= zAol-9oXcQ|ex+a3>4NjIUQmZ|WMQ)N|1sHVb7RT{bCWQ#1VNZCAcfQmnN2l`&}9DtJF`<)Qd@ z)~%!~^2ZL{c$Un)rL#F$t2(KaO2bp+xM`CEr5B8z`nM=!3!vc!Gv!;fCNLK}8dVnFL5|D|L0OOhBbb6$!DJ(J%CEH67OP5KZw$kXNkNjg|%w4qChbBYk z-t-Hw&W4{J`H>So2KKHLad0KRl*q;Vr%M81l4*uwutr%LsEUL`?lD=V@&E8%9z^g#jHaJH0D0A*loytr3*Q z-xX0tox-yZe<&^oK;dwf&f!>PxjM%`bT&Ln*pfR1jnEG4j@a8+|0qdGHJG4;Y=N1SpROh2tyUSIrO+EC*Q0&)?v?MFh7#jqwcZU`# ziKM(fC=@;HA-3T5V;)n(EpB3acOO}_`UR`}DxVNDZlI@p*blY zPqhl`>DY;K^j954<^at*&~ZZwS}7e2P!BAQ%3CqWt#ul*&a&WiGL z|B*QMr{OStviul!ToDzf1Z&8Yg)XEFoq;JsQYN!}B)CUHV2Rrb{|L782h-)k5ao_L zz%(TZM%)*`X?+`GF(e3x!}@t?J`D7}FU42o3Au6DYy(OmzJpY)fn6J*Jo%i;+^q)CLwx!$bo}cYni!2DPe^=2%lOwrU0tmg5 zhFK}FJ1N_62F8nUnJhD7EH7c8?wWR0|F6MMV1!HoCbk<`a2n-5FHrSPiU=nz*2s&B zp)bJ(2Psq?(_M`UQ)y`(n>Q27Rb^UxeHBj-gOKr|7fdW$8?a|DGX3Y4m#+?f{dtysI@k2u}LeM z50=5sN26ri>?N)pK|zS!9V z=sJ>fyDkJv5+`woZ+81!nSsTPsAZ;i@ zZLe8Q1}?gQZ)j;vVUA6uJ}!%Qb@griVgBrvnv~L4`Ud6Zs8zXa+cbTPs87_urw^tbhnThq%8RIq9(db+8Z_S207AyXxPevZ z0SDVscSRy=9PUV^P@m(3EcENG_V1fx-jAEX8)>~jjf{5#IV(!Xq9byZMmQZBa(33G zmVP>%{>Z~+7v06QBL#aI&?^UWxTo9iFSDGs2QL*&<)-!%&x{@Tbw(v+O2z)gG2otk z3%D6eP|LAg8beznV*(z12@90}1VG;UmnU+b7PLZx+g~sYFpKoTZ{_qbixm68PT)d2 zVg$Li=FM<*RWQBt<*IJy65wsRy_hp;wBqWGh;4?VIfj($ZTNz=gdJFT=u0{*l3+bI zc?C`$!sZMgI6^oCH0V^8382QHLrsYAg9WVLpa!Z6l2Hxd^i-H0n!$;oz}H%kzTFQh zT*3Ac0hO<*5HZ29Fut4fNawkVsbNSI;S$v)F&_{aE{#eW1|4P;=W^F&o0^UQyd%uL zI0Rkkp73psJg00A;kBXPsEAqggE_9KRZscS!V=nC;Ij}{D(yiXtDvxbY#|8AXgihW?3WM4e{0hP zr}{$hq$a3pBjHs}uY*xt+%xsX3?Gl*7BYOcDE^+|^StR_3gvd=$nwwj)(romx=xb2 zy7DCEmD>N5ez-LDi_(!N+|udh`g=uGwZcks!qEj59wh=h6(L93G8xaT`hT0mB=Rqk zm_Y3dia=_nTOJf=Okzixp*Z7<-J_-p3+JuNQ#G!9bU~qqsY?>r=rdnRBr*Z1dI949 zAd;&EbXf^=*sNR%Si+IdU~WJN+}_CnFep~z(d##P5+TR)<7krP40Ef2C)%VxK9%l&{pMe`^H~yZPdRWy8 zMrHkdGV}0Xs9JqzVR+pDv!SRFXKil9lLDfkz#r;_7mY&9NTP5UB&YaB9QO`8a}&1HON`g0#1 zX1b8A%Gb@g+YQpU^J8_xWc64z*_)ZiY!G z%RltrRtJu<%Y#&rWyglu;@#N+c&sV4Ha+Q}wcN(5!s{{XT=v+ndsOLzc`7LawdLn= z?B>^9SQOjSv$H!yR8}-b4if&NF}^Sx)Z9jUDYJ#pmV5A^e<75>+lYTQS!wmap7dY+ zqUF>N80*~-mF1ySwz(OiED;#OyzlZBzk=)Rw<5YiqrDt$^f+TGpTKCMl6F*B|4WGk zaTw-O(S)&9LjjV8v`?4Qnm2EzF#R~cV^1%^)=Do(fN@80p? z|GEs-wUHw=pv(s%^bxW3M5doTWt}wKUa&Nt^%-gSUmAZt!}>KYYB$JTtA4E@<0NR3ReXgQS4|n<}`uw6W=BhFq`kF0+q}{+pu4r24i8|eC!?X zyX^5YEtso+beKO&nmx9XM@WaKlBo3{7-nkwIn}+hGjA$g<>Hkxz;#^lw^UxG*gHzw zZJu1}x-8f$xGsPRnb<~4=|iG|btz)D##ERI5)4XcH4KDVc;4dw9RGsX?u*Ia&_51* z6(zM{6ONu%`9&LXb99AJVNv*k=Sg(sIjC!BI|72?IM`e=d^{hETC zJMb=}ShmSBBgXRh7A!@9AV{AR6U-zHz7iGTLrCq^mb*t{?2sXu8=vVPw3KTe#TnwENC?JM*mV`Rl8>z27tkt1b(0w4Vj27tYz%FQ)d8 z@b)+!e)p$LekUXBTm?!|-wDygQYQ@FuFQcbA>=OJfM_>r?!y}pG2L;WTCd2TuwR{# z%&q$dM+u_>oWh1(xx538#J2sdO2r$*p>=9}FHdmcQNY5QT%W5Ev-tX48f6DHO>(TtsvC6F0h ziNhr@)TB~fo{BSl_@g6zO+5z_Bs2BLtaDS|e418-@=KUSDXI`F6=lhB4yk8Mgh6{t zi#de09%^r#;~Ra4cMVK9eUl9Frh&Tu*4uKhX>dwV)L`A`XW8{$!KxE4|G16Xf5a9+ zDj%O?e{hqep_5DtQT)5ESvG&3kc8hClKsl#mi~fOC~3heBtfhLY#oLm&{lj!5(Lip z3z#T~L8{Cc@QHK4m=$GCT550lWT_`M>_iY^DTAXA=VKOLIUr$$5Iu~XUhI&;1n)c> zER&ZYA_hl)T_@9^7O8c7FP9G;vTFsK%O?@AW_ zy(_N7Ye{9HFi!@;C3cv7HZs#Wb1;3N6DhSyc5Q#1QhPJ`XK>|n$vtT)XL%yb> z0Ool%#e7wSVeTftj=UYdICfgWiQm1ktV@%Z-@@{K%l;6%(?wQ=7hi>vU@mUB{I8m` zu+*mw8EJrDT=0JyJNu}n>M)M)Zg3Fj0FDj891O>B8z+=P7E=g(jqws_g7OYhDIDa@ zii+cSkq&hbs2`ji@tnYTlh;L95FrKz!%hh&CYA<_GZAvBK!StJdhQ+BwkzUa`*XYZ z?)SUT@B4h8&lj*NDa@nmYkCK?K#_hd{@g@?9s4bsBG_c~IBFPnqT3t3+tlcO>4a08W^J9{goLrzYjR#u7wqTWN8iJV0UL`Bt_ixcUp$0CTU_D+gybVGA@KkL zZJP!po&XBP15AEl@=|yU9`jXRWJX2wrKLx zmbRbaT{iQ%La|%G3Ap;a_Gx_@d6ImZR*4+@9iqNj;?dG2V2Z+j2f;xUFo5VkN$A@I z1G%1TJK5r%&xK z#1j`(u{qU{xZoxaXq}h6ik~KXzybdli!XZxclzrDEA;r-ual~-VjB--{SL=bedIK* z)@Ssj?tEJ%gD8aE8;1PrZ#WST@Q2D=O9CEA;)E{Z$W0vz)WY9D60oLjohu8(_|ye2 zbaIRx-8g+QJN)aKCXLOK>UD+dy}GENU58w2k7`d2e#FUPuEx+z3mCC3nd)wH{ShMY zXWsl> zG#CpRG!ll+0V8+AkT{=+JF1Q)o|!<*qe*-2V;nS|9E7sR{n|WK1(@Hv6{cOxT8);m z?)BT2-3gEi*V53J_qp)PXkVgK#Blj$NQO=K!Q~U z5wFs`JgCNlAXBQJf9;Jl*7r$lF3zP?<`ou)Koc*~!%6DS#aJ(06~W#Ca=ktXa)oB) SE!;;W%v0ZKSKq<->Hh+#zj{;v From 22153b629e56ad4fc6ea0fdd6c584aee58892432 Mon Sep 17 00:00:00 2001 From: Lian Junhong <194668285@qq.com> Date: Fri, 13 May 2022 21:34:33 +0800 Subject: [PATCH 37/39] add javadocs for project --- .idea/EBU6304_G058_flight.iml | 1 - .idea/misc.xml | 9 + docs/allclasses-index.html | 223 +++++ docs/allpackages-index.html | 85 ++ docs/com.app.flight/com/app/flight/Main.html | 206 +++++ .../com/app/flight/class-use/Main.html | 58 ++ .../controller/AdminLoginController.html | 215 +++++ .../controller/AdminWelcomeController.html | 208 +++++ .../controller/AttentionNotesController.html | 256 ++++++ .../controller/ComingSoonController.html | 223 +++++ .../flight/controller/FinishController.html | 239 +++++ .../flight/controller/FoodTypeController.html | 266 ++++++ .../app/flight/controller/HelpController.html | 257 ++++++ .../controller/InfoConfirmController.html | 288 ++++++ .../controller/InputNumberController.html | 358 ++++++++ .../controller/NavigationMapController.html | 216 +++++ .../flight/controller/PaymentController.html | 266 ++++++ .../controller/PrintTagsController.html | 321 +++++++ .../flight/controller/ResultController.html | 266 ++++++ .../flight/controller/RetrieveController.html | 261 ++++++ .../controller/ScanInstructionController.html | 240 +++++ .../controller/SelectLanguageController.html | 257 ++++++ .../controller/SelectMethodController.html | 281 ++++++ .../controller/SelectPaymentController.html | 279 ++++++ .../controller/SelectSeatController.html | 351 +++++++ .../class-use/AdminLoginController.html | 58 ++ .../class-use/AdminWelcomeController.html | 58 ++ .../class-use/AttentionNotesController.html | 58 ++ .../class-use/ComingSoonController.html | 58 ++ .../class-use/FinishController.html | 58 ++ .../class-use/FoodTypeController.html | 58 ++ .../controller/class-use/HelpController.html | 58 ++ .../class-use/InfoConfirmController.html | 58 ++ .../class-use/InputNumberController.html | 58 ++ .../class-use/NavigationMapController.html | 58 ++ .../class-use/PaymentController.html | 58 ++ .../class-use/PrintTagsController.html | 58 ++ .../class-use/ResultController.html | 58 ++ .../class-use/RetrieveController.html | 58 ++ .../class-use/ScanInstructionController.html | 93 ++ .../class-use/SelectLanguageController.html | 58 ++ .../class-use/SelectMethodController.html | 58 ++ .../class-use/SelectPaymentController.html | 58 ++ .../class-use/SelectSeatController.html | 58 ++ .../flight/controller/package-summary.html | 145 +++ .../app/flight/controller/package-tree.html | 90 ++ .../app/flight/controller/package-use.html | 80 ++ .../com/app/flight/entity/Admin.html | 137 +++ .../com/app/flight/entity/BaseAccount.html | 139 +++ .../com/app/flight/entity/BoardingPass.html | 135 +++ .../com/app/flight/entity/Company.html | 135 +++ .../com/app/flight/entity/Flight.html | 135 +++ .../com/app/flight/entity/Food.foodType.html | 234 +++++ .../com/app/flight/entity/Food.html | 150 +++ .../com/app/flight/entity/Passenger.html | 135 +++ .../com/app/flight/entity/Reservation.html | 135 +++ .../com/app/flight/entity/Seat.html | 266 ++++++ .../com/app/flight/entity/Staff.html | 137 +++ .../app/flight/entity/class-use/Admin.html | 58 ++ .../flight/entity/class-use/BaseAccount.html | 86 ++ .../flight/entity/class-use/BoardingPass.html | 117 +++ .../app/flight/entity/class-use/Company.html | 58 ++ .../app/flight/entity/class-use/Flight.html | 104 +++ .../entity/class-use/Food.foodType.html | 125 +++ .../com/app/flight/entity/class-use/Food.html | 83 ++ .../flight/entity/class-use/Passenger.html | 180 ++++ .../flight/entity/class-use/Reservation.html | 142 +++ .../com/app/flight/entity/class-use/Seat.html | 91 ++ .../app/flight/entity/class-use/Staff.html | 58 ++ .../app/flight/entity/package-summary.html | 127 +++ .../com/app/flight/entity/package-tree.html | 98 ++ .../com/app/flight/entity/package-use.html | 160 ++++ .../com/app/flight/package-summary.html | 103 +++ .../com/app/flight/package-tree.html | 76 ++ .../com/app/flight/package-use.html | 58 ++ .../app/flight/service/GetBoardingPass.html | 143 +++ .../com/app/flight/service/GetFlight.html | 143 +++ .../GetNavigationPicture.gateType.html | 242 +++++ .../flight/service/GetNavigationPicture.html | 163 ++++ .../com/app/flight/service/GetPassenger.html | 161 ++++ .../app/flight/service/GetReservation.html | 145 +++ .../com/app/flight/service/GetSeatMap.html | 143 +++ .../com/app/flight/service/SetFood.html | 141 +++ .../com/app/flight/service/SetSeatMap.html | 152 +++ .../service/class-use/GetBoardingPass.html | 83 ++ .../flight/service/class-use/GetFlight.html | 83 ++ .../GetNavigationPicture.gateType.html | 128 +++ .../class-use/GetNavigationPicture.html | 83 ++ .../service/class-use/GetPassenger.html | 99 ++ .../service/class-use/GetReservation.html | 99 ++ .../flight/service/class-use/GetSeatMap.html | 99 ++ .../app/flight/service/class-use/SetFood.html | 83 ++ .../flight/service/class-use/SetSeatMap.html | 83 ++ .../app/flight/service/external/Printer.html | 226 +++++ .../service/external/QRCodeGenerator.html | 215 +++++ .../app/flight/service/external/Scanner.html | 249 +++++ .../service/external/class-use/Printer.html | 58 ++ .../external/class-use/QRCodeGenerator.html | 58 ++ .../service/external/class-use/Scanner.html | 58 ++ .../service/external/package-summary.html | 103 +++ .../flight/service/external/package-tree.html | 74 ++ .../flight/service/external/package-use.html | 58 ++ .../service/impl/GetBoardingPassImpl.html | 181 ++++ .../flight/service/impl/GetFlightImpl.html | 192 ++++ .../flight/service/impl/GetPassengerImpl.html | 213 +++++ .../service/impl/GetReservationImpl.html | 192 ++++ .../service/impl/NavigationPictureImpl.html | 219 +++++ .../app/flight/service/impl/SeatMapImpl.html | 220 +++++ .../app/flight/service/impl/SetFoodImpl.html | 188 ++++ .../impl/class-use/GetBoardingPassImpl.html | 58 ++ .../service/impl/class-use/GetFlightImpl.html | 58 ++ .../impl/class-use/GetPassengerImpl.html | 58 ++ .../impl/class-use/GetReservationImpl.html | 58 ++ .../impl/class-use/NavigationPictureImpl.html | 58 ++ .../service/impl/class-use/SeatMapImpl.html | 58 ++ .../service/impl/class-use/SetFoodImpl.html | 58 ++ .../flight/service/impl/package-summary.html | 111 +++ .../app/flight/service/impl/package-tree.html | 78 ++ .../app/flight/service/impl/package-use.html | 58 ++ .../app/flight/service/package-summary.html | 129 +++ .../com/app/flight/service/package-tree.html | 89 ++ .../com/app/flight/service/package-use.html | 126 +++ .../service/temp/GetPassengerImplTemp.html | 202 ++++ .../service/temp/GetReservationImplTemp.html | 181 ++++ .../service/temp/GetSeatMapImplTemp.html | 181 ++++ .../temp/class-use/GetPassengerImplTemp.html | 58 ++ .../class-use/GetReservationImplTemp.html | 58 ++ .../temp/class-use/GetSeatMapImplTemp.html | 58 ++ .../flight/service/temp/package-summary.html | 103 +++ .../app/flight/service/temp/package-tree.html | 74 ++ .../app/flight/service/temp/package-use.html | 58 ++ .../com/app/flight/util/Csv.html | 360 ++++++++ .../com/app/flight/util/DataParser.html | 173 ++++ .../com/app/flight/util/Json.html | 316 +++++++ .../com/app/flight/util/Obj.html | 184 ++++ .../com/app/flight/util/SeatUtil.html | 190 ++++ .../com/app/flight/util/Validator.html | 288 ++++++ .../com/app/flight/util/class-use/Csv.html | 58 ++ .../app/flight/util/class-use/DataParser.html | 58 ++ .../com/app/flight/util/class-use/Json.html | 58 ++ .../com/app/flight/util/class-use/Obj.html | 58 ++ .../app/flight/util/class-use/SeatUtil.html | 58 ++ .../app/flight/util/class-use/Validator.html | 58 ++ .../com/app/flight/util/package-summary.html | 111 +++ .../com/app/flight/util/package-tree.html | 77 ++ .../com/app/flight/util/package-use.html | 58 ++ docs/com.app.flight/module-summary.html | 100 ++ .../serviceTest/GetBoardingPassTest.html | 161 ++++ .../serviceTest/GetFlightTest.html | 161 ++++ .../serviceTest/GetPassengerTest.html | 161 ++++ .../serviceTest/GetSeatMapTestUtil.html | 161 ++++ .../serviceTest/SetSeatMapTestUtil.html | 161 ++++ .../class-use/GetBoardingPassTest.html | 58 ++ .../serviceTest/class-use/GetFlightTest.html | 58 ++ .../class-use/GetPassengerTest.html | 58 ++ .../class-use/GetSeatMapTestUtil.html | 58 ++ .../class-use/SetSeatMapTestUtil.html | 58 ++ .../serviceTest/package-summary.html | 92 ++ .../serviceTest/package-tree.html | 76 ++ .../serviceTest/package-use.html | 58 ++ docs/com.app.flight/utilTest/CsvTest.html | 213 +++++ .../com.app.flight/utilTest/SeatUtilTest.html | 171 ++++ .../utilTest/class-use/CsvTest.html | 58 ++ .../utilTest/class-use/SeatUtilTest.html | 58 ++ .../utilTest/package-summary.html | 86 ++ .../com.app.flight/utilTest/package-tree.html | 73 ++ docs/com.app.flight/utilTest/package-use.html | 58 ++ .../BoardingGateValidatorTest.html | 167 ++++ .../validatorTest/FlightIdValidatorTest.html | 167 ++++ .../validatorTest/IdValidatorTest.html | 167 ++++ .../ReservationIdValidatorTest.html | 167 ++++ .../validatorTest/TimeValidatorTest.html | 129 +++ .../class-use/BoardingGateValidatorTest.html | 58 ++ .../class-use/FlightIdValidatorTest.html | 58 ++ .../class-use/IdValidatorTest.html | 58 ++ .../class-use/ReservationIdValidatorTest.html | 58 ++ .../class-use/TimeValidatorTest.html | 58 ++ .../validatorTest/package-summary.html | 92 ++ .../validatorTest/package-tree.html | 76 ++ .../validatorTest/package-use.html | 58 ++ docs/constant-values.html | 134 +++ docs/element-list | 12 + docs/help-doc.html | 192 ++++ docs/index-files/index-1.html | 92 ++ docs/index-files/index-10.html | 68 ++ docs/index-files/index-11.html | 134 +++ docs/index-files/index-12.html | 80 ++ docs/index-files/index-13.html | 123 +++ docs/index-files/index-14.html | 70 ++ docs/index-files/index-15.html | 106 +++ docs/index-files/index-16.html | 68 ++ docs/index-files/index-17.html | 118 +++ docs/index-files/index-18.html | 226 +++++ docs/index-files/index-19.html | 88 ++ docs/index-files/index-2.html | 110 +++ docs/index-files/index-20.html | 80 ++ docs/index-files/index-21.html | 101 ++ docs/index-files/index-22.html | 68 ++ docs/index-files/index-3.html | 136 +++ docs/index-files/index-4.html | 76 ++ docs/index-files/index-5.html | 70 ++ docs/index-files/index-6.html | 116 +++ docs/index-files/index-7.html | 212 +++++ docs/index-files/index-8.html | 116 +++ docs/index-files/index-9.html | 88 ++ docs/index.html | 26 + docs/jquery-ui.overrides.css | 34 + docs/legal/COPYRIGHT | 1 + docs/legal/LICENSE | 1 + docs/legal/jquery.md | 72 ++ docs/legal/jqueryUI.md | 49 + docs/member-search-index.js | 1 + docs/module-search-index.js | 1 + docs/overview-tree.html | 177 ++++ docs/package-search-index.js | 1 + docs/resources/glass.png | Bin 0 -> 499 bytes docs/resources/x.png | Bin 0 -> 394 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 335 bytes .../images/ui-bg_glass_65_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 332 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 280 bytes .../images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 6992 bytes .../images/ui-icons_888888_256x240.png | Bin 0 -> 6999 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4549 bytes docs/script-dir/jquery-3.5.1.min.js | 2 + docs/script-dir/jquery-ui.min.css | 7 + docs/script-dir/jquery-ui.min.js | 6 + docs/script-dir/jquery-ui.structure.min.css | 5 + docs/script.js | 132 +++ docs/search.js | 354 +++++++ docs/stylesheet.css | 865 ++++++++++++++++++ docs/tag-search-index.js | 1 + docs/type-search-index.js | 1 + pom.xml | 8 + .../controller/AdminLoginController.java | 2 + .../flight/controller/FoodTypeController.java | 4 +- .../controller/SelectMethodController.java | 2 +- 241 files changed, 27279 insertions(+), 4 deletions(-) create mode 100644 docs/allclasses-index.html create mode 100644 docs/allpackages-index.html create mode 100644 docs/com.app.flight/com/app/flight/Main.html create mode 100644 docs/com.app.flight/com/app/flight/class-use/Main.html create mode 100644 docs/com.app.flight/com/app/flight/controller/AdminLoginController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/AdminWelcomeController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/AttentionNotesController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/ComingSoonController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/FinishController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/FoodTypeController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/HelpController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/InfoConfirmController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/InputNumberController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/NavigationMapController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/PaymentController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/PrintTagsController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/ResultController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/RetrieveController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/ScanInstructionController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/SelectLanguageController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/SelectMethodController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/SelectPaymentController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/SelectSeatController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/AdminLoginController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/AdminWelcomeController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/AttentionNotesController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/ComingSoonController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/FinishController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/FoodTypeController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/HelpController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/InfoConfirmController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/InputNumberController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/NavigationMapController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/PaymentController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/PrintTagsController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/ResultController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/RetrieveController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/ScanInstructionController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/SelectLanguageController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/SelectMethodController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/SelectPaymentController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/class-use/SelectSeatController.html create mode 100644 docs/com.app.flight/com/app/flight/controller/package-summary.html create mode 100644 docs/com.app.flight/com/app/flight/controller/package-tree.html create mode 100644 docs/com.app.flight/com/app/flight/controller/package-use.html create mode 100644 docs/com.app.flight/com/app/flight/entity/Admin.html create mode 100644 docs/com.app.flight/com/app/flight/entity/BaseAccount.html create mode 100644 docs/com.app.flight/com/app/flight/entity/BoardingPass.html create mode 100644 docs/com.app.flight/com/app/flight/entity/Company.html create mode 100644 docs/com.app.flight/com/app/flight/entity/Flight.html create mode 100644 docs/com.app.flight/com/app/flight/entity/Food.foodType.html create mode 100644 docs/com.app.flight/com/app/flight/entity/Food.html create mode 100644 docs/com.app.flight/com/app/flight/entity/Passenger.html create mode 100644 docs/com.app.flight/com/app/flight/entity/Reservation.html create mode 100644 docs/com.app.flight/com/app/flight/entity/Seat.html create mode 100644 docs/com.app.flight/com/app/flight/entity/Staff.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/Admin.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/BaseAccount.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/BoardingPass.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/Company.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/Flight.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/Food.foodType.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/Food.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/Passenger.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/Reservation.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/Seat.html create mode 100644 docs/com.app.flight/com/app/flight/entity/class-use/Staff.html create mode 100644 docs/com.app.flight/com/app/flight/entity/package-summary.html create mode 100644 docs/com.app.flight/com/app/flight/entity/package-tree.html create mode 100644 docs/com.app.flight/com/app/flight/entity/package-use.html create mode 100644 docs/com.app.flight/com/app/flight/package-summary.html create mode 100644 docs/com.app.flight/com/app/flight/package-tree.html create mode 100644 docs/com.app.flight/com/app/flight/package-use.html create mode 100644 docs/com.app.flight/com/app/flight/service/GetBoardingPass.html create mode 100644 docs/com.app.flight/com/app/flight/service/GetFlight.html create mode 100644 docs/com.app.flight/com/app/flight/service/GetNavigationPicture.gateType.html create mode 100644 docs/com.app.flight/com/app/flight/service/GetNavigationPicture.html create mode 100644 docs/com.app.flight/com/app/flight/service/GetPassenger.html create mode 100644 docs/com.app.flight/com/app/flight/service/GetReservation.html create mode 100644 docs/com.app.flight/com/app/flight/service/GetSeatMap.html create mode 100644 docs/com.app.flight/com/app/flight/service/SetFood.html create mode 100644 docs/com.app.flight/com/app/flight/service/SetSeatMap.html create mode 100644 docs/com.app.flight/com/app/flight/service/class-use/GetBoardingPass.html create mode 100644 docs/com.app.flight/com/app/flight/service/class-use/GetFlight.html create mode 100644 docs/com.app.flight/com/app/flight/service/class-use/GetNavigationPicture.gateType.html create mode 100644 docs/com.app.flight/com/app/flight/service/class-use/GetNavigationPicture.html create mode 100644 docs/com.app.flight/com/app/flight/service/class-use/GetPassenger.html create mode 100644 docs/com.app.flight/com/app/flight/service/class-use/GetReservation.html create mode 100644 docs/com.app.flight/com/app/flight/service/class-use/GetSeatMap.html create mode 100644 docs/com.app.flight/com/app/flight/service/class-use/SetFood.html create mode 100644 docs/com.app.flight/com/app/flight/service/class-use/SetSeatMap.html create mode 100644 docs/com.app.flight/com/app/flight/service/external/Printer.html create mode 100644 docs/com.app.flight/com/app/flight/service/external/QRCodeGenerator.html create mode 100644 docs/com.app.flight/com/app/flight/service/external/Scanner.html create mode 100644 docs/com.app.flight/com/app/flight/service/external/class-use/Printer.html create mode 100644 docs/com.app.flight/com/app/flight/service/external/class-use/QRCodeGenerator.html create mode 100644 docs/com.app.flight/com/app/flight/service/external/class-use/Scanner.html create mode 100644 docs/com.app.flight/com/app/flight/service/external/package-summary.html create mode 100644 docs/com.app.flight/com/app/flight/service/external/package-tree.html create mode 100644 docs/com.app.flight/com/app/flight/service/external/package-use.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/GetBoardingPassImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/GetFlightImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/GetPassengerImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/GetReservationImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/NavigationPictureImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/SeatMapImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/SetFoodImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/class-use/GetBoardingPassImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/class-use/GetFlightImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/class-use/GetPassengerImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/class-use/GetReservationImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/class-use/NavigationPictureImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/class-use/SeatMapImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/class-use/SetFoodImpl.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/package-summary.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/package-tree.html create mode 100644 docs/com.app.flight/com/app/flight/service/impl/package-use.html create mode 100644 docs/com.app.flight/com/app/flight/service/package-summary.html create mode 100644 docs/com.app.flight/com/app/flight/service/package-tree.html create mode 100644 docs/com.app.flight/com/app/flight/service/package-use.html create mode 100644 docs/com.app.flight/com/app/flight/service/temp/GetPassengerImplTemp.html create mode 100644 docs/com.app.flight/com/app/flight/service/temp/GetReservationImplTemp.html create mode 100644 docs/com.app.flight/com/app/flight/service/temp/GetSeatMapImplTemp.html create mode 100644 docs/com.app.flight/com/app/flight/service/temp/class-use/GetPassengerImplTemp.html create mode 100644 docs/com.app.flight/com/app/flight/service/temp/class-use/GetReservationImplTemp.html create mode 100644 docs/com.app.flight/com/app/flight/service/temp/class-use/GetSeatMapImplTemp.html create mode 100644 docs/com.app.flight/com/app/flight/service/temp/package-summary.html create mode 100644 docs/com.app.flight/com/app/flight/service/temp/package-tree.html create mode 100644 docs/com.app.flight/com/app/flight/service/temp/package-use.html create mode 100644 docs/com.app.flight/com/app/flight/util/Csv.html create mode 100644 docs/com.app.flight/com/app/flight/util/DataParser.html create mode 100644 docs/com.app.flight/com/app/flight/util/Json.html create mode 100644 docs/com.app.flight/com/app/flight/util/Obj.html create mode 100644 docs/com.app.flight/com/app/flight/util/SeatUtil.html create mode 100644 docs/com.app.flight/com/app/flight/util/Validator.html create mode 100644 docs/com.app.flight/com/app/flight/util/class-use/Csv.html create mode 100644 docs/com.app.flight/com/app/flight/util/class-use/DataParser.html create mode 100644 docs/com.app.flight/com/app/flight/util/class-use/Json.html create mode 100644 docs/com.app.flight/com/app/flight/util/class-use/Obj.html create mode 100644 docs/com.app.flight/com/app/flight/util/class-use/SeatUtil.html create mode 100644 docs/com.app.flight/com/app/flight/util/class-use/Validator.html create mode 100644 docs/com.app.flight/com/app/flight/util/package-summary.html create mode 100644 docs/com.app.flight/com/app/flight/util/package-tree.html create mode 100644 docs/com.app.flight/com/app/flight/util/package-use.html create mode 100644 docs/com.app.flight/module-summary.html create mode 100644 docs/com.app.flight/serviceTest/GetBoardingPassTest.html create mode 100644 docs/com.app.flight/serviceTest/GetFlightTest.html create mode 100644 docs/com.app.flight/serviceTest/GetPassengerTest.html create mode 100644 docs/com.app.flight/serviceTest/GetSeatMapTestUtil.html create mode 100644 docs/com.app.flight/serviceTest/SetSeatMapTestUtil.html create mode 100644 docs/com.app.flight/serviceTest/class-use/GetBoardingPassTest.html create mode 100644 docs/com.app.flight/serviceTest/class-use/GetFlightTest.html create mode 100644 docs/com.app.flight/serviceTest/class-use/GetPassengerTest.html create mode 100644 docs/com.app.flight/serviceTest/class-use/GetSeatMapTestUtil.html create mode 100644 docs/com.app.flight/serviceTest/class-use/SetSeatMapTestUtil.html create mode 100644 docs/com.app.flight/serviceTest/package-summary.html create mode 100644 docs/com.app.flight/serviceTest/package-tree.html create mode 100644 docs/com.app.flight/serviceTest/package-use.html create mode 100644 docs/com.app.flight/utilTest/CsvTest.html create mode 100644 docs/com.app.flight/utilTest/SeatUtilTest.html create mode 100644 docs/com.app.flight/utilTest/class-use/CsvTest.html create mode 100644 docs/com.app.flight/utilTest/class-use/SeatUtilTest.html create mode 100644 docs/com.app.flight/utilTest/package-summary.html create mode 100644 docs/com.app.flight/utilTest/package-tree.html create mode 100644 docs/com.app.flight/utilTest/package-use.html create mode 100644 docs/com.app.flight/validatorTest/BoardingGateValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/FlightIdValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/IdValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/ReservationIdValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/TimeValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/class-use/BoardingGateValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/class-use/FlightIdValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/class-use/IdValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/class-use/ReservationIdValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/class-use/TimeValidatorTest.html create mode 100644 docs/com.app.flight/validatorTest/package-summary.html create mode 100644 docs/com.app.flight/validatorTest/package-tree.html create mode 100644 docs/com.app.flight/validatorTest/package-use.html create mode 100644 docs/constant-values.html create mode 100644 docs/element-list create mode 100644 docs/help-doc.html create mode 100644 docs/index-files/index-1.html create mode 100644 docs/index-files/index-10.html create mode 100644 docs/index-files/index-11.html create mode 100644 docs/index-files/index-12.html create mode 100644 docs/index-files/index-13.html create mode 100644 docs/index-files/index-14.html create mode 100644 docs/index-files/index-15.html create mode 100644 docs/index-files/index-16.html create mode 100644 docs/index-files/index-17.html create mode 100644 docs/index-files/index-18.html create mode 100644 docs/index-files/index-19.html create mode 100644 docs/index-files/index-2.html create mode 100644 docs/index-files/index-20.html create mode 100644 docs/index-files/index-21.html create mode 100644 docs/index-files/index-22.html create mode 100644 docs/index-files/index-3.html create mode 100644 docs/index-files/index-4.html create mode 100644 docs/index-files/index-5.html create mode 100644 docs/index-files/index-6.html create mode 100644 docs/index-files/index-7.html create mode 100644 docs/index-files/index-8.html create mode 100644 docs/index-files/index-9.html create mode 100644 docs/index.html create mode 100644 docs/jquery-ui.overrides.css create mode 100644 docs/legal/COPYRIGHT create mode 100644 docs/legal/LICENSE create mode 100644 docs/legal/jquery.md create mode 100644 docs/legal/jqueryUI.md create mode 100644 docs/member-search-index.js create mode 100644 docs/module-search-index.js create mode 100644 docs/overview-tree.html create mode 100644 docs/package-search-index.js create mode 100644 docs/resources/glass.png create mode 100644 docs/resources/x.png create mode 100644 docs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 docs/script-dir/images/ui-bg_glass_65_dadada_1x400.png create mode 100644 docs/script-dir/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 docs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 docs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 docs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 docs/script-dir/images/ui-icons_222222_256x240.png create mode 100644 docs/script-dir/images/ui-icons_2e83ff_256x240.png create mode 100644 docs/script-dir/images/ui-icons_454545_256x240.png create mode 100644 docs/script-dir/images/ui-icons_888888_256x240.png create mode 100644 docs/script-dir/images/ui-icons_cd0a0a_256x240.png create mode 100644 docs/script-dir/jquery-3.5.1.min.js create mode 100644 docs/script-dir/jquery-ui.min.css create mode 100644 docs/script-dir/jquery-ui.min.js create mode 100644 docs/script-dir/jquery-ui.structure.min.css create mode 100644 docs/script.js create mode 100644 docs/search.js create mode 100644 docs/stylesheet.css create mode 100644 docs/tag-search-index.js create mode 100644 docs/type-search-index.js diff --git a/.idea/EBU6304_G058_flight.iml b/.idea/EBU6304_G058_flight.iml index 0155f49..a2cbbe3 100644 --- a/.idea/EBU6304_G058_flight.iml +++ b/.idea/EBU6304_G058_flight.iml @@ -38,6 +38,5 @@ - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 26bdc61..6fe3d9d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,6 +5,15 @@ + + + + diff --git a/docs/allpackages-index.html b/docs/allpackages-index.html new file mode 100644 index 0000000..b7001c0 --- /dev/null +++ b/docs/allpackages-index.html @@ -0,0 +1,85 @@ + + + + +所有程序包 + + + + + + + + + + + + + + + +
+ + +
+ + diff --git a/docs/com.app.flight/com/app/flight/Main.html b/docs/com.app.flight/com/app/flight/Main.html new file mode 100644 index 0000000..2709865 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/Main.html @@ -0,0 +1,206 @@ + + + + +Main + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 com.app.flight
+

类 Main

+
+
java.lang.Object +
javafx.application.Application +
com.app.flight.Main
+
+
+
+
+
public class Main +extends javafx.application.Application
+
Updated the code of its own version.
+
+
版本:
+
1.0
+
作者:
+
LianJunhong
+
+
+
+
    + +
  • +
    +

    嵌套类概要

    +
    +

    从类继承的嵌套类/接口 javafx.application.Application

    +javafx.application.Application.Parameters
    +
    +
  • + +
  • +
    +

    字段概要

    +
    +

    从类继承的字段 javafx.application.Application

    +STYLESHEET_CASPIAN, STYLESHEET_MODENA
    +
    +
  • + +
  • +
    +

    构造器概要

    +
    构造器
    +
    +
    构造器
    +
    说明
    + +
     
    +
    +
    +
  • + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    +
    static void
    +
    main(String[] args)
    +
     
    +
    void
    +
    start(javafx.stage.Stage stage)
    +
     
    +
    +
    +
    +
    +

    从类继承的方法 javafx.application.Application

    +getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, stop
    +
    +

    从类继承的方法 java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Main

      +
      public Main()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      main

      +
      public static void main(String[] args)
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      +
      指定者:
      +
      start 在类中 javafx.application.Application
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/class-use/Main.html b/docs/com.app.flight/com/app/flight/class-use/Main.html new file mode 100644 index 0000000..d4efcc3 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/class-use/Main.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.Main的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.Main

+
+没有com.app.flight.Main的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/AdminLoginController.html b/docs/com.app.flight/com/app/flight/controller/AdminLoginController.html new file mode 100644 index 0000000..1c9b368 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/AdminLoginController.html @@ -0,0 +1,215 @@ + + + + +AdminLoginController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 AdminLoginController

+
+
java.lang.Object +
com.app.flight.controller.AdminLoginController
+
+
+
+
public class AdminLoginController +extends Object
+
This code is used to finish all the steps of check-in.
+
+
版本:
+
2.1
+
作者:
+
Huanghong
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      AdminLoginController

      +
      public AdminLoginController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      loginButtonClick

      +
      public void loginButtonClick()
      +
      The code to close current page and open the "welcome admin" page
      +
      +
    • +
    • +
      +

      backButtonClick

      +
      public void backButtonClick()
      +
      The code to close current page and open the "select language" page
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      The code for other pages to open AdminLogin.fxml
      +
      +
      参数:
      +
      stage -
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/AdminWelcomeController.html b/docs/com.app.flight/com/app/flight/controller/AdminWelcomeController.html new file mode 100644 index 0000000..d509934 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/AdminWelcomeController.html @@ -0,0 +1,208 @@ + + + + +AdminWelcomeController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 AdminWelcomeController

+
+
java.lang.Object +
com.app.flight.controller.AdminWelcomeController
+
+
+
+
public class AdminWelcomeController +extends Object
+
+
版本:
+
2.1
+
作者:
+
Zheng Han
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      AdminWelcomeController

      +
      public AdminWelcomeController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      setWelcomeMeg

      +
      public void setWelcomeMeg(String meg)
      +
      +
    • +
    • +
      +

      logoutButtonClick

      +
      public void logoutButtonClick()
      +
      The code to close current page and open the first page
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage, + String meg) + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/AttentionNotesController.html b/docs/com.app.flight/com/app/flight/controller/AttentionNotesController.html new file mode 100644 index 0000000..8586995 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/AttentionNotesController.html @@ -0,0 +1,256 @@ + + + + +AttentionNotesController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 AttentionNotesController

+
+
java.lang.Object +
com.app.flight.controller.AttentionNotesController
+
+
+
+
public class AttentionNotesController +extends Object
+
+
版本:
+
2.1
+
作者:
+
LianJunhong
+
+
+
+
    + +
  • +
    +

    字段概要

    +
    字段
    +
    +
    修饰符和类型
    +
    字段
    +
    说明
    +
    javafx.scene.control.CheckBox
    + +
     
    +
    javafx.scene.control.Button
    + +
     
    +
    +
    +
  • + +
  • +
    +

    构造器概要

    +
    构造器
    +
    +
    构造器
    +
    说明
    + +
     
    +
    +
    +
  • + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    +
    void
    +
    check(javafx.event.ActionEvent actionEvent)
    +
    +
    if checkbox is checked, make next button able to click
    +
    +
    javafx.fxml.FXMLLoader
    + +
     
    +
    void
    +
    nextClick(javafx.event.ActionEvent actionEvent)
    +
    +
    The code for button "next" in "AttentionNotes.fxml" + When click the button, change to "InputNumber.fxml"
    +
    +
    void
    +
    start(javafx.stage.Stage stage)
    +
    +
    The code for other pages to open InputNumber.fxml
    +
    +
    +
    +
    +
    +

    从类继承的方法 java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      next

      +
      public javafx.scene.control.Button next
      +
      +
    • +
    • +
      +

      confirm

      +
      public javafx.scene.control.CheckBox confirm
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      AttentionNotesController

      +
      public AttentionNotesController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      check

      +
      public void check(javafx.event.ActionEvent actionEvent)
      +
      if checkbox is checked, make next button able to click
      +
      +
      参数:
      +
      actionEvent -
      +
      +
      +
    • +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      The code for button "next" in "AttentionNotes.fxml" + When click the button, change to "InputNumber.fxml"
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      The code for other pages to open InputNumber.fxml
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/ComingSoonController.html b/docs/com.app.flight/com/app/flight/controller/ComingSoonController.html new file mode 100644 index 0000000..2cb87c1 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/ComingSoonController.html @@ -0,0 +1,223 @@ + + + + +ComingSoonController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 ComingSoonController

+
+
java.lang.Object +
com.app.flight.controller.ComingSoonController
+
+
+
+
public class ComingSoonController +extends Object
+
+
版本:
+
2.1
+
作者:
+
LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      homeButton

      +
      public javafx.scene.control.Button homeButton
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      ComingSoonController

      +
      public ComingSoonController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      home

      +
      public void home(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/FinishController.html b/docs/com.app.flight/com/app/flight/controller/FinishController.html new file mode 100644 index 0000000..930158c --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/FinishController.html @@ -0,0 +1,239 @@ + + + + +FinishController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 FinishController

+
+
java.lang.Object +
com.app.flight.controller.FinishController
+
+
+
+
public class FinishController +extends Object
+
This code is used to finish all the steps of check-in.
+
+
版本:
+
2.1
+
作者:
+
Huanghong
+
+
+
+
    + +
  • +
    +

    字段概要

    +
    字段
    +
    +
    修饰符和类型
    +
    字段
    +
    说明
    +
    javafx.scene.image.ImageView
    + +
     
    +
    javafx.scene.image.ImageView
    + +
     
    +
    +
    +
  • + +
  • +
    +

    构造器概要

    +
    构造器
    +
    +
    构造器
    +
    说明
    + +
     
    +
    +
    +
  • + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    +
    void
    + +
    +
    The code to close current page and open the first page
    +
    +
    javafx.fxml.FXMLLoader
    + +
     
    +
    void
    +
    start(javafx.stage.Stage stage)
    +
    +
    The code for other pages to open Finished.fxml
    +
    +
    +
    +
    +
    +

    从类继承的方法 java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      boardingPassCode

      +
      public javafx.scene.image.ImageView boardingPassCode
      +
      +
    • +
    • +
      +

      tagCode

      +
      public javafx.scene.image.ImageView tagCode
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      FinishController

      +
      public FinishController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      finishClick

      +
      public void finishClick()
      +
      The code to close current page and open the first page
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      The code for other pages to open Finished.fxml
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/FoodTypeController.html b/docs/com.app.flight/com/app/flight/controller/FoodTypeController.html new file mode 100644 index 0000000..398eb86 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/FoodTypeController.html @@ -0,0 +1,266 @@ + + + + +FoodTypeController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 FoodTypeController

+
+
java.lang.Object +
com.app.flight.controller.FoodTypeController
+
+
+
+
public class FoodTypeController +extends Object
+
This code is used to select the food type.
+
+
版本:
+
2.1
+
作者:
+
HuangHong
+
+
+
+
    + +
  • +
    +

    字段概要

    +
    字段
    +
    +
    修饰符和类型
    +
    字段
    +
    说明
    +
    javafx.scene.control.Button
    + +
     
    +
    javafx.scene.control.ToggleGroup
    + +
     
    +
    +
    +
  • + +
  • +
    +

    构造器概要

    +
    构造器
    +
    +
    构造器
    +
    说明
    + +
     
    +
    +
    +
  • + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    + + +
    +
    To judge which food type is the passenger selected
    +
    +
    javafx.fxml.FXMLLoader
    + +
     
    +
    void
    +
    helpClick(javafx.event.ActionEvent actionEvent)
    +
     
    +
    void
    +
    nextClick(javafx.event.ActionEvent actionEvent)
    +
    +
    The code for button "next" in "SelectFoodType.fxml" + When click the button, change to "CheckInResult.fxml"
    +
    +
    void
    +
    start(javafx.stage.Stage stage)
    +
    +
    The code for other pages to open SelectFoodType.fxml
    +
    +
    +
    +
    +
    +

    从类继承的方法 java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      tg

      +
      public javafx.scene.control.ToggleGroup tg
      +
      +
    • +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      FoodTypeController

      +
      public FoodTypeController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      foodType

      +
      public String foodType()
      +
      To judge which food type is the passenger selected
      +
      +
      返回:
      +
      type
      +
      +
      +
    • +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      The code for button "next" in "SelectFoodType.fxml" + When click the button, change to "CheckInResult.fxml"
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      The code for other pages to open SelectFoodType.fxml
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/HelpController.html b/docs/com.app.flight/com/app/flight/controller/HelpController.html new file mode 100644 index 0000000..a4e9844 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/HelpController.html @@ -0,0 +1,257 @@ + + + + +HelpController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 HelpController

+
+
java.lang.Object +
com.app.flight.controller.HelpController
+
+
+
+
public class HelpController +extends Object
+
+
作者:
+
LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      back

      +
      public javafx.scene.control.Button back
      +
      +
    • +
    • +
      +

      call

      +
      public javafx.scene.control.Button call
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      HelpController

      +
      public HelpController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      getControllerName

      +
      public String getControllerName()
      +
      +
    • +
    • +
      +

      setControllerName

      +
      public void setControllerName(String controllerName)
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      callButton

      +
      public void callButton(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      backButton

      +
      public void backButton(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/InfoConfirmController.html b/docs/com.app.flight/com/app/flight/controller/InfoConfirmController.html new file mode 100644 index 0000000..cde2284 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/InfoConfirmController.html @@ -0,0 +1,288 @@ + + + + +InfoConfirmController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 InfoConfirmController

+
+
java.lang.Object +
com.app.flight.controller.InfoConfirmController
+
+
+
+
public class InfoConfirmController +extends Object
+
+
版本:
+
2.1
+
作者:
+
LianJunhong, HuangHong
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      num

      +
      public javafx.scene.control.Label num
      +
      +
    • +
    • +
      +

      next

      +
      public javafx.scene.control.Button next
      +
      +
    • +
    • +
      +

      back

      +
      public javafx.scene.control.Button back
      +
      +
    • +
    • +
      +

      pRetrieve

      +
      public Passenger pRetrieve
      +
      +
    • +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      InfoConfirmController

      +
      public InfoConfirmController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      showNum

      +
      public void showNum(Passenger p)
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage, + Passenger p) + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      returnButton

      +
      public void returnButton(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/InputNumberController.html b/docs/com.app.flight/com/app/flight/controller/InputNumberController.html new file mode 100644 index 0000000..c872cd8 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/InputNumberController.html @@ -0,0 +1,358 @@ + + + + +InputNumberController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 InputNumberController

+
+
java.lang.Object +
com.app.flight.controller.InputNumberController
+
+
+
+
public class InputNumberController +extends Object
+
+
版本:
+
2.1
+
作者:
+
LianJunhong, HuangHong
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      p

      +
      public Passenger p
      +
      +
    • +
    • +
      +

      number

      +
      public javafx.scene.control.TextField number
      +
      +
    • +
    • +
      +

      annotation

      +
      public javafx.scene.control.Label annotation
      +
      +
    • +
    • +
      +

      clean

      +
      public javafx.scene.control.Button clean
      +
      +
    • +
    • +
      +

      next

      +
      public javafx.scene.control.Button next
      +
      +
    • +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    • +
      +

      back

      +
      public javafx.scene.control.Button back
      +
      +
    • +
    • +
      +

      numClean

      +
      public javafx.scene.control.Button numClean
      +
      +
    • +
    • +
      +

      nameLabel

      +
      public javafx.scene.control.Label nameLabel
      +
      +
    • +
    • +
      +

      numLabel

      +
      public javafx.scene.control.Label numLabel
      +
      +
    • +
    • +
      +

      surName

      +
      public javafx.scene.control.TextField surName
      +
      +
    • +
    • +
      +

      type

      +
      protected String type
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      InputNumberController

      +
      public InputNumberController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      submit

      +
      public void submit(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      getPassengerInfo

      +
      protected Passenger getPassengerInfo(String type, + String text)
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      The code for other pages to open InputNumber.fxml
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      clean

      +
      public void clean(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader()
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      returnButton

      +
      public void returnButton(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/NavigationMapController.html b/docs/com.app.flight/com/app/flight/controller/NavigationMapController.html new file mode 100644 index 0000000..4441635 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/NavigationMapController.html @@ -0,0 +1,216 @@ + + + + +NavigationMapController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 NavigationMapController

+
+
java.lang.Object +
com.app.flight.controller.NavigationMapController
+
+
+
+
public class NavigationMapController +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      map

      +
      public javafx.scene.image.ImageView map
      +
      +
    • +
    • +
      +

      back

      +
      public javafx.scene.control.Button back
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      NavigationMapController

      +
      public NavigationMapController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      setMap

      +
      public void setMap(String gateName)
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader()
      +
      +
    • +
    • +
      +

      returnButton

      +
      public void returnButton(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/PaymentController.html b/docs/com.app.flight/com/app/flight/controller/PaymentController.html new file mode 100644 index 0000000..68568be --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/PaymentController.html @@ -0,0 +1,266 @@ + + + + +PaymentController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 PaymentController

+
+
java.lang.Object +
com.app.flight.controller.PaymentController
+
+
+
+
public class PaymentController +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      finish

      +
      public javafx.scene.control.Button finish
      +
      +
    • +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    • +
      +

      whetherPayment

      +
      public Boolean whetherPayment
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      PaymentController

      +
      public PaymentController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      pay

      +
      public void pay(String paymentMethod)
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader()
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      returnButton

      +
      public void returnButton(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      clean

      +
      public void clean(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/PrintTagsController.html b/docs/com.app.flight/com/app/flight/controller/PrintTagsController.html new file mode 100644 index 0000000..722bfdc --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/PrintTagsController.html @@ -0,0 +1,321 @@ + + + + +PrintTagsController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 PrintTagsController

+
+
java.lang.Object +
com.app.flight.controller.PrintTagsController
+
+
+
+
所有已实现的接口:
+
Runnable
+
+
+
public class PrintTagsController +extends Object +implements Runnable
+
+
版本:
+
3.5
+
作者:
+
HuangHong, Zheng Han, LianJunhong
+
+
+
+
    + +
  • +
    +

    字段概要

    +
    字段
    +
    +
    修饰符和类型
    +
    字段
    +
    说明
    +
    javafx.scene.control.Button
    + +
     
    +
    protected javafx.scene.control.Label
    + +
     
    +
    protected javafx.scene.control.ProgressBar
    + +
     
    +
    +
    +
  • + +
  • +
    +

    构造器概要

    +
    构造器
    +
    +
    构造器
    +
    说明
    + +
     
    +
    +
    +
  • + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    +
    javafx.fxml.FXMLLoader
    + +
     
    +
    int
    + +
    +
    Get the percentage of the progress bar
    +
    +
    void
    +
    helpClick(javafx.event.ActionEvent actionEvent)
    +
     
    +
    void
    +
    nextClick(javafx.event.ActionEvent actionEvent)
    +
    +
    The code for button "next" in PrintTags.fxml + When click the button, change to Finished.fxml
    +
    +
    void
    +
    run()
    +
    +
    When an object implementing interface Runnable is used + to create a thread, starting the thread causes the object's + run method to be called in that separately executing + thread.
    +
    +
    void
    +
    setPercent(int percent)
    +
    +
    Set the percentage of the progress bar
    +
    +
    void
    +
    start(javafx.stage.Stage stage)
    +
    +
    The code for other pages to open PrintTags.fxml
    +
    +
    +
    +
    +
    +

    从类继承的方法 java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    • +
      +

      progressBar

      +
      protected javafx.scene.control.ProgressBar progressBar
      +
      +
    • +
    • +
      +

      percentage

      +
      protected javafx.scene.control.Label percentage
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      PrintTagsController

      +
      public PrintTagsController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      The code for button "next" in PrintTags.fxml + When click the button, change to Finished.fxml
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      The code for other pages to open PrintTags.fxml
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader()
      +
      +
    • +
    • +
      +

      run

      +
      public void run()
      +
      When an object implementing interface Runnable is used + to create a thread, starting the thread causes the object's + run method to be called in that separately executing + thread. +

      + The general contract of the method run is that it may + take any action whatsoever.

      +
      +
      指定者:
      +
      run 在接口中 Runnable
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      getPercent

      +
      public int getPercent()
      +
      Get the percentage of the progress bar
      +
      +
      返回:
      +
      the percentage of the progress bar
      +
      +
      +
    • +
    • +
      +

      setPercent

      +
      public void setPercent(int percent)
      +
      Set the percentage of the progress bar
      +
      +
      参数:
      +
      percent - the percentage of the progress bar
      +
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/ResultController.html b/docs/com.app.flight/com/app/flight/controller/ResultController.html new file mode 100644 index 0000000..9b185c6 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/ResultController.html @@ -0,0 +1,266 @@ + + + + +ResultController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 ResultController

+
+
java.lang.Object +
com.app.flight.controller.ResultController
+
+
+
+
public class ResultController +extends Object
+
+
版本:
+
2.1
+
作者:
+
HuangHong
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    • +
      +

      boardingPass

      +
      public BoardingPass boardingPass
      +
      +
    • +
    • +
      +

      detail

      +
      public javafx.scene.control.Button detail
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      ResultController

      +
      public ResultController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      showBoardingPass

      +
      public void showBoardingPass(boolean addCsv)
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      The code for other pages to open CheckInResult.fxml
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader()
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      showMap

      +
      public void showMap(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/RetrieveController.html b/docs/com.app.flight/com/app/flight/controller/RetrieveController.html new file mode 100644 index 0000000..b12848f --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/RetrieveController.html @@ -0,0 +1,261 @@ + + + + +RetrieveController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 RetrieveController

+
+
java.lang.Object +
com.app.flight.controller.RetrieveController
+
+
+
+
public class RetrieveController +extends Object
+
+
版本:
+
2.1
+
作者:
+
HuangHong
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      rList

      +
      public ArrayList<Reservation> rList
      +
      +
    • +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      RetrieveController

      +
      public RetrieveController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      showRetrieve

      +
      public void showRetrieve(Passenger p)
      +
      +
    • +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage, + Passenger pRetrieve) + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      mouseClick

      +
      public void mouseClick(javafx.scene.input.MouseEvent mouseEvent)
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/ScanInstructionController.html b/docs/com.app.flight/com/app/flight/controller/ScanInstructionController.html new file mode 100644 index 0000000..77f4d1c --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/ScanInstructionController.html @@ -0,0 +1,240 @@ + + + + +ScanInstructionController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 ScanInstructionController

+
+
java.lang.Object +
com.app.flight.controller.ScanInstructionController
+
+
+
+
public class ScanInstructionController +extends Object
+
+
作者:
+
LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      mediaView

      +
      public javafx.scene.media.MediaView mediaView
      +
      +
    • +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    • +
      +

      back

      +
      public javafx.scene.control.Button back
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      ScanInstructionController

      +
      public ScanInstructionController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader()
      +
      +
    • +
    • +
      +

      checkIdNumber

      +
      public void checkIdNumber(String idNumber, + javafx.stage.Stage stage)
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      back

      +
      public void back(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/SelectLanguageController.html b/docs/com.app.flight/com/app/flight/controller/SelectLanguageController.html new file mode 100644 index 0000000..66c87d9 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/SelectLanguageController.html @@ -0,0 +1,257 @@ + + + + +SelectLanguageController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 SelectLanguageController

+
+
java.lang.Object +
com.app.flight.controller.SelectLanguageController
+
+
+
+
public class SelectLanguageController +extends Object
+
This code is used to control the interface for selecting language.
+
+
版本:
+
0.1
+
作者:
+
LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      english

      +
      public javafx.scene.control.Button english
      +
      +
    • +
    • +
      +

      coming

      +
      public javafx.scene.control.Label coming
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      SelectLanguageController

      +
      public SelectLanguageController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      onChineseButtonClick

      +
      protected void onChineseButtonClick()
      +
      +
    • +
    • +
      +

      loginButtonClick

      +
      public void loginButtonClick()
      +
      The code to close current page and open the login page
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      The code to open SelectLanguage.fxml.
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader() + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      onEnglishButtonClick

      +
      public void onEnglishButtonClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/SelectMethodController.html b/docs/com.app.flight/com/app/flight/controller/SelectMethodController.html new file mode 100644 index 0000000..31e212b --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/SelectMethodController.html @@ -0,0 +1,281 @@ + + + + +SelectMethodController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 SelectMethodController

+
+
java.lang.Object +
com.app.flight.controller.SelectMethodController
+
+
+
+
public class SelectMethodController +extends Object
+
+
版本:
+
2.1
+
作者:
+
LianJunhong
+
+
+
+
    + +
  • +
    +

    字段概要

    +
    字段
    +
    +
    修饰符和类型
    +
    字段
    +
    说明
    +
    javafx.scene.control.RadioButton
    + +
     
    +
    javafx.scene.control.Button
    + +
     
    +
    javafx.scene.control.RadioButton
    + +
     
    +
    javafx.scene.control.ToggleGroup
    + +
     
    +
    javafx.scene.control.Button
    + +
     
    +
    javafx.scene.control.RadioButton
    + +
     
    +
    +
    +
  • + +
  • +
    +

    构造器概要

    +
    构造器
    +
    +
    构造器
    +
    说明
    + +
     
    +
    +
    +
  • + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    +
    void
    +
    check(javafx.event.ActionEvent actionEvent)
    +
     
    +
    javafx.fxml.FXMLLoader
    + +
     
    +
    void
    +
    helpClick(javafx.event.ActionEvent actionEvent)
    +
     
    +
    void
    +
    nextClick(javafx.event.ActionEvent actionEvent)
    +
     
    +
    void
    +
    start(javafx.stage.Stage stage)
    +
     
    +
    +
    +
    +
    +

    从类继承的方法 java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      idNum

      +
      public javafx.scene.control.RadioButton idNum
      +
      +
    • +
    • +
      +

      scan

      +
      public javafx.scene.control.RadioButton scan
      +
      +
    • +
    • +
      +

      bookingNum

      +
      public javafx.scene.control.RadioButton bookingNum
      +
      +
    • +
    • +
      +

      method

      +
      public javafx.scene.control.ToggleGroup method
      +
      +
    • +
    • +
      +

      next

      +
      public javafx.scene.control.Button next
      +
      +
    • +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      SelectMethodController

      +
      public SelectMethodController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      check

      +
      public void check(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader()
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/SelectPaymentController.html b/docs/com.app.flight/com/app/flight/controller/SelectPaymentController.html new file mode 100644 index 0000000..2865c44 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/SelectPaymentController.html @@ -0,0 +1,279 @@ + + + + +SelectPaymentController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 SelectPaymentController

+
+
java.lang.Object +
com.app.flight.controller.SelectPaymentController
+
+
+
+
public class SelectPaymentController +extends Object
+
+
作者:
+
HuangHong
+
+
+
+
    + +
  • +
    +

    字段概要

    +
    字段
    +
    +
    修饰符和类型
    +
    字段
    +
    说明
    +
    javafx.scene.control.RadioButton
    + +
     
    +
    javafx.scene.control.Button
    + +
     
    +
    javafx.scene.control.ToggleGroup
    + +
     
    +
    javafx.scene.control.Button
    + +
     
    +
    javafx.scene.control.RadioButton
    + +
     
    +
    javafx.scene.control.RadioButton
    + +
     
    +
    +
    +
  • + +
  • +
    +

    构造器概要

    +
    构造器
    +
    +
    构造器
    +
    说明
    + +
     
    +
    +
    +
  • + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    + + +
     
    +
    javafx.fxml.FXMLLoader
    + +
     
    +
    void
    +
    helpClick(javafx.event.ActionEvent actionEvent)
    +
     
    +
    void
    +
    nextClick(javafx.event.ActionEvent actionEvent)
    +
     
    +
    void
    +
    start(javafx.stage.Stage stage)
    +
     
    +
    +
    +
    +
    +

    从类继承的方法 java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      paypal

      +
      public javafx.scene.control.RadioButton paypal
      +
      +
    • +
    • +
      +

      alipay

      +
      public javafx.scene.control.RadioButton alipay
      +
      +
    • +
    • +
      +

      visa

      +
      public javafx.scene.control.RadioButton visa
      +
      +
    • +
    • +
      +

      method

      +
      public javafx.scene.control.ToggleGroup method
      +
      +
    • +
    • +
      +

      next

      +
      public javafx.scene.control.Button next
      +
      +
    • +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      SelectPaymentController

      +
      public SelectPaymentController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage) + throws IOException
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      check

      +
      public String check()
      +
      +
    • +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader()
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/SelectSeatController.html b/docs/com.app.flight/com/app/flight/controller/SelectSeatController.html new file mode 100644 index 0000000..c93a160 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/SelectSeatController.html @@ -0,0 +1,351 @@ + + + + +SelectSeatController + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 SelectSeatController

+
+
java.lang.Object +
com.app.flight.controller.SelectSeatController
+
+
+
+
public class SelectSeatController +extends Object
+
+
版本:
+
2.1
+
作者:
+
zhenghan
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      seat

      +
      public javafx.scene.control.ChoiceBox<String> seat
      +
      +
    • +
    • +
      +

      help

      +
      public javafx.scene.control.Button help
      +
      +
    • +
    • +
      +

      next

      +
      public javafx.scene.control.Button next
      +
      +
    • +
    • +
      +

      gridPane

      +
      public javafx.scene.layout.GridPane gridPane
      +
      +
    • +
    • +
      +

      choiceButton

      +
      public javafx.scene.control.Button choiceButton
      +
      +
    • +
    • +
      +

      choiceRow

      +
      public int choiceRow
      +
      +
    • +
    • +
      +

      choiceColumn

      +
      public String choiceColumn
      +
      +
    • +
    • +
      +

      choicePrice

      +
      public double choicePrice
      +
      +
    • +
    • +
      +

      flightId

      +
      public String flightId
      +
      +
    • +
    • +
      +

      previousChoiceButton

      +
      public javafx.scene.control.Button previousChoiceButton
      +
      +
    • +
    • +
      +

      previousChoiceRow

      +
      public int previousChoiceRow
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      SelectSeatController

      +
      public SelectSeatController()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      nextClick

      +
      public void nextClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      helpClick

      +
      public void helpClick(javafx.event.ActionEvent actionEvent)
      +
      +
    • +
    • +
      +

      start

      +
      public void start(javafx.stage.Stage stage, + Map<Integer,Map<String,Boolean>> seatMap, + String flightId) + throws IOException
      +
      The code for other pages to open SelectSeat.fxml
      +
      +
      抛出:
      +
      IOException
      +
      +
      +
    • +
    • +
      +

      showSeatMap

      +
      public void showSeatMap(Map<Integer,Map<String,Boolean>> seatMap)
      +
      +
    • +
    • +
      +

      getSeatButtonColor

      +
      public String getSeatButtonColor(int rowNo)
      +
      +
    • +
    • +
      +

      getSeatPrice

      +
      public double getSeatPrice(int rowNo)
      +
      +
    • +
    • +
      +

      getLoader

      +
      public javafx.fxml.FXMLLoader getLoader()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/AdminLoginController.html b/docs/com.app.flight/com/app/flight/controller/class-use/AdminLoginController.html new file mode 100644 index 0000000..cf26682 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/AdminLoginController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.AdminLoginController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.AdminLoginController

+
+没有com.app.flight.controller.AdminLoginController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/AdminWelcomeController.html b/docs/com.app.flight/com/app/flight/controller/class-use/AdminWelcomeController.html new file mode 100644 index 0000000..4e4a90b --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/AdminWelcomeController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.AdminWelcomeController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.AdminWelcomeController

+
+没有com.app.flight.controller.AdminWelcomeController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/AttentionNotesController.html b/docs/com.app.flight/com/app/flight/controller/class-use/AttentionNotesController.html new file mode 100644 index 0000000..6eb34e8 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/AttentionNotesController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.AttentionNotesController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.AttentionNotesController

+
+没有com.app.flight.controller.AttentionNotesController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/ComingSoonController.html b/docs/com.app.flight/com/app/flight/controller/class-use/ComingSoonController.html new file mode 100644 index 0000000..6d5a320 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/ComingSoonController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.ComingSoonController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.ComingSoonController

+
+没有com.app.flight.controller.ComingSoonController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/FinishController.html b/docs/com.app.flight/com/app/flight/controller/class-use/FinishController.html new file mode 100644 index 0000000..3117715 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/FinishController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.FinishController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.FinishController

+
+没有com.app.flight.controller.FinishController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/FoodTypeController.html b/docs/com.app.flight/com/app/flight/controller/class-use/FoodTypeController.html new file mode 100644 index 0000000..4100fc4 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/FoodTypeController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.FoodTypeController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.FoodTypeController

+
+没有com.app.flight.controller.FoodTypeController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/HelpController.html b/docs/com.app.flight/com/app/flight/controller/class-use/HelpController.html new file mode 100644 index 0000000..109245e --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/HelpController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.HelpController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.HelpController

+
+没有com.app.flight.controller.HelpController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/InfoConfirmController.html b/docs/com.app.flight/com/app/flight/controller/class-use/InfoConfirmController.html new file mode 100644 index 0000000..a61a264 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/InfoConfirmController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.InfoConfirmController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.InfoConfirmController

+
+没有com.app.flight.controller.InfoConfirmController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/InputNumberController.html b/docs/com.app.flight/com/app/flight/controller/class-use/InputNumberController.html new file mode 100644 index 0000000..6bb8643 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/InputNumberController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.InputNumberController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.InputNumberController

+
+没有com.app.flight.controller.InputNumberController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/NavigationMapController.html b/docs/com.app.flight/com/app/flight/controller/class-use/NavigationMapController.html new file mode 100644 index 0000000..b85c4d2 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/NavigationMapController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.NavigationMapController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.NavigationMapController

+
+没有com.app.flight.controller.NavigationMapController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/PaymentController.html b/docs/com.app.flight/com/app/flight/controller/class-use/PaymentController.html new file mode 100644 index 0000000..b50488d --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/PaymentController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.PaymentController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.PaymentController

+
+没有com.app.flight.controller.PaymentController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/PrintTagsController.html b/docs/com.app.flight/com/app/flight/controller/class-use/PrintTagsController.html new file mode 100644 index 0000000..8acca04 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/PrintTagsController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.PrintTagsController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.PrintTagsController

+
+没有com.app.flight.controller.PrintTagsController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/ResultController.html b/docs/com.app.flight/com/app/flight/controller/class-use/ResultController.html new file mode 100644 index 0000000..60c85f5 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/ResultController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.ResultController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.ResultController

+
+没有com.app.flight.controller.ResultController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/RetrieveController.html b/docs/com.app.flight/com/app/flight/controller/class-use/RetrieveController.html new file mode 100644 index 0000000..4aa749f --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/RetrieveController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.RetrieveController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.RetrieveController

+
+没有com.app.flight.controller.RetrieveController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/ScanInstructionController.html b/docs/com.app.flight/com/app/flight/controller/class-use/ScanInstructionController.html new file mode 100644 index 0000000..428a614 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/ScanInstructionController.html @@ -0,0 +1,93 @@ + + + + +类 com.app.flight.controller.ScanInstructionController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.ScanInstructionController

+
+
使用ScanInstructionController的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/SelectLanguageController.html b/docs/com.app.flight/com/app/flight/controller/class-use/SelectLanguageController.html new file mode 100644 index 0000000..c52e7dd --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/SelectLanguageController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.SelectLanguageController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.SelectLanguageController

+
+没有com.app.flight.controller.SelectLanguageController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/SelectMethodController.html b/docs/com.app.flight/com/app/flight/controller/class-use/SelectMethodController.html new file mode 100644 index 0000000..1d80630 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/SelectMethodController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.SelectMethodController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.SelectMethodController

+
+没有com.app.flight.controller.SelectMethodController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/SelectPaymentController.html b/docs/com.app.flight/com/app/flight/controller/class-use/SelectPaymentController.html new file mode 100644 index 0000000..f6ce1de --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/SelectPaymentController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.SelectPaymentController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.SelectPaymentController

+
+没有com.app.flight.controller.SelectPaymentController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/class-use/SelectSeatController.html b/docs/com.app.flight/com/app/flight/controller/class-use/SelectSeatController.html new file mode 100644 index 0000000..58f6ca3 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/class-use/SelectSeatController.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.controller.SelectSeatController的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.controller.SelectSeatController

+
+没有com.app.flight.controller.SelectSeatController的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/package-summary.html b/docs/com.app.flight/com/app/flight/controller/package-summary.html new file mode 100644 index 0000000..9b89a45 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/package-summary.html @@ -0,0 +1,145 @@ + + + + +com.app.flight.controller + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 com.app.flight.controller

+
+
+
package com.app.flight.controller
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/package-tree.html b/docs/com.app.flight/com/app/flight/controller/package-tree.html new file mode 100644 index 0000000..c24b4be --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/package-tree.html @@ -0,0 +1,90 @@ + + + + +com.app.flight.controller 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包com.app.flight.controller的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/controller/package-use.html b/docs/com.app.flight/com/app/flight/controller/package-use.html new file mode 100644 index 0000000..e4b5284 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/controller/package-use.html @@ -0,0 +1,80 @@ + + + + +程序包 com.app.flight.controller的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
com.app.flight.controller

+
+
使用com.app.flight.controller的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/Admin.html b/docs/com.app.flight/com/app/flight/entity/Admin.html new file mode 100644 index 0000000..5c478b6 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/Admin.html @@ -0,0 +1,137 @@ + + + + +Admin + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Admin

+
+
java.lang.Object +
com.app.flight.entity.BaseAccount +
com.app.flight.entity.Admin
+
+
+
+
+
public class Admin +extends BaseAccount
+
+
版本:
+
1.0
+
作者:
+
LianJunhong, JiaBoran
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Admin

      +
      public Admin()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/BaseAccount.html b/docs/com.app.flight/com/app/flight/entity/BaseAccount.html new file mode 100644 index 0000000..b90f2e4 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/BaseAccount.html @@ -0,0 +1,139 @@ + + + + +BaseAccount + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 BaseAccount

+
+
java.lang.Object +
com.app.flight.entity.BaseAccount
+
+
+
+
直接已知子类:
+
Admin, Staff
+
+
+
public abstract class BaseAccount +extends Object
+
+
版本:
+
1.0
+
作者:
+
LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      BaseAccount

      +
      public BaseAccount()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/BoardingPass.html b/docs/com.app.flight/com/app/flight/entity/BoardingPass.html new file mode 100644 index 0000000..7595a19 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/BoardingPass.html @@ -0,0 +1,135 @@ + + + + +BoardingPass + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 BoardingPass

+
+
java.lang.Object +
com.app.flight.entity.BoardingPass
+
+
+
+
public class BoardingPass +extends Object
+
+
版本:
+
1.0
+
作者:
+
SongBo, LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      BoardingPass

      +
      public BoardingPass()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/Company.html b/docs/com.app.flight/com/app/flight/entity/Company.html new file mode 100644 index 0000000..79f7b8f --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/Company.html @@ -0,0 +1,135 @@ + + + + +Company + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Company

+
+
java.lang.Object +
com.app.flight.entity.Company
+
+
+
+
public class Company +extends Object
+
+
版本:
+
1.0
+
作者:
+
Huanghong, LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Company

      +
      public Company()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/Flight.html b/docs/com.app.flight/com/app/flight/entity/Flight.html new file mode 100644 index 0000000..607610a --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/Flight.html @@ -0,0 +1,135 @@ + + + + +Flight + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Flight

+
+
java.lang.Object +
com.app.flight.entity.Flight
+
+
+
+
public class Flight +extends Object
+
+
版本:
+
1.0
+
作者:
+
SongBo, LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Flight

      +
      public Flight()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/Food.foodType.html b/docs/com.app.flight/com/app/flight/entity/Food.foodType.html new file mode 100644 index 0000000..3d300da --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/Food.foodType.html @@ -0,0 +1,234 @@ + + + + +Food.foodType + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

Enum Class Food.foodType

+
+
java.lang.Object +
java.lang.Enum<Food.foodType> +
com.app.flight.entity.Food.foodType
+
+
+
+
+
所有已实现的接口:
+
Serializable, Comparable<Food.foodType>, Constable
+
+
+
封闭类:
+
Food
+
+
+
public static enum Food.foodType +extends Enum<Food.foodType>
+
+
+ +
+
+
    + +
  • +
    +

    枚举常量详细资料

    +
      +
    • +
      +

      STANDARD

      +
      public static final Food.foodType STANDARD
      +
      Three types of food
      +
      +
    • +
    • +
      +

      HALAL

      +
      public static final Food.foodType HALAL
      +
      +
    • +
    • +
      +

      VEGETARIAN

      +
      public static final Food.foodType VEGETARIAN
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      values

      +
      public static Food.foodType[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      返回:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static Food.foodType valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      参数:
      +
      name - 要返回的枚举常量的名称。
      +
      返回:
      +
      返回带有指定名称的枚举常量
      +
      抛出:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - 如果参数为空值
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/Food.html b/docs/com.app.flight/com/app/flight/entity/Food.html new file mode 100644 index 0000000..0cc98d5 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/Food.html @@ -0,0 +1,150 @@ + + + + +Food + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Food

+
+
java.lang.Object +
com.app.flight.entity.Food
+
+
+
+
public class Food +extends Object
+
+
版本:
+
1.0
+
作者:
+
LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Food

      +
      public Food()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/Passenger.html b/docs/com.app.flight/com/app/flight/entity/Passenger.html new file mode 100644 index 0000000..6e1f22b --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/Passenger.html @@ -0,0 +1,135 @@ + + + + +Passenger + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Passenger

+
+
java.lang.Object +
com.app.flight.entity.Passenger
+
+
+
+
public class Passenger +extends Object
+
+
版本:
+
1.0
+
作者:
+
SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Passenger

      +
      public Passenger()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/Reservation.html b/docs/com.app.flight/com/app/flight/entity/Reservation.html new file mode 100644 index 0000000..2dc7cca --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/Reservation.html @@ -0,0 +1,135 @@ + + + + +Reservation + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Reservation

+
+
java.lang.Object +
com.app.flight.entity.Reservation
+
+
+
+
public class Reservation +extends Object
+
+
版本:
+
1.0
+
作者:
+
LianJunhong, SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Reservation

      +
      public Reservation()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/Seat.html b/docs/com.app.flight/com/app/flight/entity/Seat.html new file mode 100644 index 0000000..f7fc913 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/Seat.html @@ -0,0 +1,266 @@ + + + + +Seat + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

Enum Class Seat

+
+
java.lang.Object +
java.lang.Enum<Seat> +
com.app.flight.entity.Seat
+
+
+
+
+
所有已实现的接口:
+
Serializable, Comparable<Seat>, Constable
+
+
+
public enum Seat +extends Enum<Seat>
+
+
+ +
+
+
    + +
  • +
    +

    枚举常量详细资料

    +
      +
    • +
      +

      ECONOMY_CLASS

      +
      public static final Seat ECONOMY_CLASS
      +
      Three types of aircraft accommodation
      +
      +
    • +
    • +
      +

      BUSINESS_CLASS

      +
      public static final Seat BUSINESS_CLASS
      +
      +
    • +
    • +
      +

      FIRST_CLASS

      +
      public static final Seat FIRST_CLASS
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      values

      +
      public static Seat[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      返回:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static Seat valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      参数:
      +
      name - 要返回的枚举常量的名称。
      +
      返回:
      +
      返回带有指定名称的枚举常量
      +
      抛出:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - 如果参数为空值
      +
      +
      +
    • +
    • +
      +

      getPrice

      +
      public double getPrice()
      +
      +
    • +
    • +
      +

      setPrice

      +
      public void setPrice(double price)
      +
      +
    • +
    • +
      +

      getRow

      +
      public int getRow()
      +
      +
    • +
    • +
      +

      setRow

      +
      public void setRow(int row)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/Staff.html b/docs/com.app.flight/com/app/flight/entity/Staff.html new file mode 100644 index 0000000..8917676 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/Staff.html @@ -0,0 +1,137 @@ + + + + +Staff + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Staff

+
+
java.lang.Object +
com.app.flight.entity.BaseAccount +
com.app.flight.entity.Staff
+
+
+
+
+
public class Staff +extends BaseAccount
+
+
版本:
+
2.0
+
作者:
+
SongBo, LianJunhong, JiaBoran
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Staff

      +
      public Staff()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/Admin.html b/docs/com.app.flight/com/app/flight/entity/class-use/Admin.html new file mode 100644 index 0000000..3875992 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/Admin.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.entity.Admin的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.entity.Admin

+
+没有com.app.flight.entity.Admin的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/BaseAccount.html b/docs/com.app.flight/com/app/flight/entity/class-use/BaseAccount.html new file mode 100644 index 0000000..a19c295 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/BaseAccount.html @@ -0,0 +1,86 @@ + + + + +类 com.app.flight.entity.BaseAccount的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.entity.BaseAccount

+
+
使用BaseAccount的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/BoardingPass.html b/docs/com.app.flight/com/app/flight/entity/class-use/BoardingPass.html new file mode 100644 index 0000000..2769be9 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/BoardingPass.html @@ -0,0 +1,117 @@ + + + + +类 com.app.flight.entity.BoardingPass的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.entity.BoardingPass

+
+
使用BoardingPass的程序包
+ +
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/Company.html b/docs/com.app.flight/com/app/flight/entity/class-use/Company.html new file mode 100644 index 0000000..b107315 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/Company.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.entity.Company的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.entity.Company

+
+没有com.app.flight.entity.Company的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/Flight.html b/docs/com.app.flight/com/app/flight/entity/class-use/Flight.html new file mode 100644 index 0000000..acd57cc --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/Flight.html @@ -0,0 +1,104 @@ + + + + +类 com.app.flight.entity.Flight的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.entity.Flight

+
+
使用Flight的程序包
+
+
程序包
+
说明
+ +
 
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/Food.foodType.html b/docs/com.app.flight/com/app/flight/entity/class-use/Food.foodType.html new file mode 100644 index 0000000..7263658 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/Food.foodType.html @@ -0,0 +1,125 @@ + + + + +Enum Class com.app.flight.entity.Food.foodType的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

Enum Class的使用
com.app.flight.entity.Food.foodType

+
+
使用Food.foodType的程序包
+ +
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/Food.html b/docs/com.app.flight/com/app/flight/entity/class-use/Food.html new file mode 100644 index 0000000..41d96f6 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/Food.html @@ -0,0 +1,83 @@ + + + + +类 com.app.flight.entity.Food的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.entity.Food

+
+
使用Food的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/Passenger.html b/docs/com.app.flight/com/app/flight/entity/class-use/Passenger.html new file mode 100644 index 0000000..53d3781 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/Passenger.html @@ -0,0 +1,180 @@ + + + + +类 com.app.flight.entity.Passenger的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.entity.Passenger

+
+
使用Passenger的程序包
+ +
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/Reservation.html b/docs/com.app.flight/com/app/flight/entity/class-use/Reservation.html new file mode 100644 index 0000000..4368c81 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/Reservation.html @@ -0,0 +1,142 @@ + + + + +类 com.app.flight.entity.Reservation的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.entity.Reservation

+
+
使用Reservation的程序包
+ +
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/Seat.html b/docs/com.app.flight/com/app/flight/entity/class-use/Seat.html new file mode 100644 index 0000000..f098978 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/Seat.html @@ -0,0 +1,91 @@ + + + + +Enum Class com.app.flight.entity.Seat的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

Enum Class的使用
com.app.flight.entity.Seat

+
+
使用Seat的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/class-use/Staff.html b/docs/com.app.flight/com/app/flight/entity/class-use/Staff.html new file mode 100644 index 0000000..5675ba6 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/class-use/Staff.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.entity.Staff的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.entity.Staff

+
+没有com.app.flight.entity.Staff的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/package-summary.html b/docs/com.app.flight/com/app/flight/entity/package-summary.html new file mode 100644 index 0000000..68ff7c9 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/package-summary.html @@ -0,0 +1,127 @@ + + + + +com.app.flight.entity + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 com.app.flight.entity

+
+
+
package com.app.flight.entity
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/package-tree.html b/docs/com.app.flight/com/app/flight/entity/package-tree.html new file mode 100644 index 0000000..7040692 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/package-tree.html @@ -0,0 +1,98 @@ + + + + +com.app.flight.entity 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包com.app.flight.entity的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+
+

Enum Class Hierarchy

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/entity/package-use.html b/docs/com.app.flight/com/app/flight/entity/package-use.html new file mode 100644 index 0000000..02cde73 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/entity/package-use.html @@ -0,0 +1,160 @@ + + + + +程序包 com.app.flight.entity的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
com.app.flight.entity

+
+
使用com.app.flight.entity的程序包
+ +
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/package-summary.html b/docs/com.app.flight/com/app/flight/package-summary.html new file mode 100644 index 0000000..acd006a --- /dev/null +++ b/docs/com.app.flight/com/app/flight/package-summary.html @@ -0,0 +1,103 @@ + + + + +com.app.flight + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 com.app.flight

+
+
+
package com.app.flight
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/package-tree.html b/docs/com.app.flight/com/app/flight/package-tree.html new file mode 100644 index 0000000..25e25a0 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/package-tree.html @@ -0,0 +1,76 @@ + + + + +com.app.flight 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包com.app.flight的分层结构

+程序包分层结构: + +
+
+

类分层结构

+
    +
  • java.lang.Object +
      +
    • javafx.application.Application +
        +
      • com.app.flight.Main
      • +
      +
    • +
    +
  • +
+
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/package-use.html b/docs/com.app.flight/com/app/flight/package-use.html new file mode 100644 index 0000000..2a55652 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/package-use.html @@ -0,0 +1,58 @@ + + + + +程序包 com.app.flight的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
com.app.flight

+
+没有com.app.flight的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/GetBoardingPass.html b/docs/com.app.flight/com/app/flight/service/GetBoardingPass.html new file mode 100644 index 0000000..132d899 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/GetBoardingPass.html @@ -0,0 +1,143 @@ + + + + +GetBoardingPass + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

接口 GetBoardingPass

+
+
+
+
所有已知实现类:
+
GetBoardingPassImpl
+
+
+
public interface GetBoardingPass
+
+
版本:
+
1.0
+
作者:
+
SongBo
+
+
+
+
    + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    + + +
    +
    Find the passenger's boarding pass
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupBoardingPass

      +
      BoardingPass lookupBoardingPass()
      +
      Find the passenger's boarding pass
      +
      +
      返回:
      +
      passenger's boarding pass
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/GetFlight.html b/docs/com.app.flight/com/app/flight/service/GetFlight.html new file mode 100644 index 0000000..96be795 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/GetFlight.html @@ -0,0 +1,143 @@ + + + + +GetFlight + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

接口 GetFlight

+
+
+
+
所有已知实现类:
+
GetFlightImpl
+
+
+
public interface GetFlight
+
+
作者:
+
Jia Boran
+
+
+
+
    + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    + +
    lookupFlight(String flightId)
    +
    +
    Find flights by flight name
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupFlight

      +
      Flight lookupFlight(String flightId)
      +
      Find flights by flight name
      +
      +
      参数:
      +
      flightId - flight ID
      +
      返回:
      +
      flight information
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/GetNavigationPicture.gateType.html b/docs/com.app.flight/com/app/flight/service/GetNavigationPicture.gateType.html new file mode 100644 index 0000000..de23c6b --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/GetNavigationPicture.gateType.html @@ -0,0 +1,242 @@ + + + + +GetNavigationPicture.gateType + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

Enum Class GetNavigationPicture.gateType

+
+
java.lang.Object +
java.lang.Enum<GetNavigationPicture.gateType> +
com.app.flight.service.GetNavigationPicture.gateType
+
+
+
+
+
所有已实现的接口:
+
Serializable, Comparable<GetNavigationPicture.gateType>, Constable
+
+
+
封闭接口:
+
GetNavigationPicture
+
+
+
public static enum GetNavigationPicture.gateType +extends Enum<GetNavigationPicture.gateType>
+
+
+ +
+
+
    + +
  • +
    +

    枚举常量详细资料

    + +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      values

      +
      public static GetNavigationPicture.gateType[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      返回:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static GetNavigationPicture.gateType valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      参数:
      +
      name - 要返回的枚举常量的名称。
      +
      返回:
      +
      返回带有指定名称的枚举常量
      +
      抛出:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - 如果参数为空值
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/GetNavigationPicture.html b/docs/com.app.flight/com/app/flight/service/GetNavigationPicture.html new file mode 100644 index 0000000..23cbdcb --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/GetNavigationPicture.html @@ -0,0 +1,163 @@ + + + + +GetNavigationPicture + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

接口 GetNavigationPicture

+
+
+
+
所有已知实现类:
+
NavigationPictureImpl
+
+
+
public interface GetNavigationPicture
+
+
+ +
+
+
    + +
  • +
    +

    方法详细资料

    + +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/GetPassenger.html b/docs/com.app.flight/com/app/flight/service/GetPassenger.html new file mode 100644 index 0000000..5b5dc97 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/GetPassenger.html @@ -0,0 +1,161 @@ + + + + +GetPassenger + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

接口 GetPassenger

+
+
+
+
所有已知实现类:
+
GetPassengerImpl, GetPassengerImplTemp
+
+
+
public interface GetPassenger
+
+
作者:
+
LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupPassengerById

      +
      Passenger lookupPassengerById(String passengerId)
      +
      Find passengers by ID
      +
      +
      参数:
      +
      passengerId - id
      +
      返回:
      +
      Passenger
      +
      +
      +
    • +
    • +
      +

      lookupPassengerByBookingNumber

      +
      Passenger lookupPassengerByBookingNumber(String bookNumber)
      +
      Find passengers by reservation number
      +
      +
      参数:
      +
      bookNumber - id
      +
      返回:
      +
      Passenger
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/GetReservation.html b/docs/com.app.flight/com/app/flight/service/GetReservation.html new file mode 100644 index 0000000..6ebf5b5 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/GetReservation.html @@ -0,0 +1,145 @@ + + + + +GetReservation + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

接口 GetReservation

+
+
+
+
所有已知实现类:
+
GetReservationImpl, GetReservationImplTemp
+
+
+
public interface GetReservation
+
+
版本:
+
1.0
+
作者:
+
SongBo
+
+
+
+
    + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    + + +
    +
    Find information about passenger's scheduled flight
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupReservations

      +
      ArrayList<Reservation> lookupReservations(String passengerId)
      +
      Find information about passenger's scheduled flight
      +
      +
      参数:
      +
      passengerId - passenger ID
      +
      返回:
      +
      Information on all scheduled flights
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/GetSeatMap.html b/docs/com.app.flight/com/app/flight/service/GetSeatMap.html new file mode 100644 index 0000000..4b769f8 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/GetSeatMap.html @@ -0,0 +1,143 @@ + + + + +GetSeatMap + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

接口 GetSeatMap

+
+
+
+
所有已知实现类:
+
GetSeatMapImplTemp, SeatMapImpl
+
+
+
public interface GetSeatMap
+
+
作者:
+
zhenghan
+
+
+
+ +
+
+
    + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupSeatMap

      +
      Map<Integer,Map<String,Boolean>> lookupSeatMap(String flightId)
      +
      Return the seat map data of the flight
      +
      +
      参数:
      +
      flightId - Flight No.
      +
      返回:
      +
      SeatUtil information map
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/SetFood.html b/docs/com.app.flight/com/app/flight/service/SetFood.html new file mode 100644 index 0000000..1509b5d --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/SetFood.html @@ -0,0 +1,141 @@ + + + + +SetFood + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

接口 SetFood

+
+
+
+
所有已知实现类:
+
SetFoodImpl
+
+
+
public interface SetFood
+
+
作者:
+
贾博然
+
+
+
+
    + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    +
    void
    + +
    +
    Method to get food
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      setFood

      +
      void setFood(Food.foodType foodName)
      +
      Method to get food
      +
      +
      参数:
      +
      foodName - food type
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/SetSeatMap.html b/docs/com.app.flight/com/app/flight/service/SetSeatMap.html new file mode 100644 index 0000000..48d7f45 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/SetSeatMap.html @@ -0,0 +1,152 @@ + + + + +SetSeatMap + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

接口 SetSeatMap

+
+
+
+
所有已知实现类:
+
SeatMapImpl
+
+
+
public interface SetSeatMap
+
+
版本:
+
1.0
+
作者:
+
SongBo
+
+
+
+
    + +
  • +
    +

    方法概要

    +
    +
    +
    +
    +
    修饰符和类型
    +
    方法
    +
    说明
    +
    void
    +
    updateSeatMap(String flightId, + String column, + int row, + double price)
    +
    +
    Modify the Boolean value of a seat
    +
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      updateSeatMap

      +
      void updateSeatMap(String flightId, + String column, + int row, + double price)
      +
      Modify the Boolean value of a seat
      +
      +
      参数:
      +
      flightId - flightId
      +
      column - Modify the number of columns of seats
      +
      row - Modify the number of rows of seats
      +
      price - Modify the price of the selected seat
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/class-use/GetBoardingPass.html b/docs/com.app.flight/com/app/flight/service/class-use/GetBoardingPass.html new file mode 100644 index 0000000..7dc4fa4 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/class-use/GetBoardingPass.html @@ -0,0 +1,83 @@ + + + + +接口 com.app.flight.service.GetBoardingPass的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

接口的使用
com.app.flight.service.GetBoardingPass

+
+
使用GetBoardingPass的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/class-use/GetFlight.html b/docs/com.app.flight/com/app/flight/service/class-use/GetFlight.html new file mode 100644 index 0000000..bae5a74 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/class-use/GetFlight.html @@ -0,0 +1,83 @@ + + + + +接口 com.app.flight.service.GetFlight的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

接口的使用
com.app.flight.service.GetFlight

+
+
使用GetFlight的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/class-use/GetNavigationPicture.gateType.html b/docs/com.app.flight/com/app/flight/service/class-use/GetNavigationPicture.gateType.html new file mode 100644 index 0000000..47c44a1 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/class-use/GetNavigationPicture.gateType.html @@ -0,0 +1,128 @@ + + + + +Enum Class com.app.flight.service.GetNavigationPicture.gateType的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

Enum Class的使用
com.app.flight.service.GetNavigationPicture.gateType

+
+ +
+
程序包
+
说明
+ +
 
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/class-use/GetNavigationPicture.html b/docs/com.app.flight/com/app/flight/service/class-use/GetNavigationPicture.html new file mode 100644 index 0000000..6152318 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/class-use/GetNavigationPicture.html @@ -0,0 +1,83 @@ + + + + +接口 com.app.flight.service.GetNavigationPicture的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

接口的使用
com.app.flight.service.GetNavigationPicture

+
+
使用GetNavigationPicture的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/class-use/GetPassenger.html b/docs/com.app.flight/com/app/flight/service/class-use/GetPassenger.html new file mode 100644 index 0000000..e2e93a4 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/class-use/GetPassenger.html @@ -0,0 +1,99 @@ + + + + +接口 com.app.flight.service.GetPassenger的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

接口的使用
com.app.flight.service.GetPassenger

+
+
使用GetPassenger的程序包
+ +
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/class-use/GetReservation.html b/docs/com.app.flight/com/app/flight/service/class-use/GetReservation.html new file mode 100644 index 0000000..7744043 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/class-use/GetReservation.html @@ -0,0 +1,99 @@ + + + + +接口 com.app.flight.service.GetReservation的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

接口的使用
com.app.flight.service.GetReservation

+
+
使用GetReservation的程序包
+ +
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/class-use/GetSeatMap.html b/docs/com.app.flight/com/app/flight/service/class-use/GetSeatMap.html new file mode 100644 index 0000000..470c8ae --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/class-use/GetSeatMap.html @@ -0,0 +1,99 @@ + + + + +接口 com.app.flight.service.GetSeatMap的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

接口的使用
com.app.flight.service.GetSeatMap

+
+
使用GetSeatMap的程序包
+ +
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/class-use/SetFood.html b/docs/com.app.flight/com/app/flight/service/class-use/SetFood.html new file mode 100644 index 0000000..6577e15 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/class-use/SetFood.html @@ -0,0 +1,83 @@ + + + + +接口 com.app.flight.service.SetFood的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

接口的使用
com.app.flight.service.SetFood

+
+
使用SetFood的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/class-use/SetSeatMap.html b/docs/com.app.flight/com/app/flight/service/class-use/SetSeatMap.html new file mode 100644 index 0000000..59ded9c --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/class-use/SetSeatMap.html @@ -0,0 +1,83 @@ + + + + +接口 com.app.flight.service.SetSeatMap的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

接口的使用
com.app.flight.service.SetSeatMap

+
+
使用SetSeatMap的程序包
+
+
程序包
+
说明
+ +
 
+
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/external/Printer.html b/docs/com.app.flight/com/app/flight/service/external/Printer.html new file mode 100644 index 0000000..ae0097f --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/external/Printer.html @@ -0,0 +1,226 @@ + + + + +Printer + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Printer

+
+
java.lang.Object +
com.app.flight.service.external.Printer
+
+
+
+
public class Printer +extends Object
+
+
作者:
+
LianJunhong, SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      boardingPassData

      +
      public static StringBuilder boardingPassData
      +
      +
    • +
    • +
      +

      tagData

      +
      public static StringBuilder tagData
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Printer

      +
      public Printer()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      printBoardingPass

      +
      public static void printBoardingPass(String jsonFilePath, + String boardingPassFilePath)
      +
      +
    • +
    • +
      +

      printTag

      +
      public static void printTag(String jsonFilePath, + String tagFilePath)
      +
      +
    • +
    • +
      +

      print

      +
      public Boolean print(javafx.scene.control.ProgressBar progressBar, + javafx.scene.control.Label percentage)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/external/QRCodeGenerator.html b/docs/com.app.flight/com/app/flight/service/external/QRCodeGenerator.html new file mode 100644 index 0000000..abad196 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/external/QRCodeGenerator.html @@ -0,0 +1,215 @@ + + + + +QRCodeGenerator + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 QRCodeGenerator

+
+
java.lang.Object +
com.app.flight.service.external.QRCodeGenerator
+
+
+
+
public class QRCodeGenerator +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      QR_CODE_PATH

      +
      public static final String QR_CODE_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      QRCodeGenerator

      +
      public QRCodeGenerator()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      generatePayCode

      +
      public static void generatePayCode(String type)
      +
      +
    • +
    • +
      +

      generateBoardingPassCode

      +
      public static void generateBoardingPassCode()
      +
      +
    • +
    • +
      +

      generateTagCode

      +
      public static void generateTagCode()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/external/Scanner.html b/docs/com.app.flight/com/app/flight/service/external/Scanner.html new file mode 100644 index 0000000..0d439d4 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/external/Scanner.html @@ -0,0 +1,249 @@ + + + + +Scanner + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Scanner

+
+
java.lang.Object +
com.app.flight.service.external.Scanner
+
+
+
+
所有已实现的接口:
+
Runnable
+
+
+
public class Scanner +extends Object +implements Runnable
+
+
作者:
+
ZhengHan, LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      scanInstructionController

      +
      public ScanInstructionController scanInstructionController
      +
      +
    • +
    • +
      +

      stage

      +
      public javafx.stage.Stage stage
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Scanner

      +
      public Scanner()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      playVideo

      +
      public javafx.scene.media.MediaPlayer playVideo()
      +
      +
    • +
    • +
      +

      run

      +
      public void run()
      +
      When an object implementing interface Runnable is used + to create a thread, starting the thread causes the object's + run method to be called in that separately executing + thread. +

      + The general contract of the method run is that it may + take any action whatsoever.

      +
      +
      指定者:
      +
      run 在接口中 Runnable
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      ConsoleScanner

      +
      public void ConsoleScanner(ScanInstructionController scanInstructionController, + javafx.stage.Stage stage)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/external/class-use/Printer.html b/docs/com.app.flight/com/app/flight/service/external/class-use/Printer.html new file mode 100644 index 0000000..e51bf98 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/external/class-use/Printer.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.external.Printer的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.external.Printer

+
+没有com.app.flight.service.external.Printer的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/external/class-use/QRCodeGenerator.html b/docs/com.app.flight/com/app/flight/service/external/class-use/QRCodeGenerator.html new file mode 100644 index 0000000..bbceaec --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/external/class-use/QRCodeGenerator.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.external.QRCodeGenerator的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.external.QRCodeGenerator

+
+没有com.app.flight.service.external.QRCodeGenerator的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/external/class-use/Scanner.html b/docs/com.app.flight/com/app/flight/service/external/class-use/Scanner.html new file mode 100644 index 0000000..a9489dc --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/external/class-use/Scanner.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.external.Scanner的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.external.Scanner

+
+没有com.app.flight.service.external.Scanner的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/external/package-summary.html b/docs/com.app.flight/com/app/flight/service/external/package-summary.html new file mode 100644 index 0000000..ffad8a4 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/external/package-summary.html @@ -0,0 +1,103 @@ + + + + +com.app.flight.service.external + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 com.app.flight.service.external

+
+
+
package com.app.flight.service.external
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/external/package-tree.html b/docs/com.app.flight/com/app/flight/service/external/package-tree.html new file mode 100644 index 0000000..01a342c --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/external/package-tree.html @@ -0,0 +1,74 @@ + + + + +com.app.flight.service.external 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包com.app.flight.service.external的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/external/package-use.html b/docs/com.app.flight/com/app/flight/service/external/package-use.html new file mode 100644 index 0000000..4ac390b --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/external/package-use.html @@ -0,0 +1,58 @@ + + + + +程序包 com.app.flight.service.external的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
com.app.flight.service.external

+
+没有com.app.flight.service.external的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/GetBoardingPassImpl.html b/docs/com.app.flight/com/app/flight/service/impl/GetBoardingPassImpl.html new file mode 100644 index 0000000..3faa1c6 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/GetBoardingPassImpl.html @@ -0,0 +1,181 @@ + + + + +GetBoardingPassImpl + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 GetBoardingPassImpl

+
+
java.lang.Object +
com.app.flight.service.impl.GetBoardingPassImpl
+
+
+
+
所有已实现的接口:
+
GetBoardingPass
+
+
+
public class GetBoardingPassImpl +extends Object +implements GetBoardingPass
+
+
版本:
+
1.0
+
作者:
+
SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetBoardingPassImpl

      +
      public GetBoardingPassImpl()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    + +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/GetFlightImpl.html b/docs/com.app.flight/com/app/flight/service/impl/GetFlightImpl.html new file mode 100644 index 0000000..d0ee42d --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/GetFlightImpl.html @@ -0,0 +1,192 @@ + + + + +GetFlightImpl + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 GetFlightImpl

+
+
java.lang.Object +
com.app.flight.service.impl.GetFlightImpl
+
+
+
+
所有已实现的接口:
+
GetFlight
+
+
+
public class GetFlightImpl +extends Object +implements GetFlight
+
+
版本:
+
1.0
+
作者:
+
Jia Boran
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetFlightImpl

      +
      public GetFlightImpl()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupFlight

      +
      public static Flight lookupFlight()
      +
      +
    • +
    • +
      +

      lookupFlight

      +
      public Flight lookupFlight(String flightId)
      +
      从接口复制的说明: GetFlight
      +
      Find flights by flight name
      +
      +
      指定者:
      +
      lookupFlight 在接口中 GetFlight
      +
      参数:
      +
      flightId - flight ID
      +
      返回:
      +
      flight information
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/GetPassengerImpl.html b/docs/com.app.flight/com/app/flight/service/impl/GetPassengerImpl.html new file mode 100644 index 0000000..8e8c8f8 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/GetPassengerImpl.html @@ -0,0 +1,213 @@ + + + + +GetPassengerImpl + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 GetPassengerImpl

+
+
java.lang.Object +
com.app.flight.service.impl.GetPassengerImpl
+
+
+
+
所有已实现的接口:
+
GetPassenger
+
+
+
public class GetPassengerImpl +extends Object +implements GetPassenger
+
+
版本:
+
1.0
+
作者:
+
SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetPassengerImpl

      +
      public GetPassengerImpl()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    + +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/GetReservationImpl.html b/docs/com.app.flight/com/app/flight/service/impl/GetReservationImpl.html new file mode 100644 index 0000000..90089a5 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/GetReservationImpl.html @@ -0,0 +1,192 @@ + + + + +GetReservationImpl + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 GetReservationImpl

+
+
java.lang.Object +
com.app.flight.service.impl.GetReservationImpl
+
+
+
+
所有已实现的接口:
+
GetReservation
+
+
+
public class GetReservationImpl +extends Object +implements GetReservation
+
+
版本:
+
1.1
+
作者:
+
JiaBoran, SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetReservationImpl

      +
      public GetReservationImpl()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupReservation

      +
      public static Reservation lookupReservation()
      +
      +
    • +
    • +
      +

      lookupReservations

      +
      public ArrayList<Reservation> lookupReservations(String passengerId)
      +
      从接口复制的说明: GetReservation
      +
      Find information about passenger's scheduled flight
      +
      +
      指定者:
      +
      lookupReservations 在接口中 GetReservation
      +
      参数:
      +
      passengerId - passenger ID
      +
      返回:
      +
      Information on all scheduled flights
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/NavigationPictureImpl.html b/docs/com.app.flight/com/app/flight/service/impl/NavigationPictureImpl.html new file mode 100644 index 0000000..f2d7ed8 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/NavigationPictureImpl.html @@ -0,0 +1,219 @@ + + + + +NavigationPictureImpl + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 NavigationPictureImpl

+
+
java.lang.Object +
com.app.flight.service.impl.NavigationPictureImpl
+
+
+
+
所有已实现的接口:
+
GetNavigationPicture
+
+
+
public class NavigationPictureImpl +extends Object +implements GetNavigationPicture
+
+
版本:
+
1.0
+
作者:
+
LianJunhong
+
+
+
+ +
+
+ +
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/SeatMapImpl.html b/docs/com.app.flight/com/app/flight/service/impl/SeatMapImpl.html new file mode 100644 index 0000000..6ae1fcc --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/SeatMapImpl.html @@ -0,0 +1,220 @@ + + + + +SeatMapImpl + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 SeatMapImpl

+
+
java.lang.Object +
com.app.flight.service.impl.SeatMapImpl
+
+
+
+
所有已实现的接口:
+
GetSeatMap, SetSeatMap
+
+
+
public class SeatMapImpl +extends Object +implements SetSeatMap, GetSeatMap
+
+
版本:
+
1.1
+
作者:
+
SongBo, LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      SeatMapImpl

      +
      public SeatMapImpl()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupSeatPrice

      +
      public static double lookupSeatPrice()
      +
      +
    • +
    • +
      +

      updateSeatMap

      +
      public void updateSeatMap(String flightId, + String column, + int row, + double price)
      +
      从接口复制的说明: SetSeatMap
      +
      Modify the Boolean value of a seat
      +
      +
      指定者:
      +
      updateSeatMap 在接口中 SetSeatMap
      +
      参数:
      +
      flightId - flightId
      +
      column - Modify the number of columns of seats
      +
      row - Modify the number of rows of seats
      +
      price - Modify the price of the selected seat
      +
      +
      +
    • +
    • +
      +

      lookupSeatMap

      +
      public Map<Integer,Map<String,Boolean>> lookupSeatMap(String flightId)
      +
      从接口复制的说明: GetSeatMap
      +
      Return the seat map data of the flight
      +
      +
      指定者:
      +
      lookupSeatMap 在接口中 GetSeatMap
      +
      参数:
      +
      flightId - Flight No.
      +
      返回:
      +
      SeatUtil information map
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/SetFoodImpl.html b/docs/com.app.flight/com/app/flight/service/impl/SetFoodImpl.html new file mode 100644 index 0000000..cf2cf16 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/SetFoodImpl.html @@ -0,0 +1,188 @@ + + + + +SetFoodImpl + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 SetFoodImpl

+
+
java.lang.Object +
com.app.flight.service.impl.SetFoodImpl
+
+
+
+
所有已实现的接口:
+
SetFood
+
+
+
public class SetFoodImpl +extends Object +implements SetFood
+
+
作者:
+
JiaBoran
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      SetFoodImpl

      +
      public SetFoodImpl()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupFood

      +
      public static Food lookupFood()
      +
      +
    • +
    • +
      +

      setFood

      +
      public void setFood(Food.foodType foodName)
      +
      从接口复制的说明: SetFood
      +
      Method to get food
      +
      +
      指定者:
      +
      setFood 在接口中 SetFood
      +
      参数:
      +
      foodName - food type
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/class-use/GetBoardingPassImpl.html b/docs/com.app.flight/com/app/flight/service/impl/class-use/GetBoardingPassImpl.html new file mode 100644 index 0000000..9bfe6ca --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/class-use/GetBoardingPassImpl.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.impl.GetBoardingPassImpl的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.impl.GetBoardingPassImpl

+
+没有com.app.flight.service.impl.GetBoardingPassImpl的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/class-use/GetFlightImpl.html b/docs/com.app.flight/com/app/flight/service/impl/class-use/GetFlightImpl.html new file mode 100644 index 0000000..ba68b3a --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/class-use/GetFlightImpl.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.impl.GetFlightImpl的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.impl.GetFlightImpl

+
+没有com.app.flight.service.impl.GetFlightImpl的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/class-use/GetPassengerImpl.html b/docs/com.app.flight/com/app/flight/service/impl/class-use/GetPassengerImpl.html new file mode 100644 index 0000000..eea4e1f --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/class-use/GetPassengerImpl.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.impl.GetPassengerImpl的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.impl.GetPassengerImpl

+
+没有com.app.flight.service.impl.GetPassengerImpl的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/class-use/GetReservationImpl.html b/docs/com.app.flight/com/app/flight/service/impl/class-use/GetReservationImpl.html new file mode 100644 index 0000000..a032738 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/class-use/GetReservationImpl.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.impl.GetReservationImpl的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.impl.GetReservationImpl

+
+没有com.app.flight.service.impl.GetReservationImpl的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/class-use/NavigationPictureImpl.html b/docs/com.app.flight/com/app/flight/service/impl/class-use/NavigationPictureImpl.html new file mode 100644 index 0000000..fbd81f6 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/class-use/NavigationPictureImpl.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.impl.NavigationPictureImpl的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.impl.NavigationPictureImpl

+
+没有com.app.flight.service.impl.NavigationPictureImpl的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/class-use/SeatMapImpl.html b/docs/com.app.flight/com/app/flight/service/impl/class-use/SeatMapImpl.html new file mode 100644 index 0000000..ab13d52 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/class-use/SeatMapImpl.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.impl.SeatMapImpl的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.impl.SeatMapImpl

+
+没有com.app.flight.service.impl.SeatMapImpl的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/class-use/SetFoodImpl.html b/docs/com.app.flight/com/app/flight/service/impl/class-use/SetFoodImpl.html new file mode 100644 index 0000000..3e31a58 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/class-use/SetFoodImpl.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.impl.SetFoodImpl的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.impl.SetFoodImpl

+
+没有com.app.flight.service.impl.SetFoodImpl的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/package-summary.html b/docs/com.app.flight/com/app/flight/service/impl/package-summary.html new file mode 100644 index 0000000..2caa169 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/package-summary.html @@ -0,0 +1,111 @@ + + + + +com.app.flight.service.impl + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 com.app.flight.service.impl

+
+
+
package com.app.flight.service.impl
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/package-tree.html b/docs/com.app.flight/com/app/flight/service/impl/package-tree.html new file mode 100644 index 0000000..4e6cf05 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/package-tree.html @@ -0,0 +1,78 @@ + + + + +com.app.flight.service.impl 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包com.app.flight.service.impl的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/impl/package-use.html b/docs/com.app.flight/com/app/flight/service/impl/package-use.html new file mode 100644 index 0000000..a27e36d --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/impl/package-use.html @@ -0,0 +1,58 @@ + + + + +程序包 com.app.flight.service.impl的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
com.app.flight.service.impl

+
+没有com.app.flight.service.impl的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/package-summary.html b/docs/com.app.flight/com/app/flight/service/package-summary.html new file mode 100644 index 0000000..7f8c2f1 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/package-summary.html @@ -0,0 +1,129 @@ + + + + +com.app.flight.service + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 com.app.flight.service

+
+
+
package com.app.flight.service
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/package-tree.html b/docs/com.app.flight/com/app/flight/service/package-tree.html new file mode 100644 index 0000000..ddd5aeb --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/package-tree.html @@ -0,0 +1,89 @@ + + + + +com.app.flight.service 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包com.app.flight.service的分层结构

+程序包分层结构: + +
+
+

接口分层结构

+ +
+
+

Enum Class Hierarchy

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/package-use.html b/docs/com.app.flight/com/app/flight/service/package-use.html new file mode 100644 index 0000000..65d433f --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/package-use.html @@ -0,0 +1,126 @@ + + + + +程序包 com.app.flight.service的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
com.app.flight.service

+
+
使用com.app.flight.service的程序包
+ +
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/temp/GetPassengerImplTemp.html b/docs/com.app.flight/com/app/flight/service/temp/GetPassengerImplTemp.html new file mode 100644 index 0000000..0fbf2d2 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/temp/GetPassengerImplTemp.html @@ -0,0 +1,202 @@ + + + + +GetPassengerImplTemp + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 GetPassengerImplTemp

+
+
java.lang.Object +
com.app.flight.service.temp.GetPassengerImplTemp
+
+
+
+
所有已实现的接口:
+
GetPassenger
+
+
+
public class GetPassengerImplTemp +extends Object +implements GetPassenger
+
+
作者:
+
LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetPassengerImplTemp

      +
      public GetPassengerImplTemp()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    + +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/temp/GetReservationImplTemp.html b/docs/com.app.flight/com/app/flight/service/temp/GetReservationImplTemp.html new file mode 100644 index 0000000..673606c --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/temp/GetReservationImplTemp.html @@ -0,0 +1,181 @@ + + + + +GetReservationImplTemp + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 GetReservationImplTemp

+
+
java.lang.Object +
com.app.flight.service.temp.GetReservationImplTemp
+
+
+
+
所有已实现的接口:
+
GetReservation
+
+
+
public class GetReservationImplTemp +extends Object +implements GetReservation
+
+
作者:
+
LianJunhong
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetReservationImplTemp

      +
      public GetReservationImplTemp()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    + +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/temp/GetSeatMapImplTemp.html b/docs/com.app.flight/com/app/flight/service/temp/GetSeatMapImplTemp.html new file mode 100644 index 0000000..2ff9846 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/temp/GetSeatMapImplTemp.html @@ -0,0 +1,181 @@ + + + + +GetSeatMapImplTemp + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 GetSeatMapImplTemp

+
+
java.lang.Object +
com.app.flight.service.temp.GetSeatMapImplTemp
+
+
+
+
所有已实现的接口:
+
GetSeatMap
+
+
+
public class GetSeatMapImplTemp +extends Object +implements GetSeatMap
+
+
作者:
+
zhenghan
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetSeatMapImplTemp

      +
      public GetSeatMapImplTemp()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    + +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/temp/class-use/GetPassengerImplTemp.html b/docs/com.app.flight/com/app/flight/service/temp/class-use/GetPassengerImplTemp.html new file mode 100644 index 0000000..2e58385 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/temp/class-use/GetPassengerImplTemp.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.temp.GetPassengerImplTemp的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.temp.GetPassengerImplTemp

+
+没有com.app.flight.service.temp.GetPassengerImplTemp的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/temp/class-use/GetReservationImplTemp.html b/docs/com.app.flight/com/app/flight/service/temp/class-use/GetReservationImplTemp.html new file mode 100644 index 0000000..2653232 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/temp/class-use/GetReservationImplTemp.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.temp.GetReservationImplTemp的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.temp.GetReservationImplTemp

+
+没有com.app.flight.service.temp.GetReservationImplTemp的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/temp/class-use/GetSeatMapImplTemp.html b/docs/com.app.flight/com/app/flight/service/temp/class-use/GetSeatMapImplTemp.html new file mode 100644 index 0000000..a840aeb --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/temp/class-use/GetSeatMapImplTemp.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.service.temp.GetSeatMapImplTemp的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.service.temp.GetSeatMapImplTemp

+
+没有com.app.flight.service.temp.GetSeatMapImplTemp的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/temp/package-summary.html b/docs/com.app.flight/com/app/flight/service/temp/package-summary.html new file mode 100644 index 0000000..9321366 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/temp/package-summary.html @@ -0,0 +1,103 @@ + + + + +com.app.flight.service.temp + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 com.app.flight.service.temp

+
+
+
package com.app.flight.service.temp
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/temp/package-tree.html b/docs/com.app.flight/com/app/flight/service/temp/package-tree.html new file mode 100644 index 0000000..5b3f3f8 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/temp/package-tree.html @@ -0,0 +1,74 @@ + + + + +com.app.flight.service.temp 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包com.app.flight.service.temp的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/service/temp/package-use.html b/docs/com.app.flight/com/app/flight/service/temp/package-use.html new file mode 100644 index 0000000..ac1f23f --- /dev/null +++ b/docs/com.app.flight/com/app/flight/service/temp/package-use.html @@ -0,0 +1,58 @@ + + + + +程序包 com.app.flight.service.temp的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
com.app.flight.service.temp

+
+没有com.app.flight.service.temp的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/Csv.html b/docs/com.app.flight/com/app/flight/util/Csv.html new file mode 100644 index 0000000..83f102d --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/Csv.html @@ -0,0 +1,360 @@ + + + + +Csv + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Csv

+
+
java.lang.Object +
com.app.flight.util.Csv
+
+
+
+
public class Csv +extends Object
+
+
版本:
+
2.0
+
作者:
+
SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      FLIGHT_CSV_PATH

      +
      public static final String FLIGHT_CSV_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      FOOD_CSV_PATH

      +
      public static final String FOOD_CSV_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      PASSENGER_CSV_PATH

      +
      public static final String PASSENGER_CSV_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      RESERVATION_CSV_PATH

      +
      public static final String RESERVATION_CSV_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      BOARDING_PASS_CSV_PATH

      +
      public static final String BOARDING_PASS_CSV_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Csv

      +
      public Csv()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      addCsv

      +
      public static boolean addCsv(Object entity, + String filePath, + boolean unique)
      +
      Add a row of csv data
      +
      +
      参数:
      +
      entity - Add the entity corresponding to the data
      +
      filePath - File directory for adding data
      +
      unique - Does the entity have a unique field
      +
      返回:
      +
      Whether added successfully or not
      +
      +
      +
    • +
    • +
      +

      readCsv

      +
      public static ArrayList<String[]> readCsv(String filePath)
      +
      Read all csv data
      +
      +
      参数:
      +
      filePath - Directory of files for reading csv data
      +
      返回:
      +
      Retrieved data sets
      +
      +
      +
    • +
    • +
      +

      updateCsv

      +
      public static boolean updateCsv(Object entity, + String filePath)
      +
      Update a row of csv data and the entity must have a unique field
      +
      +
      参数:
      +
      entity - Update the entity corresponding to the data
      +
      filePath - File directory for updating data
      +
      返回:
      +
      Whether updated successfully or not
      +
      +
      +
    • +
    • +
      +

      deleteCsv

      +
      public static boolean deleteCsv(Object entity, + String filePath, + boolean unique)
      +
      Delete a row of csv data
      +
      +
      参数:
      +
      entity - Delete the entity corresponding to the data
      +
      filePath - File directory for deleted data
      +
      unique - Does the entity have a unique field
      +
      返回:
      +
      Whether deleted successfully or not
      +
      +
      +
    • +
    • +
      +

      checkCsv

      +
      public static Object checkCsv(Object entity, + String filePath)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/DataParser.html b/docs/com.app.flight/com/app/flight/util/DataParser.html new file mode 100644 index 0000000..a226587 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/DataParser.html @@ -0,0 +1,173 @@ + + + + +DataParser + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 DataParser

+
+
java.lang.Object +
com.app.flight.util.DataParser
+
+
+
+
public class DataParser +extends Object
+
+
作者:
+
zhenghan
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      DataParser

      +
      public DataParser()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      noToString

      +
      public static String noToString(int no)
      +
      +
    • +
    • +
      +

      stringToNo

      +
      public static int stringToNo(String s)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/Json.html b/docs/com.app.flight/com/app/flight/util/Json.html new file mode 100644 index 0000000..11e798a --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/Json.html @@ -0,0 +1,316 @@ + + + + +Json + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Json

+
+
java.lang.Object +
com.app.flight.util.Json
+
+
+
+
public class Json +extends Object
+
+
版本:
+
1.0
+
作者:
+
SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    字段详细资料

    +
      +
    • +
      +

      BOARDING_PASS_JSON_PATH

      +
      public static final String BOARDING_PASS_JSON_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      FLIGHT_JSON_PATH

      +
      public static final String FLIGHT_JSON_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      FOOD_JSON_PATH

      +
      public static final String FOOD_JSON_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      PASSENGER_JSON_PATH

      +
      public static final String PASSENGER_JSON_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      RESERVATION_JSON_PATH

      +
      public static final String RESERVATION_JSON_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      SEAT_JSON_PATH

      +
      public static final String SEAT_JSON_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    • +
      +

      TYPE_JSON_PATH

      +
      public static final String TYPE_JSON_PATH
      +
      +
      另请参阅:
      +
      + +
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Json

      +
      public Json()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      writeJson

      +
      public static boolean writeJson(String jsonFilePath, + Object obj)
      +
      +
    • +
    • +
      +

      extractJsonData

      +
      public static String extractJsonData(String jsonFilePath)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/Obj.html b/docs/com.app.flight/com/app/flight/util/Obj.html new file mode 100644 index 0000000..a2fce61 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/Obj.html @@ -0,0 +1,184 @@ + + + + +Obj + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Obj

+
+
java.lang.Object +
com.app.flight.util.Obj
+
+
+
+
public class Obj +extends Object
+
+
版本:
+
1.0
+
作者:
+
SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Obj

      +
      public Obj()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      generateObjAttr

      +
      public static String[] generateObjAttr(Object obj)
      +
      +
    • +
    • +
      +

      getSelectType

      +
      public static String getSelectType()
      +
      +
    • +
    • +
      +

      setSelectType

      +
      public static void setSelectType(String selectType)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/SeatUtil.html b/docs/com.app.flight/com/app/flight/util/SeatUtil.html new file mode 100644 index 0000000..b524707 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/SeatUtil.html @@ -0,0 +1,190 @@ + + + + +SeatUtil + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 SeatUtil

+
+
java.lang.Object +
com.app.flight.util.SeatUtil
+
+
+
+
public class SeatUtil +extends Object
+
+
版本:
+
1.0
+
作者:
+
SongBo
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      SeatUtil

      +
      public SeatUtil()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      generateSeatMap

      +
      public static void generateSeatMap(String flightId, + int rowSize)
      +
      +
    • +
    • +
      +

      writeSeatMap

      +
      public static void writeSeatMap(String filePath, + Map<Integer,Map<String,Boolean>> seatMap, + String[] columnString)
      +
      +
    • +
    • +
      +

      generateSeatFilePath

      +
      public static String generateSeatFilePath(String flightId)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/Validator.html b/docs/com.app.flight/com/app/flight/util/Validator.html new file mode 100644 index 0000000..3afecb8 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/Validator.html @@ -0,0 +1,288 @@ + + + + +Validator + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + +

类 Validator

+
+
java.lang.Object +
com.app.flight.util.Validator
+
+
+
+
public class Validator +extends Object
+
+
版本:
+
1.0
+
作者:
+
JiaBoran
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      Validator

      +
      public Validator()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      idValidator

      +
      public static boolean idValidator(String id)
      +
      Validate passengerId
      +
      +
      参数:
      +
      id - passengerId
      +
      返回:
      +
      whether valid or not, null and "" are both false
      +
      +
      +
    • +
    • +
      +

      reservationIdValidator

      +
      public static boolean reservationIdValidator(String reservationId)
      +
      Validate reservationId 19 digits
      +
      +
      参数:
      +
      reservationId -
      +
      返回:
      +
      valid or not
      +
      +
      +
    • +
    • +
      +

      boardingGateValidator

      +
      public static boolean boardingGateValidator(String boardingGate)
      +
      Validate boardingGate
      +
      +
      参数:
      +
      boardingGate -
      +
      返回:
      +
      valid or not
      +
      +
      +
    • +
    • +
      +

      flightIdValidator

      +
      public static boolean flightIdValidator(String flightId)
      +
      Validate flightId: two uppercase words and four digits
      +
      +
      参数:
      +
      flightId -
      +
      返回:
      +
      valid or not
      +
      +
      +
    • +
    • +
      +

      isDigit

      +
      public static boolean isDigit(String string)
      +
      Check whether the char is digit
      +
      +
      参数:
      +
      string - string
      +
      返回:
      +
      +
      +
    • +
    • +
      +

      isUpperCase

      +
      public static boolean isUpperCase(String string)
      +
      Check whether the char is UpperCase
      +
      +
      参数:
      +
      string - string
      +
      返回:
      +
      +
      +
    • +
    • +
      +

      timeValidator

      +
      public static boolean timeValidator(LocalDateTime time)
      +
      Validate whether the flight time is within 24h of the current time
      +
      +
      返回:
      +
      valid or not
      +
      +
      +
    • +
    • +
      +

      visaIdValidator

      +
      public static boolean visaIdValidator(String visaId)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/class-use/Csv.html b/docs/com.app.flight/com/app/flight/util/class-use/Csv.html new file mode 100644 index 0000000..d802188 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/class-use/Csv.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.util.Csv的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.util.Csv

+
+没有com.app.flight.util.Csv的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/class-use/DataParser.html b/docs/com.app.flight/com/app/flight/util/class-use/DataParser.html new file mode 100644 index 0000000..24bee7d --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/class-use/DataParser.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.util.DataParser的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.util.DataParser

+
+没有com.app.flight.util.DataParser的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/class-use/Json.html b/docs/com.app.flight/com/app/flight/util/class-use/Json.html new file mode 100644 index 0000000..9d6f29b --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/class-use/Json.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.util.Json的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.util.Json

+
+没有com.app.flight.util.Json的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/class-use/Obj.html b/docs/com.app.flight/com/app/flight/util/class-use/Obj.html new file mode 100644 index 0000000..7d38d9f --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/class-use/Obj.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.util.Obj的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.util.Obj

+
+没有com.app.flight.util.Obj的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/class-use/SeatUtil.html b/docs/com.app.flight/com/app/flight/util/class-use/SeatUtil.html new file mode 100644 index 0000000..1a6aa40 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/class-use/SeatUtil.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.util.SeatUtil的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.util.SeatUtil

+
+没有com.app.flight.util.SeatUtil的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/class-use/Validator.html b/docs/com.app.flight/com/app/flight/util/class-use/Validator.html new file mode 100644 index 0000000..b6c7fc0 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/class-use/Validator.html @@ -0,0 +1,58 @@ + + + + +类 com.app.flight.util.Validator的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
com.app.flight.util.Validator

+
+没有com.app.flight.util.Validator的用法
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/package-summary.html b/docs/com.app.flight/com/app/flight/util/package-summary.html new file mode 100644 index 0000000..84e25a5 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/package-summary.html @@ -0,0 +1,111 @@ + + + + +com.app.flight.util + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 com.app.flight.util

+
+
+
package com.app.flight.util
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/package-tree.html b/docs/com.app.flight/com/app/flight/util/package-tree.html new file mode 100644 index 0000000..208f1a1 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/package-tree.html @@ -0,0 +1,77 @@ + + + + +com.app.flight.util 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包com.app.flight.util的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/com/app/flight/util/package-use.html b/docs/com.app.flight/com/app/flight/util/package-use.html new file mode 100644 index 0000000..eec6898 --- /dev/null +++ b/docs/com.app.flight/com/app/flight/util/package-use.html @@ -0,0 +1,58 @@ + + + + +程序包 com.app.flight.util的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
com.app.flight.util

+
+没有com.app.flight.util的用法
+
+
+ + diff --git a/docs/com.app.flight/module-summary.html b/docs/com.app.flight/module-summary.html new file mode 100644 index 0000000..007ab7b --- /dev/null +++ b/docs/com.app.flight/module-summary.html @@ -0,0 +1,100 @@ + + + + +com.app.flight + + + + + + + + + + + + + + + +
+ +
+
+
+

模块 com.app.flight

+
+
+
module com.app.flight
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/GetBoardingPassTest.html b/docs/com.app.flight/serviceTest/GetBoardingPassTest.html new file mode 100644 index 0000000..5522936 --- /dev/null +++ b/docs/com.app.flight/serviceTest/GetBoardingPassTest.html @@ -0,0 +1,161 @@ + + + + +GetBoardingPassTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 serviceTest
+

类 GetBoardingPassTest

+
+
java.lang.Object +
serviceTest.GetBoardingPassTest
+
+
+
+
public class GetBoardingPassTest +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetBoardingPassTest

      +
      public GetBoardingPassTest()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupBoardingPassTest

      +
      @Test +public void lookupBoardingPassTest()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/GetFlightTest.html b/docs/com.app.flight/serviceTest/GetFlightTest.html new file mode 100644 index 0000000..9dd6d50 --- /dev/null +++ b/docs/com.app.flight/serviceTest/GetFlightTest.html @@ -0,0 +1,161 @@ + + + + +GetFlightTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 serviceTest
+

类 GetFlightTest

+
+
java.lang.Object +
serviceTest.GetFlightTest
+
+
+
+
public class GetFlightTest +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetFlightTest

      +
      public GetFlightTest()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupFlightTest

      +
      @Test +public void lookupFlightTest()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/GetPassengerTest.html b/docs/com.app.flight/serviceTest/GetPassengerTest.html new file mode 100644 index 0000000..ef2cd24 --- /dev/null +++ b/docs/com.app.flight/serviceTest/GetPassengerTest.html @@ -0,0 +1,161 @@ + + + + +GetPassengerTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 serviceTest
+

类 GetPassengerTest

+
+
java.lang.Object +
serviceTest.GetPassengerTest
+
+
+
+
public class GetPassengerTest +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetPassengerTest

      +
      public GetPassengerTest()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      lookupPassengerTest

      +
      @Test +public void lookupPassengerTest()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/GetSeatMapTestUtil.html b/docs/com.app.flight/serviceTest/GetSeatMapTestUtil.html new file mode 100644 index 0000000..12b34b0 --- /dev/null +++ b/docs/com.app.flight/serviceTest/GetSeatMapTestUtil.html @@ -0,0 +1,161 @@ + + + + +GetSeatMapTestUtil + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 serviceTest
+

类 GetSeatMapTestUtil

+
+
java.lang.Object +
serviceTest.GetSeatMapTestUtil
+
+
+
+
public class GetSeatMapTestUtil +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      GetSeatMapTestUtil

      +
      public GetSeatMapTestUtil()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      getSeatMapTest

      +
      @Test +public void getSeatMapTest()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/SetSeatMapTestUtil.html b/docs/com.app.flight/serviceTest/SetSeatMapTestUtil.html new file mode 100644 index 0000000..fc7e61f --- /dev/null +++ b/docs/com.app.flight/serviceTest/SetSeatMapTestUtil.html @@ -0,0 +1,161 @@ + + + + +SetSeatMapTestUtil + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 serviceTest
+

类 SetSeatMapTestUtil

+
+
java.lang.Object +
serviceTest.SetSeatMapTestUtil
+
+
+
+
public class SetSeatMapTestUtil +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      SetSeatMapTestUtil

      +
      public SetSeatMapTestUtil()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      updateSeatMapTest

      +
      @Test +public void updateSeatMapTest()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/class-use/GetBoardingPassTest.html b/docs/com.app.flight/serviceTest/class-use/GetBoardingPassTest.html new file mode 100644 index 0000000..2b8309b --- /dev/null +++ b/docs/com.app.flight/serviceTest/class-use/GetBoardingPassTest.html @@ -0,0 +1,58 @@ + + + + +类 serviceTest.GetBoardingPassTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
serviceTest.GetBoardingPassTest

+
+没有serviceTest.GetBoardingPassTest的用法
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/class-use/GetFlightTest.html b/docs/com.app.flight/serviceTest/class-use/GetFlightTest.html new file mode 100644 index 0000000..3a09cfc --- /dev/null +++ b/docs/com.app.flight/serviceTest/class-use/GetFlightTest.html @@ -0,0 +1,58 @@ + + + + +类 serviceTest.GetFlightTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
serviceTest.GetFlightTest

+
+没有serviceTest.GetFlightTest的用法
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/class-use/GetPassengerTest.html b/docs/com.app.flight/serviceTest/class-use/GetPassengerTest.html new file mode 100644 index 0000000..80c8e18 --- /dev/null +++ b/docs/com.app.flight/serviceTest/class-use/GetPassengerTest.html @@ -0,0 +1,58 @@ + + + + +类 serviceTest.GetPassengerTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
serviceTest.GetPassengerTest

+
+没有serviceTest.GetPassengerTest的用法
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/class-use/GetSeatMapTestUtil.html b/docs/com.app.flight/serviceTest/class-use/GetSeatMapTestUtil.html new file mode 100644 index 0000000..0349962 --- /dev/null +++ b/docs/com.app.flight/serviceTest/class-use/GetSeatMapTestUtil.html @@ -0,0 +1,58 @@ + + + + +类 serviceTest.GetSeatMapTestUtil的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
serviceTest.GetSeatMapTestUtil

+
+没有serviceTest.GetSeatMapTestUtil的用法
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/class-use/SetSeatMapTestUtil.html b/docs/com.app.flight/serviceTest/class-use/SetSeatMapTestUtil.html new file mode 100644 index 0000000..78689c0 --- /dev/null +++ b/docs/com.app.flight/serviceTest/class-use/SetSeatMapTestUtil.html @@ -0,0 +1,58 @@ + + + + +类 serviceTest.SetSeatMapTestUtil的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
serviceTest.SetSeatMapTestUtil

+
+没有serviceTest.SetSeatMapTestUtil的用法
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/package-summary.html b/docs/com.app.flight/serviceTest/package-summary.html new file mode 100644 index 0000000..ca0bfa1 --- /dev/null +++ b/docs/com.app.flight/serviceTest/package-summary.html @@ -0,0 +1,92 @@ + + + + +serviceTest + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 serviceTest

+
+
+
package serviceTest
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/package-tree.html b/docs/com.app.flight/serviceTest/package-tree.html new file mode 100644 index 0000000..394efc2 --- /dev/null +++ b/docs/com.app.flight/serviceTest/package-tree.html @@ -0,0 +1,76 @@ + + + + +serviceTest 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包serviceTest的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/serviceTest/package-use.html b/docs/com.app.flight/serviceTest/package-use.html new file mode 100644 index 0000000..1563bf4 --- /dev/null +++ b/docs/com.app.flight/serviceTest/package-use.html @@ -0,0 +1,58 @@ + + + + +程序包 serviceTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
serviceTest

+
+没有serviceTest的用法
+
+
+ + diff --git a/docs/com.app.flight/utilTest/CsvTest.html b/docs/com.app.flight/utilTest/CsvTest.html new file mode 100644 index 0000000..12fece2 --- /dev/null +++ b/docs/com.app.flight/utilTest/CsvTest.html @@ -0,0 +1,213 @@ + + + + +CsvTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 utilTest
+

类 CsvTest

+
+
java.lang.Object +
utilTest.CsvTest
+
+
+
+
public class CsvTest +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      CsvTest

      +
      public CsvTest()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      addCsvTest

      +
      @Test +public void addCsvTest()
      +
      Test for adding data to csv
      +
      +
    • +
    • +
      +

      readCsvTest

      +
      @Test +public void readCsvTest()
      +
      Test for reading csv data
      +
      +
    • +
    • +
      +

      updateCsvTest

      +
      @Test +public void updateCsvTest()
      +
      Test for updating csv
      +
      +
    • +
    • +
      +

      deleteCsvTest

      +
      @Test +public void deleteCsvTest()
      +
      Test for deleting csv
      +
      +
    • +
    • +
      +

      foodCsvTest

      +
      @Test +public void foodCsvTest()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/utilTest/SeatUtilTest.html b/docs/com.app.flight/utilTest/SeatUtilTest.html new file mode 100644 index 0000000..d9be616 --- /dev/null +++ b/docs/com.app.flight/utilTest/SeatUtilTest.html @@ -0,0 +1,171 @@ + + + + +SeatUtilTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 utilTest
+

类 SeatUtilTest

+
+
java.lang.Object +
utilTest.SeatUtilTest
+
+
+
+
public class SeatUtilTest +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      SeatUtilTest

      +
      public SeatUtilTest()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      generateSeatMapTest

      +
      @Test +public void generateSeatMapTest()
      +
      +
    • +
    • +
      +

      jsonPathTest

      +
      @Test +public void jsonPathTest()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/utilTest/class-use/CsvTest.html b/docs/com.app.flight/utilTest/class-use/CsvTest.html new file mode 100644 index 0000000..6f9375d --- /dev/null +++ b/docs/com.app.flight/utilTest/class-use/CsvTest.html @@ -0,0 +1,58 @@ + + + + +类 utilTest.CsvTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
utilTest.CsvTest

+
+没有utilTest.CsvTest的用法
+
+
+ + diff --git a/docs/com.app.flight/utilTest/class-use/SeatUtilTest.html b/docs/com.app.flight/utilTest/class-use/SeatUtilTest.html new file mode 100644 index 0000000..b549dd4 --- /dev/null +++ b/docs/com.app.flight/utilTest/class-use/SeatUtilTest.html @@ -0,0 +1,58 @@ + + + + +类 utilTest.SeatUtilTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
utilTest.SeatUtilTest

+
+没有utilTest.SeatUtilTest的用法
+
+
+ + diff --git a/docs/com.app.flight/utilTest/package-summary.html b/docs/com.app.flight/utilTest/package-summary.html new file mode 100644 index 0000000..7221151 --- /dev/null +++ b/docs/com.app.flight/utilTest/package-summary.html @@ -0,0 +1,86 @@ + + + + +utilTest + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 utilTest

+
+
+
package utilTest
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/utilTest/package-tree.html b/docs/com.app.flight/utilTest/package-tree.html new file mode 100644 index 0000000..44d3d10 --- /dev/null +++ b/docs/com.app.flight/utilTest/package-tree.html @@ -0,0 +1,73 @@ + + + + +utilTest 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包utilTest的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/utilTest/package-use.html b/docs/com.app.flight/utilTest/package-use.html new file mode 100644 index 0000000..7583aa0 --- /dev/null +++ b/docs/com.app.flight/utilTest/package-use.html @@ -0,0 +1,58 @@ + + + + +程序包 utilTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
utilTest

+
+没有utilTest的用法
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/BoardingGateValidatorTest.html b/docs/com.app.flight/validatorTest/BoardingGateValidatorTest.html new file mode 100644 index 0000000..e8699d6 --- /dev/null +++ b/docs/com.app.flight/validatorTest/BoardingGateValidatorTest.html @@ -0,0 +1,167 @@ + + + + +BoardingGateValidatorTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 validatorTest
+

类 BoardingGateValidatorTest

+
+
java.lang.Object +
validatorTest.BoardingGateValidatorTest
+
+
+
+
public class BoardingGateValidatorTest +extends Object
+
+
版本:
+
1.0
+
作者:
+
JiaBoran
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      BoardingGateValidatorTest

      +
      public BoardingGateValidatorTest()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      testBoardingGate

      +
      @Test +public void testBoardingGate()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/FlightIdValidatorTest.html b/docs/com.app.flight/validatorTest/FlightIdValidatorTest.html new file mode 100644 index 0000000..a175668 --- /dev/null +++ b/docs/com.app.flight/validatorTest/FlightIdValidatorTest.html @@ -0,0 +1,167 @@ + + + + +FlightIdValidatorTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 validatorTest
+

类 FlightIdValidatorTest

+
+
java.lang.Object +
validatorTest.FlightIdValidatorTest
+
+
+
+
public class FlightIdValidatorTest +extends Object
+
+
版本:
+
1.0
+
作者:
+
JiaBoran
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      FlightIdValidatorTest

      +
      public FlightIdValidatorTest()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      testFlightId

      +
      @Test +public void testFlightId()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/IdValidatorTest.html b/docs/com.app.flight/validatorTest/IdValidatorTest.html new file mode 100644 index 0000000..98a6054 --- /dev/null +++ b/docs/com.app.flight/validatorTest/IdValidatorTest.html @@ -0,0 +1,167 @@ + + + + +IdValidatorTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 validatorTest
+

类 IdValidatorTest

+
+
java.lang.Object +
validatorTest.IdValidatorTest
+
+
+
+
public class IdValidatorTest +extends Object
+
+
版本:
+
1.0
+
作者:
+
JiaBoran
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      IdValidatorTest

      +
      public IdValidatorTest()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      testId

      +
      @Test +public void testId()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/ReservationIdValidatorTest.html b/docs/com.app.flight/validatorTest/ReservationIdValidatorTest.html new file mode 100644 index 0000000..4d12a79 --- /dev/null +++ b/docs/com.app.flight/validatorTest/ReservationIdValidatorTest.html @@ -0,0 +1,167 @@ + + + + +ReservationIdValidatorTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 validatorTest
+

类 ReservationIdValidatorTest

+
+
java.lang.Object +
validatorTest.ReservationIdValidatorTest
+
+
+
+
public class ReservationIdValidatorTest +extends Object
+
+
版本:
+
1.0
+
作者:
+
JiaBoran
+
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      ReservationIdValidatorTest

      +
      public ReservationIdValidatorTest()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    方法详细资料

    +
      +
    • +
      +

      testReservationId

      +
      @Test +public void testReservationId()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/TimeValidatorTest.html b/docs/com.app.flight/validatorTest/TimeValidatorTest.html new file mode 100644 index 0000000..7a05928 --- /dev/null +++ b/docs/com.app.flight/validatorTest/TimeValidatorTest.html @@ -0,0 +1,129 @@ + + + + +TimeValidatorTest + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +
程序包 validatorTest
+

类 TimeValidatorTest

+
+
java.lang.Object +
validatorTest.TimeValidatorTest
+
+
+
+
public class TimeValidatorTest +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    构造器详细资料

    +
      +
    • +
      +

      TimeValidatorTest

      +
      public TimeValidatorTest()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/class-use/BoardingGateValidatorTest.html b/docs/com.app.flight/validatorTest/class-use/BoardingGateValidatorTest.html new file mode 100644 index 0000000..0991c07 --- /dev/null +++ b/docs/com.app.flight/validatorTest/class-use/BoardingGateValidatorTest.html @@ -0,0 +1,58 @@ + + + + +类 validatorTest.BoardingGateValidatorTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
validatorTest.BoardingGateValidatorTest

+
+没有validatorTest.BoardingGateValidatorTest的用法
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/class-use/FlightIdValidatorTest.html b/docs/com.app.flight/validatorTest/class-use/FlightIdValidatorTest.html new file mode 100644 index 0000000..4b2be74 --- /dev/null +++ b/docs/com.app.flight/validatorTest/class-use/FlightIdValidatorTest.html @@ -0,0 +1,58 @@ + + + + +类 validatorTest.FlightIdValidatorTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
validatorTest.FlightIdValidatorTest

+
+没有validatorTest.FlightIdValidatorTest的用法
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/class-use/IdValidatorTest.html b/docs/com.app.flight/validatorTest/class-use/IdValidatorTest.html new file mode 100644 index 0000000..6b4934d --- /dev/null +++ b/docs/com.app.flight/validatorTest/class-use/IdValidatorTest.html @@ -0,0 +1,58 @@ + + + + +类 validatorTest.IdValidatorTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
validatorTest.IdValidatorTest

+
+没有validatorTest.IdValidatorTest的用法
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/class-use/ReservationIdValidatorTest.html b/docs/com.app.flight/validatorTest/class-use/ReservationIdValidatorTest.html new file mode 100644 index 0000000..e2ddc0d --- /dev/null +++ b/docs/com.app.flight/validatorTest/class-use/ReservationIdValidatorTest.html @@ -0,0 +1,58 @@ + + + + +类 validatorTest.ReservationIdValidatorTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
validatorTest.ReservationIdValidatorTest

+
+没有validatorTest.ReservationIdValidatorTest的用法
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/class-use/TimeValidatorTest.html b/docs/com.app.flight/validatorTest/class-use/TimeValidatorTest.html new file mode 100644 index 0000000..12c2e1c --- /dev/null +++ b/docs/com.app.flight/validatorTest/class-use/TimeValidatorTest.html @@ -0,0 +1,58 @@ + + + + +类 validatorTest.TimeValidatorTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

类的使用
validatorTest.TimeValidatorTest

+
+没有validatorTest.TimeValidatorTest的用法
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/package-summary.html b/docs/com.app.flight/validatorTest/package-summary.html new file mode 100644 index 0000000..5291538 --- /dev/null +++ b/docs/com.app.flight/validatorTest/package-summary.html @@ -0,0 +1,92 @@ + + + + +validatorTest + + + + + + + + + + + + + + + +
+ +
+
+
+ +

程序包 validatorTest

+
+
+
package validatorTest
+
+ +
+
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/package-tree.html b/docs/com.app.flight/validatorTest/package-tree.html new file mode 100644 index 0000000..1f67c63 --- /dev/null +++ b/docs/com.app.flight/validatorTest/package-tree.html @@ -0,0 +1,76 @@ + + + + +validatorTest 类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包validatorTest的分层结构

+程序包分层结构: + +
+
+

类分层结构

+ +
+
+
+
+ + diff --git a/docs/com.app.flight/validatorTest/package-use.html b/docs/com.app.flight/validatorTest/package-use.html new file mode 100644 index 0000000..8ba0adc --- /dev/null +++ b/docs/com.app.flight/validatorTest/package-use.html @@ -0,0 +1,58 @@ + + + + +程序包 validatorTest的使用 + + + + + + + + + + + + + + + +
+ +
+
+
+

程序包的使用
validatorTest

+
+没有validatorTest的用法
+
+
+ + diff --git a/docs/constant-values.html b/docs/constant-values.html new file mode 100644 index 0000000..1bccc04 --- /dev/null +++ b/docs/constant-values.html @@ -0,0 +1,134 @@ + + + + +常量字段值 + + + + + + + + + + + + + + + +
+ +
+
+
+

常量字段值

+
+

目录

+ +
+
+
+

com.app.*

+
    +
  • +
    com.app.flight.service.external.QRCodeGenerator
    +
    +
    修饰符和类型
    +
    常量字段
    +
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/image/QR_Code/"
    +
    +
  • +
+
    +
  • +
    com.app.flight.util.Csv
    +
    +
    修饰符和类型
    +
    常量字段
    +
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/csv/BoardingPass.csv"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/csv/Flight.csv"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/csv/Food.csv"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/csv/Passenger.csv"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/csv/Reservation.csv"
    +
    +
  • +
  • +
    com.app.flight.util.Json
    +
    +
    修饰符和类型
    +
    常量字段
    +
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/json/BoardingPass.json"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/json/Flight.json"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/json/Food.json"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/json/Passenger.json"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/json/Reservation.json"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/json/Seat.json"
    +
    public static final String
    + +
    "src/main/resources/com/app/flight/data/json/Type.json"
    +
    +
  • +
+
+
+
+
+ + diff --git a/docs/element-list b/docs/element-list new file mode 100644 index 0000000..ee1715c --- /dev/null +++ b/docs/element-list @@ -0,0 +1,12 @@ +module:com.app.flight +com.app.flight +com.app.flight.controller +com.app.flight.entity +com.app.flight.service +com.app.flight.service.external +com.app.flight.service.impl +com.app.flight.service.temp +com.app.flight.util +serviceTest +utilTest +validatorTest diff --git a/docs/help-doc.html b/docs/help-doc.html new file mode 100644 index 0000000..8ae754a --- /dev/null +++ b/docs/help-doc.html @@ -0,0 +1,192 @@ + + + + +API 帮助 + + + + + + + + + + + + + + + +
+ +
+
+

此 API 文档的组织方式

+ +
+
+

Navigation

+Starting from the 概览 page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The 索引 and Search box allow you to navigate to specific declarations and summary pages, including: 所有程序包, All Classes and Interfaces + +
+
+
+

Kinds of Pages

+The following sections describe the different kinds of pages in this collection. +
+

模块

+

每个模块都有一页,其中包含它的程序包、与其他模块的依赖关系和服务的列表以及模块概要。这些页可以包含三个类别:

+
    +
  • 程序包
  • +
  • 模块
  • +
  • 服务
  • +
+
+
+

程序包

+

每个程序包都有一页,其中包含它的类和接口的列表及其概要。这些页可以包含六个类别:

+
    +
  • 接口
  • +
  • +
  • Enum Classes
  • +
  • 异常错误
  • +
  • 错误
  • +
  • Annotation Interfaces
  • +
+
+
+

类或接口

+

每个类, 接口, 嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分 (类/接口说明, 概要表, 以及详细的成员说明) 组成:

+
    +
  • 类继承图
  • +
  • 直接子类
  • +
  • 所有已知子接口
  • +
  • 所有已知实现类
  • +
  • 类或接口声明
  • +
  • 类或接口说明
  • +
+
+
    +
  • 嵌套类概要
  • +
  • 枚举常量概要
  • +
  • 字段概要
  • +
  • 属性概要
  • +
  • 构造器概要
  • +
  • 方法概要
  • +
  • 必需元素概要
  • +
  • 可选元素概要
  • +
+
+
    +
  • 枚举常量详细资料
  • +
  • 字段详细资料
  • +
  • 属性详细资料
  • +
  • 构造器详细资料
  • +
  • 方法详细资料
  • +
  • 元素详细资料
  • +
+

Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

+

The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

+
+
+

Other Files

+

Packages and modules may contain pages with additional information related to the declarations nearby.

+
+
+

使用

+

每个已文档化的程序包、类和接口都有各自的“使用”页。此页介绍了使用给定类或程序包的任何部分的程序包、类、方法、构造器和字段。对于给定的类或接口 A,其“使用”页包含 A 的子类、声明为 A 的字段、返回 A 的方法以及带有类型为 A 的参数的方法和构造器。访问此页的方法是:首先转至程序包、类或接口,然后单击导航栏中的“使用”链接。

+
+
+

树 (类分层结构)

+

对于所有程序包,都有一个 类分层结构 页,以及每个程序包的分层结构。每个分层结构页都包含类的列表和接口的列表。从 java.lang.Object 开始,按继承结构对类进行排列。接口不从 java.lang.Object 继承。

+
    +
  • 查看“概览”页面时, 单击 "树" 将显示所有程序包的分层结构。
  • +
  • 查看特定程序包、类或接口页时,单击“树”将仅显示该程序包的分层结构。
  • +
+
+
+

常量字段值

+

常量字段值页面列出了静态最终字段及其值。

+
+
+

All Packages

+

The 所有程序包 page contains an alphabetic index of all packages contained in the documentation.

+
+
+

All Classes and Interfaces

+

The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

+
+
+

索引

+

索引 包含所有类、接口、构造器、方法和字段的按字母顺序排列的索引,以及所有程序包和所有类的列表。

+
+
+
+此帮助文件适用于由标准 doclet 生成的 API 文档。
+
+
+ + diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html new file mode 100644 index 0000000..6ae32f3 --- /dev/null +++ b/docs/index-files/index-1.html @@ -0,0 +1,92 @@ + + + + +A - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

A

+
+
addCsv(Object, String, boolean) - 类中的静态方法 com.app.flight.util.Csv
+
+
Add a row of csv data
+
+
addCsvTest() - 类中的方法 utilTest.CsvTest
+
+
Test for adding data to csv
+
+
Admin - com.app.flight.entity中的类
+
 
+
Admin() - 类的构造器 com.app.flight.entity.Admin
+
 
+
AdminLoginController - com.app.flight.controller中的类
+
+
This code is used to finish all the steps of check-in.
+
+
AdminLoginController() - 类的构造器 com.app.flight.controller.AdminLoginController
+
 
+
AdminWelcomeController - com.app.flight.controller中的类
+
 
+
AdminWelcomeController() - 类的构造器 com.app.flight.controller.AdminWelcomeController
+
 
+
alipay - 类中的变量 com.app.flight.controller.SelectPaymentController
+
 
+
annotation - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
AttentionNotesController - com.app.flight.controller中的类
+
 
+
AttentionNotesController() - 类的构造器 com.app.flight.controller.AttentionNotesController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html new file mode 100644 index 0000000..ed33fb5 --- /dev/null +++ b/docs/index-files/index-10.html @@ -0,0 +1,68 @@ + + + + +J - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

J

+
+
Json - com.app.flight.util中的类
+
 
+
Json() - 类的构造器 com.app.flight.util.Json
+
 
+
jsonPathTest() - 类中的方法 utilTest.SeatUtilTest
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-11.html b/docs/index-files/index-11.html new file mode 100644 index 0000000..6e5424f --- /dev/null +++ b/docs/index-files/index-11.html @@ -0,0 +1,134 @@ + + + + +L - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

L

+
+
loginButtonClick() - 类中的方法 com.app.flight.controller.AdminLoginController
+
+
The code to close current page and open the "welcome admin" page
+
+
loginButtonClick() - 类中的方法 com.app.flight.controller.SelectLanguageController
+
+
The code to close current page and open the login page
+
+
logoutButtonClick() - 类中的方法 com.app.flight.controller.AdminWelcomeController
+
+
The code to close current page and open the first page
+
+
lookupBoardingPass() - 接口中的方法 com.app.flight.service.GetBoardingPass
+
+
Find the passenger's boarding pass
+
+
lookupBoardingPass() - 类中的方法 com.app.flight.service.impl.GetBoardingPassImpl
+
 
+
lookupBoardingPassTest() - 类中的方法 serviceTest.GetBoardingPassTest
+
 
+
lookupFlight() - 类中的静态方法 com.app.flight.service.impl.GetFlightImpl
+
 
+
lookupFlight(String) - 接口中的方法 com.app.flight.service.GetFlight
+
+
Find flights by flight name
+
+
lookupFlight(String) - 类中的方法 com.app.flight.service.impl.GetFlightImpl
+
 
+
lookupFlightTest() - 类中的方法 serviceTest.GetFlightTest
+
 
+
lookupFood() - 类中的静态方法 com.app.flight.service.impl.SetFoodImpl
+
 
+
lookupPassenger() - 类中的静态方法 com.app.flight.service.impl.GetPassengerImpl
+
 
+
lookupPassengerByBookingNumber(String) - 接口中的方法 com.app.flight.service.GetPassenger
+
+
Find passengers by reservation number
+
+
lookupPassengerByBookingNumber(String) - 类中的方法 com.app.flight.service.impl.GetPassengerImpl
+
 
+
lookupPassengerByBookingNumber(String) - 类中的方法 com.app.flight.service.temp.GetPassengerImplTemp
+
 
+
lookupPassengerById(String) - 接口中的方法 com.app.flight.service.GetPassenger
+
+
Find passengers by ID
+
+
lookupPassengerById(String) - 类中的方法 com.app.flight.service.impl.GetPassengerImpl
+
 
+
lookupPassengerById(String) - 类中的方法 com.app.flight.service.temp.GetPassengerImplTemp
+
 
+
lookupPassengerTest() - 类中的方法 serviceTest.GetPassengerTest
+
 
+
lookupReservation() - 类中的静态方法 com.app.flight.service.impl.GetReservationImpl
+
 
+
lookupReservations(String) - 接口中的方法 com.app.flight.service.GetReservation
+
+
Find information about passenger's scheduled flight
+
+
lookupReservations(String) - 类中的方法 com.app.flight.service.impl.GetReservationImpl
+
 
+
lookupReservations(String) - 类中的方法 com.app.flight.service.temp.GetReservationImplTemp
+
 
+
lookupSeatMap(String) - 接口中的方法 com.app.flight.service.GetSeatMap
+
+
Return the seat map data of the flight
+
+
lookupSeatMap(String) - 类中的方法 com.app.flight.service.impl.SeatMapImpl
+
 
+
lookupSeatMap(String) - 类中的方法 com.app.flight.service.temp.GetSeatMapImplTemp
+
 
+
lookupSeatPrice() - 类中的静态方法 com.app.flight.service.impl.SeatMapImpl
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-12.html b/docs/index-files/index-12.html new file mode 100644 index 0000000..03a1bd2 --- /dev/null +++ b/docs/index-files/index-12.html @@ -0,0 +1,80 @@ + + + + +M - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

M

+
+
main(String[]) - 类中的静态方法 com.app.flight.Main
+
 
+
Main - com.app.flight中的类
+
+
Updated the code of its own version.
+
+
Main() - 类的构造器 com.app.flight.Main
+
 
+
map - 类中的变量 com.app.flight.controller.NavigationMapController
+
 
+
mediaView - 类中的变量 com.app.flight.controller.ScanInstructionController
+
 
+
method - 类中的变量 com.app.flight.controller.SelectMethodController
+
 
+
method - 类中的变量 com.app.flight.controller.SelectPaymentController
+
 
+
mouseClick(MouseEvent) - 类中的方法 com.app.flight.controller.RetrieveController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-13.html b/docs/index-files/index-13.html new file mode 100644 index 0000000..20ec659 --- /dev/null +++ b/docs/index-files/index-13.html @@ -0,0 +1,123 @@ + + + + +N - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

N

+
+
nameLabel - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
NavigationMapController - com.app.flight.controller中的类
+
 
+
NavigationMapController() - 类的构造器 com.app.flight.controller.NavigationMapController
+
 
+
NavigationPictureImpl - com.app.flight.service.impl中的类
+
 
+
NavigationPictureImpl() - 类的构造器 com.app.flight.service.impl.NavigationPictureImpl
+
 
+
next - 类中的变量 com.app.flight.controller.AttentionNotesController
+
 
+
next - 类中的变量 com.app.flight.controller.InfoConfirmController
+
 
+
next - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
next - 类中的变量 com.app.flight.controller.SelectMethodController
+
 
+
next - 类中的变量 com.app.flight.controller.SelectPaymentController
+
 
+
next - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.AttentionNotesController
+
+
The code for button "next" in "AttentionNotes.fxml" + When click the button, change to "InputNumber.fxml"
+
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.FoodTypeController
+
+
The code for button "next" in "SelectFoodType.fxml" + When click the button, change to "CheckInResult.fxml"
+
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.InfoConfirmController
+
 
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.PaymentController
+
 
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.PrintTagsController
+
+
The code for button "next" in PrintTags.fxml + When click the button, change to Finished.fxml
+
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.ResultController
+
 
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.RetrieveController
+
 
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.SelectMethodController
+
 
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.SelectPaymentController
+
 
+
nextClick(ActionEvent) - 类中的方法 com.app.flight.controller.SelectSeatController
+
 
+
noToString(int) - 类中的静态方法 com.app.flight.util.DataParser
+
 
+
num - 类中的变量 com.app.flight.controller.InfoConfirmController
+
 
+
number - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
numClean - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
numLabel - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-14.html b/docs/index-files/index-14.html new file mode 100644 index 0000000..68e5807 --- /dev/null +++ b/docs/index-files/index-14.html @@ -0,0 +1,70 @@ + + + + +O - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

O

+
+
Obj - com.app.flight.util中的类
+
 
+
Obj() - 类的构造器 com.app.flight.util.Obj
+
 
+
onChineseButtonClick() - 类中的方法 com.app.flight.controller.SelectLanguageController
+
 
+
onEnglishButtonClick(ActionEvent) - 类中的方法 com.app.flight.controller.SelectLanguageController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-15.html b/docs/index-files/index-15.html new file mode 100644 index 0000000..1c87b24 --- /dev/null +++ b/docs/index-files/index-15.html @@ -0,0 +1,106 @@ + + + + +P - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

P

+
+
p - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
Passenger - com.app.flight.entity中的类
+
 
+
Passenger() - 类的构造器 com.app.flight.entity.Passenger
+
 
+
PASSENGER_CSV_PATH - 类中的静态变量 com.app.flight.util.Csv
+
 
+
PASSENGER_JSON_PATH - 类中的静态变量 com.app.flight.util.Json
+
 
+
pay(String) - 类中的方法 com.app.flight.controller.PaymentController
+
 
+
PaymentController - com.app.flight.controller中的类
+
 
+
PaymentController() - 类的构造器 com.app.flight.controller.PaymentController
+
 
+
paypal - 类中的变量 com.app.flight.controller.SelectPaymentController
+
 
+
percentage - 类中的变量 com.app.flight.controller.PrintTagsController
+
 
+
playVideo() - 类中的方法 com.app.flight.service.external.Scanner
+
 
+
pRetrieve - 类中的变量 com.app.flight.controller.InfoConfirmController
+
 
+
previousChoiceButton - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
previousChoiceRow - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
print(ProgressBar, Label) - 类中的方法 com.app.flight.service.external.Printer
+
 
+
printBoardingPass(String, String) - 类中的静态方法 com.app.flight.service.external.Printer
+
 
+
Printer - com.app.flight.service.external中的类
+
 
+
Printer() - 类的构造器 com.app.flight.service.external.Printer
+
 
+
printTag(String, String) - 类中的静态方法 com.app.flight.service.external.Printer
+
 
+
PrintTagsController - com.app.flight.controller中的类
+
 
+
PrintTagsController() - 类的构造器 com.app.flight.controller.PrintTagsController
+
 
+
progressBar - 类中的变量 com.app.flight.controller.PrintTagsController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-16.html b/docs/index-files/index-16.html new file mode 100644 index 0000000..02adeae --- /dev/null +++ b/docs/index-files/index-16.html @@ -0,0 +1,68 @@ + + + + +Q - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

Q

+
+
QR_CODE_PATH - 类中的静态变量 com.app.flight.service.external.QRCodeGenerator
+
 
+
QRCodeGenerator - com.app.flight.service.external中的类
+
 
+
QRCodeGenerator() - 类的构造器 com.app.flight.service.external.QRCodeGenerator
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-17.html b/docs/index-files/index-17.html new file mode 100644 index 0000000..74f2c12 --- /dev/null +++ b/docs/index-files/index-17.html @@ -0,0 +1,118 @@ + + + + +R - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

R

+
+
readCsv(String) - 类中的静态方法 com.app.flight.util.Csv
+
+
Read all csv data
+
+
readCsvTest() - 类中的方法 utilTest.CsvTest
+
+
Test for reading csv data
+
+
Reservation - com.app.flight.entity中的类
+
 
+
Reservation() - 类的构造器 com.app.flight.entity.Reservation
+
 
+
RESERVATION_CSV_PATH - 类中的静态变量 com.app.flight.util.Csv
+
 
+
RESERVATION_JSON_PATH - 类中的静态变量 com.app.flight.util.Json
+
 
+
reservationIdValidator(String) - 类中的静态方法 com.app.flight.util.Validator
+
+
Validate reservationId 19 digits
+
+
ReservationIdValidatorTest - validatorTest中的类
+
 
+
ReservationIdValidatorTest() - 类的构造器 validatorTest.ReservationIdValidatorTest
+
 
+
ResultController - com.app.flight.controller中的类
+
 
+
ResultController() - 类的构造器 com.app.flight.controller.ResultController
+
 
+
RetrieveController - com.app.flight.controller中的类
+
 
+
RetrieveController() - 类的构造器 com.app.flight.controller.RetrieveController
+
 
+
returnButton(ActionEvent) - 类中的方法 com.app.flight.controller.InfoConfirmController
+
 
+
returnButton(ActionEvent) - 类中的方法 com.app.flight.controller.InputNumberController
+
 
+
returnButton(ActionEvent) - 类中的方法 com.app.flight.controller.NavigationMapController
+
 
+
returnButton(ActionEvent) - 类中的方法 com.app.flight.controller.PaymentController
+
 
+
rList - 类中的变量 com.app.flight.controller.RetrieveController
+
 
+
run() - 类中的方法 com.app.flight.controller.PrintTagsController
+
+
When an object implementing interface Runnable is used + to create a thread, starting the thread causes the object's + run method to be called in that separately executing + thread.
+
+
run() - 类中的方法 com.app.flight.service.external.Scanner
+
+
When an object implementing interface Runnable is used + to create a thread, starting the thread causes the object's + run method to be called in that separately executing + thread.
+
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-18.html b/docs/index-files/index-18.html new file mode 100644 index 0000000..cd14717 --- /dev/null +++ b/docs/index-files/index-18.html @@ -0,0 +1,226 @@ + + + + +S - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

S

+
+
scan - 类中的变量 com.app.flight.controller.SelectMethodController
+
 
+
scanInstructionController - 类中的变量 com.app.flight.service.external.Scanner
+
 
+
ScanInstructionController - com.app.flight.controller中的类
+
 
+
ScanInstructionController() - 类的构造器 com.app.flight.controller.ScanInstructionController
+
 
+
Scanner - com.app.flight.service.external中的类
+
 
+
Scanner() - 类的构造器 com.app.flight.service.external.Scanner
+
 
+
seat - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
Seat - com.app.flight.entity中的Enum Class
+
 
+
SEAT_JSON_PATH - 类中的静态变量 com.app.flight.util.Json
+
 
+
SeatMapImpl - com.app.flight.service.impl中的类
+
 
+
SeatMapImpl() - 类的构造器 com.app.flight.service.impl.SeatMapImpl
+
 
+
SeatUtil - com.app.flight.util中的类
+
 
+
SeatUtil() - 类的构造器 com.app.flight.util.SeatUtil
+
 
+
SeatUtilTest - utilTest中的类
+
 
+
SeatUtilTest() - 类的构造器 utilTest.SeatUtilTest
+
 
+
SelectLanguageController - com.app.flight.controller中的类
+
+
This code is used to control the interface for selecting language.
+
+
SelectLanguageController() - 类的构造器 com.app.flight.controller.SelectLanguageController
+
 
+
SelectMethodController - com.app.flight.controller中的类
+
 
+
SelectMethodController() - 类的构造器 com.app.flight.controller.SelectMethodController
+
 
+
SelectPaymentController - com.app.flight.controller中的类
+
 
+
SelectPaymentController() - 类的构造器 com.app.flight.controller.SelectPaymentController
+
 
+
SelectSeatController - com.app.flight.controller中的类
+
 
+
SelectSeatController() - 类的构造器 com.app.flight.controller.SelectSeatController
+
 
+
serviceTest - 程序包 serviceTest
+
 
+
setControllerName(String) - 类中的方法 com.app.flight.controller.HelpController
+
 
+
setFood(Food.foodType) - 类中的方法 com.app.flight.service.impl.SetFoodImpl
+
 
+
setFood(Food.foodType) - 接口中的方法 com.app.flight.service.SetFood
+
+
Method to get food
+
+
SetFood - com.app.flight.service中的接口
+
 
+
SetFoodImpl - com.app.flight.service.impl中的类
+
 
+
SetFoodImpl() - 类的构造器 com.app.flight.service.impl.SetFoodImpl
+
 
+
setMap(String) - 类中的方法 com.app.flight.controller.NavigationMapController
+
 
+
setPercent(int) - 类中的方法 com.app.flight.controller.PrintTagsController
+
+
Set the percentage of the progress bar
+
+
setPrice(double) - enum class中的方法 com.app.flight.entity.Seat
+
 
+
setRow(int) - enum class中的方法 com.app.flight.entity.Seat
+
 
+
SetSeatMap - com.app.flight.service中的接口
+
 
+
SetSeatMapTestUtil - serviceTest中的类
+
 
+
SetSeatMapTestUtil() - 类的构造器 serviceTest.SetSeatMapTestUtil
+
 
+
setSelectType(String) - 类中的静态方法 com.app.flight.util.Obj
+
 
+
setWelcomeMeg(String) - 类中的方法 com.app.flight.controller.AdminWelcomeController
+
 
+
showBoardingPass(boolean) - 类中的方法 com.app.flight.controller.ResultController
+
 
+
showMap(ActionEvent) - 类中的方法 com.app.flight.controller.ResultController
+
 
+
showNum(Passenger) - 类中的方法 com.app.flight.controller.InfoConfirmController
+
 
+
showRetrieve(Passenger) - 类中的方法 com.app.flight.controller.RetrieveController
+
 
+
showSeatMap(Map<Integer, Map<String, Boolean>>) - 类中的方法 com.app.flight.controller.SelectSeatController
+
 
+
Staff - com.app.flight.entity中的类
+
 
+
Staff() - 类的构造器 com.app.flight.entity.Staff
+
 
+
stage - 类中的变量 com.app.flight.service.external.Scanner
+
 
+
STANDARD - enum class 中的枚举常量 com.app.flight.entity.Food.foodType
+
+
Three types of food
+
+
start(Stage) - 类中的方法 com.app.flight.controller.AdminLoginController
+
+
The code for other pages to open AdminLogin.fxml
+
+
start(Stage) - 类中的方法 com.app.flight.controller.AttentionNotesController
+
+
The code for other pages to open InputNumber.fxml
+
+
start(Stage) - 类中的方法 com.app.flight.controller.ComingSoonController
+
 
+
start(Stage) - 类中的方法 com.app.flight.controller.FinishController
+
+
The code for other pages to open Finished.fxml
+
+
start(Stage) - 类中的方法 com.app.flight.controller.FoodTypeController
+
+
The code for other pages to open SelectFoodType.fxml
+
+
start(Stage) - 类中的方法 com.app.flight.controller.HelpController
+
 
+
start(Stage) - 类中的方法 com.app.flight.controller.InputNumberController
+
+
The code for other pages to open InputNumber.fxml
+
+
start(Stage) - 类中的方法 com.app.flight.controller.PaymentController
+
 
+
start(Stage) - 类中的方法 com.app.flight.controller.PrintTagsController
+
+
The code for other pages to open PrintTags.fxml
+
+
start(Stage) - 类中的方法 com.app.flight.controller.ResultController
+
+
The code for other pages to open CheckInResult.fxml
+
+
start(Stage) - 类中的方法 com.app.flight.controller.SelectLanguageController
+
+
The code to open SelectLanguage.fxml.
+
+
start(Stage) - 类中的方法 com.app.flight.controller.SelectMethodController
+
 
+
start(Stage) - 类中的方法 com.app.flight.controller.SelectPaymentController
+
 
+
start(Stage) - 类中的方法 com.app.flight.Main
+
 
+
start(Stage, Passenger) - 类中的方法 com.app.flight.controller.InfoConfirmController
+
 
+
start(Stage, Passenger) - 类中的方法 com.app.flight.controller.RetrieveController
+
 
+
start(Stage, String) - 类中的方法 com.app.flight.controller.AdminWelcomeController
+
 
+
start(Stage, Map<Integer, Map<String, Boolean>>, String) - 类中的方法 com.app.flight.controller.SelectSeatController
+
+
The code for other pages to open SelectSeat.fxml
+
+
stringToNo(String) - 类中的静态方法 com.app.flight.util.DataParser
+
 
+
submit(ActionEvent) - 类中的方法 com.app.flight.controller.InputNumberController
+
 
+
surName - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-19.html b/docs/index-files/index-19.html new file mode 100644 index 0000000..3649c95 --- /dev/null +++ b/docs/index-files/index-19.html @@ -0,0 +1,88 @@ + + + + +T - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

T

+
+
tagCode - 类中的变量 com.app.flight.controller.FinishController
+
 
+
tagData - 类中的静态变量 com.app.flight.service.external.Printer
+
 
+
testBoardingGate() - 类中的方法 validatorTest.BoardingGateValidatorTest
+
 
+
testFlightId() - 类中的方法 validatorTest.FlightIdValidatorTest
+
 
+
testId() - 类中的方法 validatorTest.IdValidatorTest
+
 
+
testReservationId() - 类中的方法 validatorTest.ReservationIdValidatorTest
+
 
+
tg - 类中的变量 com.app.flight.controller.FoodTypeController
+
 
+
timeValidator(LocalDateTime) - 类中的静态方法 com.app.flight.util.Validator
+
+
Validate whether the flight time is within 24h of the current time
+
+
TimeValidatorTest - validatorTest中的类
+
 
+
TimeValidatorTest() - 类的构造器 validatorTest.TimeValidatorTest
+
 
+
type - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
TYPE_JSON_PATH - 类中的静态变量 com.app.flight.util.Json
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html new file mode 100644 index 0000000..f04f5b4 --- /dev/null +++ b/docs/index-files/index-2.html @@ -0,0 +1,110 @@ + + + + +B - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

B

+
+
back - 类中的变量 com.app.flight.controller.HelpController
+
 
+
back - 类中的变量 com.app.flight.controller.InfoConfirmController
+
 
+
back - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
back - 类中的变量 com.app.flight.controller.NavigationMapController
+
 
+
back - 类中的变量 com.app.flight.controller.ScanInstructionController
+
 
+
back(ActionEvent) - 类中的方法 com.app.flight.controller.ScanInstructionController
+
 
+
backButton(ActionEvent) - 类中的方法 com.app.flight.controller.HelpController
+
 
+
backButtonClick() - 类中的方法 com.app.flight.controller.AdminLoginController
+
+
The code to close current page and open the "select language" page
+
+
BaseAccount - com.app.flight.entity中的类
+
 
+
BaseAccount() - 类的构造器 com.app.flight.entity.BaseAccount
+
 
+
BOARDING_PASS_CSV_PATH - 类中的静态变量 com.app.flight.util.Csv
+
 
+
BOARDING_PASS_JSON_PATH - 类中的静态变量 com.app.flight.util.Json
+
 
+
boardingGateValidator(String) - 类中的静态方法 com.app.flight.util.Validator
+
+
Validate boardingGate
+
+
BoardingGateValidatorTest - validatorTest中的类
+
 
+
BoardingGateValidatorTest() - 类的构造器 validatorTest.BoardingGateValidatorTest
+
 
+
boardingPass - 类中的变量 com.app.flight.controller.ResultController
+
 
+
BoardingPass - com.app.flight.entity中的类
+
 
+
BoardingPass() - 类的构造器 com.app.flight.entity.BoardingPass
+
 
+
boardingPassCode - 类中的变量 com.app.flight.controller.FinishController
+
 
+
boardingPassData - 类中的静态变量 com.app.flight.service.external.Printer
+
 
+
bookingNum - 类中的变量 com.app.flight.controller.SelectMethodController
+
 
+
BUSINESS_CLASS - enum class 中的枚举常量 com.app.flight.entity.Seat
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-20.html b/docs/index-files/index-20.html new file mode 100644 index 0000000..df88c46 --- /dev/null +++ b/docs/index-files/index-20.html @@ -0,0 +1,80 @@ + + + + +U - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

U

+
+
updateCsv(Object, String) - 类中的静态方法 com.app.flight.util.Csv
+
+
Update a row of csv data and the entity must have a unique field
+
+
updateCsvTest() - 类中的方法 utilTest.CsvTest
+
+
Test for updating csv
+
+
updateSeatMap(String, String, int, double) - 类中的方法 com.app.flight.service.impl.SeatMapImpl
+
 
+
updateSeatMap(String, String, int, double) - 接口中的方法 com.app.flight.service.SetSeatMap
+
+
Modify the Boolean value of a seat
+
+
updateSeatMapTest() - 类中的方法 serviceTest.SetSeatMapTestUtil
+
 
+
utilTest - 程序包 utilTest
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-21.html b/docs/index-files/index-21.html new file mode 100644 index 0000000..6d589ce --- /dev/null +++ b/docs/index-files/index-21.html @@ -0,0 +1,101 @@ + + + + +V - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

V

+
+
Validator - com.app.flight.util中的类
+
 
+
Validator() - 类的构造器 com.app.flight.util.Validator
+
 
+
validatorTest - 程序包 validatorTest
+
 
+
valueOf(String) - enum class中的静态方法 com.app.flight.entity.Food.foodType
+
+
Returns the enum constant of this class with the specified name.
+
+
valueOf(String) - enum class中的静态方法 com.app.flight.entity.Seat
+
+
Returns the enum constant of this class with the specified name.
+
+
valueOf(String) - enum class中的静态方法 com.app.flight.service.GetNavigationPicture.gateType
+
+
Returns the enum constant of this class with the specified name.
+
+
values() - enum class中的静态方法 com.app.flight.entity.Food.foodType
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
values() - enum class中的静态方法 com.app.flight.entity.Seat
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
values() - enum class中的静态方法 com.app.flight.service.GetNavigationPicture.gateType
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
VEGETARIAN - enum class 中的枚举常量 com.app.flight.entity.Food.foodType
+
 
+
visa - 类中的变量 com.app.flight.controller.SelectPaymentController
+
 
+
visaIdValidator(String) - 类中的静态方法 com.app.flight.util.Validator
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-22.html b/docs/index-files/index-22.html new file mode 100644 index 0000000..9ff7c02 --- /dev/null +++ b/docs/index-files/index-22.html @@ -0,0 +1,68 @@ + + + + +W - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

W

+
+
whetherPayment - 类中的变量 com.app.flight.controller.PaymentController
+
 
+
writeJson(String, Object) - 类中的静态方法 com.app.flight.util.Json
+
 
+
writeSeatMap(String, Map<Integer, Map<String, Boolean>>, String[]) - 类中的静态方法 com.app.flight.util.SeatUtil
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-3.html b/docs/index-files/index-3.html new file mode 100644 index 0000000..1ba4abb --- /dev/null +++ b/docs/index-files/index-3.html @@ -0,0 +1,136 @@ + + + + +C - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

C

+
+
call - 类中的变量 com.app.flight.controller.HelpController
+
 
+
callButton(ActionEvent) - 类中的方法 com.app.flight.controller.HelpController
+
 
+
check() - 类中的方法 com.app.flight.controller.SelectPaymentController
+
 
+
check(ActionEvent) - 类中的方法 com.app.flight.controller.AttentionNotesController
+
+
if checkbox is checked, make next button able to click
+
+
check(ActionEvent) - 类中的方法 com.app.flight.controller.SelectMethodController
+
 
+
checkCsv(Object, String) - 类中的静态方法 com.app.flight.util.Csv
+
 
+
checkIdNumber(String, Stage) - 类中的方法 com.app.flight.controller.ScanInstructionController
+
 
+
choiceButton - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
choiceColumn - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
choicePrice - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
choiceRow - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
clean - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
clean(ActionEvent) - 类中的方法 com.app.flight.controller.InputNumberController
+
 
+
clean(ActionEvent) - 类中的方法 com.app.flight.controller.PaymentController
+
 
+
com.app.flight - 模块 com.app.flight
+
 
+
com.app.flight - 程序包 com.app.flight
+
 
+
com.app.flight.controller - 程序包 com.app.flight.controller
+
 
+
com.app.flight.entity - 程序包 com.app.flight.entity
+
 
+
com.app.flight.service - 程序包 com.app.flight.service
+
 
+
com.app.flight.service.external - 程序包 com.app.flight.service.external
+
 
+
com.app.flight.service.impl - 程序包 com.app.flight.service.impl
+
 
+
com.app.flight.service.temp - 程序包 com.app.flight.service.temp
+
 
+
com.app.flight.util - 程序包 com.app.flight.util
+
 
+
coming - 类中的变量 com.app.flight.controller.SelectLanguageController
+
 
+
ComingSoonController - com.app.flight.controller中的类
+
 
+
ComingSoonController() - 类的构造器 com.app.flight.controller.ComingSoonController
+
 
+
Company - com.app.flight.entity中的类
+
 
+
Company() - 类的构造器 com.app.flight.entity.Company
+
 
+
confirm - 类中的变量 com.app.flight.controller.AttentionNotesController
+
 
+
ConsoleScanner(ScanInstructionController, Stage) - 类中的方法 com.app.flight.service.external.Scanner
+
 
+
convertStringToGateType(String) - 接口中的方法 com.app.flight.service.GetNavigationPicture
+
 
+
convertStringToGateType(String) - 类中的方法 com.app.flight.service.impl.NavigationPictureImpl
+
 
+
Csv - com.app.flight.util中的类
+
 
+
Csv() - 类的构造器 com.app.flight.util.Csv
+
 
+
CsvTest - utilTest中的类
+
 
+
CsvTest() - 类的构造器 utilTest.CsvTest
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-4.html b/docs/index-files/index-4.html new file mode 100644 index 0000000..ce144c5 --- /dev/null +++ b/docs/index-files/index-4.html @@ -0,0 +1,76 @@ + + + + +D - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

D

+
+
DataParser - com.app.flight.util中的类
+
 
+
DataParser() - 类的构造器 com.app.flight.util.DataParser
+
 
+
deleteCsv(Object, String, boolean) - 类中的静态方法 com.app.flight.util.Csv
+
+
Delete a row of csv data
+
+
deleteCsvTest() - 类中的方法 utilTest.CsvTest
+
+
Test for deleting csv
+
+
detail - 类中的变量 com.app.flight.controller.ResultController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-5.html b/docs/index-files/index-5.html new file mode 100644 index 0000000..fd70f2a --- /dev/null +++ b/docs/index-files/index-5.html @@ -0,0 +1,70 @@ + + + + +E - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

E

+
+
ECONOMY_CLASS - enum class 中的枚举常量 com.app.flight.entity.Seat
+
+
Three types of aircraft accommodation
+
+
english - 类中的变量 com.app.flight.controller.SelectLanguageController
+
 
+
extractJsonData(String) - 类中的静态方法 com.app.flight.util.Json
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-6.html b/docs/index-files/index-6.html new file mode 100644 index 0000000..e0b8cc7 --- /dev/null +++ b/docs/index-files/index-6.html @@ -0,0 +1,116 @@ + + + + +F - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

F

+
+
finish - 类中的变量 com.app.flight.controller.PaymentController
+
 
+
finishClick() - 类中的方法 com.app.flight.controller.FinishController
+
+
The code to close current page and open the first page
+
+
FinishController - com.app.flight.controller中的类
+
+
This code is used to finish all the steps of check-in.
+
+
FinishController() - 类的构造器 com.app.flight.controller.FinishController
+
 
+
FIRST_CLASS - enum class 中的枚举常量 com.app.flight.entity.Seat
+
 
+
Flight - com.app.flight.entity中的类
+
 
+
Flight() - 类的构造器 com.app.flight.entity.Flight
+
 
+
FLIGHT_CSV_PATH - 类中的静态变量 com.app.flight.util.Csv
+
 
+
FLIGHT_JSON_PATH - 类中的静态变量 com.app.flight.util.Json
+
 
+
flightId - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
flightIdValidator(String) - 类中的静态方法 com.app.flight.util.Validator
+
+
Validate flightId: two uppercase words and four digits
+
+
FlightIdValidatorTest - validatorTest中的类
+
 
+
FlightIdValidatorTest() - 类的构造器 validatorTest.FlightIdValidatorTest
+
 
+
Food - com.app.flight.entity中的类
+
 
+
Food() - 类的构造器 com.app.flight.entity.Food
+
 
+
FOOD_CSV_PATH - 类中的静态变量 com.app.flight.util.Csv
+
 
+
FOOD_JSON_PATH - 类中的静态变量 com.app.flight.util.Json
+
 
+
Food.foodType - com.app.flight.entity中的Enum Class
+
 
+
foodCsvTest() - 类中的方法 utilTest.CsvTest
+
 
+
foodType() - 类中的方法 com.app.flight.controller.FoodTypeController
+
+
To judge which food type is the passenger selected
+
+
FoodTypeController - com.app.flight.controller中的类
+
+
This code is used to select the food type.
+
+
FoodTypeController() - 类的构造器 com.app.flight.controller.FoodTypeController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-7.html b/docs/index-files/index-7.html new file mode 100644 index 0000000..8549c09 --- /dev/null +++ b/docs/index-files/index-7.html @@ -0,0 +1,212 @@ + + + + +G - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

G

+
+
GATE_A - enum class 中的枚举常量 com.app.flight.service.GetNavigationPicture.gateType
+
+
4 types of gate
+
+
GATE_B - enum class 中的枚举常量 com.app.flight.service.GetNavigationPicture.gateType
+
 
+
GATE_C - enum class 中的枚举常量 com.app.flight.service.GetNavigationPicture.gateType
+
 
+
GATE_D - enum class 中的枚举常量 com.app.flight.service.GetNavigationPicture.gateType
+
 
+
generateBoardingPassCode() - 类中的静态方法 com.app.flight.service.external.QRCodeGenerator
+
 
+
generateObjAttr(Object) - 类中的静态方法 com.app.flight.util.Obj
+
 
+
generatePayCode(String) - 类中的静态方法 com.app.flight.service.external.QRCodeGenerator
+
 
+
generateSeatFilePath(String) - 类中的静态方法 com.app.flight.util.SeatUtil
+
 
+
generateSeatMap(String, int) - 类中的静态方法 com.app.flight.util.SeatUtil
+
 
+
generateSeatMapTest() - 类中的方法 utilTest.SeatUtilTest
+
 
+
generateTagCode() - 类中的静态方法 com.app.flight.service.external.QRCodeGenerator
+
 
+
GetBoardingPass - com.app.flight.service中的接口
+
 
+
GetBoardingPassImpl - com.app.flight.service.impl中的类
+
 
+
GetBoardingPassImpl() - 类的构造器 com.app.flight.service.impl.GetBoardingPassImpl
+
 
+
GetBoardingPassTest - serviceTest中的类
+
 
+
GetBoardingPassTest() - 类的构造器 serviceTest.GetBoardingPassTest
+
 
+
getControllerName() - 类中的方法 com.app.flight.controller.HelpController
+
 
+
GetFlight - com.app.flight.service中的接口
+
 
+
GetFlightImpl - com.app.flight.service.impl中的类
+
 
+
GetFlightImpl() - 类的构造器 com.app.flight.service.impl.GetFlightImpl
+
 
+
GetFlightTest - serviceTest中的类
+
 
+
GetFlightTest() - 类的构造器 serviceTest.GetFlightTest
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.AdminLoginController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.AdminWelcomeController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.AttentionNotesController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.ComingSoonController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.FinishController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.FoodTypeController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.HelpController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.InfoConfirmController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.InputNumberController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.NavigationMapController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.PaymentController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.PrintTagsController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.ResultController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.RetrieveController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.ScanInstructionController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.SelectLanguageController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.SelectMethodController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.SelectPaymentController
+
 
+
getLoader() - 类中的方法 com.app.flight.controller.SelectSeatController
+
 
+
getNavigationPicture(GetNavigationPicture.gateType) - 接口中的方法 com.app.flight.service.GetNavigationPicture
+
 
+
getNavigationPicture(GetNavigationPicture.gateType) - 类中的方法 com.app.flight.service.impl.NavigationPictureImpl
+
 
+
getNavigationPicture(String) - 接口中的方法 com.app.flight.service.GetNavigationPicture
+
 
+
getNavigationPicture(String) - 类中的方法 com.app.flight.service.impl.NavigationPictureImpl
+
 
+
GetNavigationPicture - com.app.flight.service中的接口
+
 
+
GetNavigationPicture.gateType - com.app.flight.service中的Enum Class
+
 
+
GetPassenger - com.app.flight.service中的接口
+
 
+
GetPassengerImpl - com.app.flight.service.impl中的类
+
 
+
GetPassengerImpl() - 类的构造器 com.app.flight.service.impl.GetPassengerImpl
+
 
+
GetPassengerImplTemp - com.app.flight.service.temp中的类
+
 
+
GetPassengerImplTemp() - 类的构造器 com.app.flight.service.temp.GetPassengerImplTemp
+
 
+
getPassengerInfo(String, String) - 类中的方法 com.app.flight.controller.InputNumberController
+
 
+
GetPassengerTest - serviceTest中的类
+
 
+
GetPassengerTest() - 类的构造器 serviceTest.GetPassengerTest
+
 
+
getPercent() - 类中的方法 com.app.flight.controller.PrintTagsController
+
+
Get the percentage of the progress bar
+
+
getPrice() - enum class中的方法 com.app.flight.entity.Seat
+
 
+
GetReservation - com.app.flight.service中的接口
+
 
+
GetReservationImpl - com.app.flight.service.impl中的类
+
 
+
GetReservationImpl() - 类的构造器 com.app.flight.service.impl.GetReservationImpl
+
 
+
GetReservationImplTemp - com.app.flight.service.temp中的类
+
 
+
GetReservationImplTemp() - 类的构造器 com.app.flight.service.temp.GetReservationImplTemp
+
 
+
getRow() - enum class中的方法 com.app.flight.entity.Seat
+
 
+
getSeatButtonColor(int) - 类中的方法 com.app.flight.controller.SelectSeatController
+
 
+
GetSeatMap - com.app.flight.service中的接口
+
 
+
GetSeatMapImplTemp - com.app.flight.service.temp中的类
+
 
+
GetSeatMapImplTemp() - 类的构造器 com.app.flight.service.temp.GetSeatMapImplTemp
+
 
+
getSeatMapTest() - 类中的方法 serviceTest.GetSeatMapTestUtil
+
 
+
GetSeatMapTestUtil - serviceTest中的类
+
 
+
GetSeatMapTestUtil() - 类的构造器 serviceTest.GetSeatMapTestUtil
+
 
+
getSeatPrice(int) - 类中的方法 com.app.flight.controller.SelectSeatController
+
 
+
getSelectType() - 类中的静态方法 com.app.flight.util.Obj
+
 
+
gridPane - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-8.html b/docs/index-files/index-8.html new file mode 100644 index 0000000..313372f --- /dev/null +++ b/docs/index-files/index-8.html @@ -0,0 +1,116 @@ + + + + +H - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

H

+
+
HALAL - enum class 中的枚举常量 com.app.flight.entity.Food.foodType
+
 
+
help - 类中的变量 com.app.flight.controller.FoodTypeController
+
 
+
help - 类中的变量 com.app.flight.controller.InfoConfirmController
+
 
+
help - 类中的变量 com.app.flight.controller.InputNumberController
+
 
+
help - 类中的变量 com.app.flight.controller.PaymentController
+
 
+
help - 类中的变量 com.app.flight.controller.PrintTagsController
+
 
+
help - 类中的变量 com.app.flight.controller.ResultController
+
 
+
help - 类中的变量 com.app.flight.controller.RetrieveController
+
 
+
help - 类中的变量 com.app.flight.controller.ScanInstructionController
+
 
+
help - 类中的变量 com.app.flight.controller.SelectMethodController
+
 
+
help - 类中的变量 com.app.flight.controller.SelectPaymentController
+
 
+
help - 类中的变量 com.app.flight.controller.SelectSeatController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.FoodTypeController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.InfoConfirmController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.InputNumberController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.PaymentController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.PrintTagsController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.ResultController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.RetrieveController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.ScanInstructionController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.SelectMethodController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.SelectPaymentController
+
 
+
helpClick(ActionEvent) - 类中的方法 com.app.flight.controller.SelectSeatController
+
 
+
HelpController - com.app.flight.controller中的类
+
 
+
HelpController() - 类的构造器 com.app.flight.controller.HelpController
+
 
+
home(ActionEvent) - 类中的方法 com.app.flight.controller.ComingSoonController
+
 
+
homeButton - 类中的变量 com.app.flight.controller.ComingSoonController
+
 
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index-files/index-9.html b/docs/index-files/index-9.html new file mode 100644 index 0000000..c3a4be8 --- /dev/null +++ b/docs/index-files/index-9.html @@ -0,0 +1,88 @@ + + + + +I - 索引 + + + + + + + + + + + + + + + +
+ +
+
+
+

索引

+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包 +

I

+
+
idNum - 类中的变量 com.app.flight.controller.SelectMethodController
+
 
+
idValidator(String) - 类中的静态方法 com.app.flight.util.Validator
+
+
Validate passengerId
+
+
IdValidatorTest - validatorTest中的类
+
 
+
IdValidatorTest() - 类的构造器 validatorTest.IdValidatorTest
+
 
+
InfoConfirmController - com.app.flight.controller中的类
+
 
+
InfoConfirmController() - 类的构造器 com.app.flight.controller.InfoConfirmController
+
 
+
InputNumberController - com.app.flight.controller中的类
+
 
+
InputNumberController() - 类的构造器 com.app.flight.controller.InputNumberController
+
 
+
isDigit(String) - 类中的静态方法 com.app.flight.util.Validator
+
+
Check whether the char is digit
+
+
isUpperCase(String) - 类中的静态方法 com.app.flight.util.Validator
+
+
Check whether the char is UpperCase
+
+
+A B C D E F G H I J L M N O P Q R S T U V W 
All Classes and Interfaces|常量字段值|所有程序包
+
+
+ + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..f63f3cc --- /dev/null +++ b/docs/index.html @@ -0,0 +1,26 @@ + + + + +生成的文档 (无标题) + + + + + + + + + + + +
+ +

com.app.flight/module-summary.html

+
+ + diff --git a/docs/jquery-ui.overrides.css b/docs/jquery-ui.overrides.css new file mode 100644 index 0000000..1abff95 --- /dev/null +++ b/docs/jquery-ui.overrides.css @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + /* Overrides the color of selection used in jQuery UI */ + background: #F8981D; +} diff --git a/docs/legal/COPYRIGHT b/docs/legal/COPYRIGHT new file mode 100644 index 0000000..ca74fff --- /dev/null +++ b/docs/legal/COPYRIGHT @@ -0,0 +1 @@ +Please see ..\java.base\COPYRIGHT diff --git a/docs/legal/LICENSE b/docs/legal/LICENSE new file mode 100644 index 0000000..4ad9fe4 --- /dev/null +++ b/docs/legal/LICENSE @@ -0,0 +1 @@ +Please see ..\java.base\LICENSE diff --git a/docs/legal/jquery.md b/docs/legal/jquery.md new file mode 100644 index 0000000..8054a34 --- /dev/null +++ b/docs/legal/jquery.md @@ -0,0 +1,72 @@ +## jQuery v3.5.1 + +### jQuery License +``` +jQuery v 3.5.1 +Copyright JS Foundation and other contributors, https://js.foundation/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +****************************************** + +The jQuery JavaScript Library v3.5.1 also includes Sizzle.js + +Sizzle.js includes the following license: + +Copyright JS Foundation and other contributors, https://js.foundation/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/sizzle + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +********************* + +``` diff --git a/docs/legal/jqueryUI.md b/docs/legal/jqueryUI.md new file mode 100644 index 0000000..8031bdb --- /dev/null +++ b/docs/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.12.1 + +### jQuery UI License +``` +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/docs/member-search-index.js b/docs/member-search-index.js new file mode 100644 index 0000000..9c3568c --- /dev/null +++ b/docs/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"com.app.flight.util","c":"Csv","l":"addCsv(Object, String, boolean)","u":"addCsv(java.lang.Object,java.lang.String,boolean)"},{"p":"utilTest","c":"CsvTest","l":"addCsvTest()"},{"p":"com.app.flight.entity","c":"Admin","l":"Admin()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"AdminLoginController","l":"AdminLoginController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"AdminWelcomeController","l":"AdminWelcomeController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"alipay"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"annotation"},{"p":"com.app.flight.controller","c":"AttentionNotesController","l":"AttentionNotesController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"HelpController","l":"back"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"back"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"back"},{"p":"com.app.flight.controller","c":"NavigationMapController","l":"back"},{"p":"com.app.flight.controller","c":"ScanInstructionController","l":"back"},{"p":"com.app.flight.controller","c":"ScanInstructionController","l":"back(ActionEvent)","u":"back(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"HelpController","l":"backButton(ActionEvent)","u":"backButton(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"AdminLoginController","l":"backButtonClick()"},{"p":"com.app.flight.entity","c":"BaseAccount","l":"BaseAccount()","u":"%3Cinit%3E()"},{"p":"com.app.flight.util","c":"Csv","l":"BOARDING_PASS_CSV_PATH"},{"p":"com.app.flight.util","c":"Json","l":"BOARDING_PASS_JSON_PATH"},{"p":"com.app.flight.util","c":"Validator","l":"boardingGateValidator(String)","u":"boardingGateValidator(java.lang.String)"},{"p":"validatorTest","c":"BoardingGateValidatorTest","l":"BoardingGateValidatorTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"ResultController","l":"boardingPass"},{"p":"com.app.flight.entity","c":"BoardingPass","l":"BoardingPass()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"FinishController","l":"boardingPassCode"},{"p":"com.app.flight.service.external","c":"Printer","l":"boardingPassData"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"bookingNum"},{"p":"com.app.flight.entity","c":"Seat","l":"BUSINESS_CLASS"},{"p":"com.app.flight.controller","c":"HelpController","l":"call"},{"p":"com.app.flight.controller","c":"HelpController","l":"callButton(ActionEvent)","u":"callButton(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"check()"},{"p":"com.app.flight.controller","c":"AttentionNotesController","l":"check(ActionEvent)","u":"check(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"check(ActionEvent)","u":"check(javafx.event.ActionEvent)"},{"p":"com.app.flight.util","c":"Csv","l":"checkCsv(Object, String)","u":"checkCsv(java.lang.Object,java.lang.String)"},{"p":"com.app.flight.controller","c":"ScanInstructionController","l":"checkIdNumber(String, Stage)","u":"checkIdNumber(java.lang.String,javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"choiceButton"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"choiceColumn"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"choicePrice"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"choiceRow"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"clean"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"clean(ActionEvent)","u":"clean(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"PaymentController","l":"clean(ActionEvent)","u":"clean(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"SelectLanguageController","l":"coming"},{"p":"com.app.flight.controller","c":"ComingSoonController","l":"ComingSoonController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.entity","c":"Company","l":"Company()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"AttentionNotesController","l":"confirm"},{"p":"com.app.flight.service.external","c":"Scanner","l":"ConsoleScanner(ScanInstructionController, Stage)","u":"ConsoleScanner(com.app.flight.controller.ScanInstructionController,javafx.stage.Stage)"},{"p":"com.app.flight.service","c":"GetNavigationPicture","l":"convertStringToGateType(String)","u":"convertStringToGateType(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"NavigationPictureImpl","l":"convertStringToGateType(String)","u":"convertStringToGateType(java.lang.String)"},{"p":"com.app.flight.util","c":"Csv","l":"Csv()","u":"%3Cinit%3E()"},{"p":"utilTest","c":"CsvTest","l":"CsvTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.util","c":"DataParser","l":"DataParser()","u":"%3Cinit%3E()"},{"p":"com.app.flight.util","c":"Csv","l":"deleteCsv(Object, String, boolean)","u":"deleteCsv(java.lang.Object,java.lang.String,boolean)"},{"p":"utilTest","c":"CsvTest","l":"deleteCsvTest()"},{"p":"com.app.flight.controller","c":"ResultController","l":"detail"},{"p":"com.app.flight.entity","c":"Seat","l":"ECONOMY_CLASS"},{"p":"com.app.flight.controller","c":"SelectLanguageController","l":"english"},{"p":"com.app.flight.util","c":"Json","l":"extractJsonData(String)","u":"extractJsonData(java.lang.String)"},{"p":"com.app.flight.controller","c":"PaymentController","l":"finish"},{"p":"com.app.flight.controller","c":"FinishController","l":"finishClick()"},{"p":"com.app.flight.controller","c":"FinishController","l":"FinishController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.entity","c":"Seat","l":"FIRST_CLASS"},{"p":"com.app.flight.util","c":"Csv","l":"FLIGHT_CSV_PATH"},{"p":"com.app.flight.util","c":"Json","l":"FLIGHT_JSON_PATH"},{"p":"com.app.flight.entity","c":"Flight","l":"Flight()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"flightId"},{"p":"com.app.flight.util","c":"Validator","l":"flightIdValidator(String)","u":"flightIdValidator(java.lang.String)"},{"p":"validatorTest","c":"FlightIdValidatorTest","l":"FlightIdValidatorTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.util","c":"Csv","l":"FOOD_CSV_PATH"},{"p":"com.app.flight.util","c":"Json","l":"FOOD_JSON_PATH"},{"p":"com.app.flight.entity","c":"Food","l":"Food()","u":"%3Cinit%3E()"},{"p":"utilTest","c":"CsvTest","l":"foodCsvTest()"},{"p":"com.app.flight.controller","c":"FoodTypeController","l":"foodType()"},{"p":"com.app.flight.controller","c":"FoodTypeController","l":"FoodTypeController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.service","c":"GetNavigationPicture.gateType","l":"GATE_A"},{"p":"com.app.flight.service","c":"GetNavigationPicture.gateType","l":"GATE_B"},{"p":"com.app.flight.service","c":"GetNavigationPicture.gateType","l":"GATE_C"},{"p":"com.app.flight.service","c":"GetNavigationPicture.gateType","l":"GATE_D"},{"p":"com.app.flight.service.external","c":"QRCodeGenerator","l":"generateBoardingPassCode()"},{"p":"com.app.flight.util","c":"Obj","l":"generateObjAttr(Object)","u":"generateObjAttr(java.lang.Object)"},{"p":"com.app.flight.service.external","c":"QRCodeGenerator","l":"generatePayCode(String)","u":"generatePayCode(java.lang.String)"},{"p":"com.app.flight.util","c":"SeatUtil","l":"generateSeatFilePath(String)","u":"generateSeatFilePath(java.lang.String)"},{"p":"com.app.flight.util","c":"SeatUtil","l":"generateSeatMap(String, int)","u":"generateSeatMap(java.lang.String,int)"},{"p":"utilTest","c":"SeatUtilTest","l":"generateSeatMapTest()"},{"p":"com.app.flight.service.external","c":"QRCodeGenerator","l":"generateTagCode()"},{"p":"com.app.flight.service.impl","c":"GetBoardingPassImpl","l":"GetBoardingPassImpl()","u":"%3Cinit%3E()"},{"p":"serviceTest","c":"GetBoardingPassTest","l":"GetBoardingPassTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"HelpController","l":"getControllerName()"},{"p":"com.app.flight.service.impl","c":"GetFlightImpl","l":"GetFlightImpl()","u":"%3Cinit%3E()"},{"p":"serviceTest","c":"GetFlightTest","l":"GetFlightTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"AdminLoginController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"AdminWelcomeController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"AttentionNotesController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"ComingSoonController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"FinishController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"FoodTypeController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"HelpController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"NavigationMapController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"PaymentController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"ResultController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"RetrieveController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"ScanInstructionController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"SelectLanguageController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"getLoader()"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"getLoader()"},{"p":"com.app.flight.service","c":"GetNavigationPicture","l":"getNavigationPicture(GetNavigationPicture.gateType)","u":"getNavigationPicture(com.app.flight.service.GetNavigationPicture.gateType)"},{"p":"com.app.flight.service.impl","c":"NavigationPictureImpl","l":"getNavigationPicture(GetNavigationPicture.gateType)","u":"getNavigationPicture(com.app.flight.service.GetNavigationPicture.gateType)"},{"p":"com.app.flight.service","c":"GetNavigationPicture","l":"getNavigationPicture(String)","u":"getNavigationPicture(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"NavigationPictureImpl","l":"getNavigationPicture(String)","u":"getNavigationPicture(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"GetPassengerImpl","l":"GetPassengerImpl()","u":"%3Cinit%3E()"},{"p":"com.app.flight.service.temp","c":"GetPassengerImplTemp","l":"GetPassengerImplTemp()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"getPassengerInfo(String, String)","u":"getPassengerInfo(java.lang.String,java.lang.String)"},{"p":"serviceTest","c":"GetPassengerTest","l":"GetPassengerTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"getPercent()"},{"p":"com.app.flight.entity","c":"Seat","l":"getPrice()"},{"p":"com.app.flight.service.impl","c":"GetReservationImpl","l":"GetReservationImpl()","u":"%3Cinit%3E()"},{"p":"com.app.flight.service.temp","c":"GetReservationImplTemp","l":"GetReservationImplTemp()","u":"%3Cinit%3E()"},{"p":"com.app.flight.entity","c":"Seat","l":"getRow()"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"getSeatButtonColor(int)"},{"p":"com.app.flight.service.temp","c":"GetSeatMapImplTemp","l":"GetSeatMapImplTemp()","u":"%3Cinit%3E()"},{"p":"serviceTest","c":"GetSeatMapTestUtil","l":"getSeatMapTest()"},{"p":"serviceTest","c":"GetSeatMapTestUtil","l":"GetSeatMapTestUtil()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"getSeatPrice(int)"},{"p":"com.app.flight.util","c":"Obj","l":"getSelectType()"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"gridPane"},{"p":"com.app.flight.entity","c":"Food.foodType","l":"HALAL"},{"p":"com.app.flight.controller","c":"FoodTypeController","l":"help"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"help"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"help"},{"p":"com.app.flight.controller","c":"PaymentController","l":"help"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"help"},{"p":"com.app.flight.controller","c":"ResultController","l":"help"},{"p":"com.app.flight.controller","c":"RetrieveController","l":"help"},{"p":"com.app.flight.controller","c":"ScanInstructionController","l":"help"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"help"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"help"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"help"},{"p":"com.app.flight.controller","c":"FoodTypeController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"PaymentController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"ResultController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"RetrieveController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"ScanInstructionController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"helpClick(ActionEvent)","u":"helpClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"HelpController","l":"HelpController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"ComingSoonController","l":"home(ActionEvent)","u":"home(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"ComingSoonController","l":"homeButton"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"idNum"},{"p":"com.app.flight.util","c":"Validator","l":"idValidator(String)","u":"idValidator(java.lang.String)"},{"p":"validatorTest","c":"IdValidatorTest","l":"IdValidatorTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"InfoConfirmController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"InputNumberController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.util","c":"Validator","l":"isDigit(String)","u":"isDigit(java.lang.String)"},{"p":"com.app.flight.util","c":"Validator","l":"isUpperCase(String)","u":"isUpperCase(java.lang.String)"},{"p":"com.app.flight.util","c":"Json","l":"Json()","u":"%3Cinit%3E()"},{"p":"utilTest","c":"SeatUtilTest","l":"jsonPathTest()"},{"p":"com.app.flight.controller","c":"AdminLoginController","l":"loginButtonClick()"},{"p":"com.app.flight.controller","c":"SelectLanguageController","l":"loginButtonClick()"},{"p":"com.app.flight.controller","c":"AdminWelcomeController","l":"logoutButtonClick()"},{"p":"com.app.flight.service","c":"GetBoardingPass","l":"lookupBoardingPass()"},{"p":"com.app.flight.service.impl","c":"GetBoardingPassImpl","l":"lookupBoardingPass()"},{"p":"serviceTest","c":"GetBoardingPassTest","l":"lookupBoardingPassTest()"},{"p":"com.app.flight.service.impl","c":"GetFlightImpl","l":"lookupFlight()"},{"p":"com.app.flight.service","c":"GetFlight","l":"lookupFlight(String)","u":"lookupFlight(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"GetFlightImpl","l":"lookupFlight(String)","u":"lookupFlight(java.lang.String)"},{"p":"serviceTest","c":"GetFlightTest","l":"lookupFlightTest()"},{"p":"com.app.flight.service.impl","c":"SetFoodImpl","l":"lookupFood()"},{"p":"com.app.flight.service.impl","c":"GetPassengerImpl","l":"lookupPassenger()"},{"p":"com.app.flight.service","c":"GetPassenger","l":"lookupPassengerByBookingNumber(String)","u":"lookupPassengerByBookingNumber(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"GetPassengerImpl","l":"lookupPassengerByBookingNumber(String)","u":"lookupPassengerByBookingNumber(java.lang.String)"},{"p":"com.app.flight.service.temp","c":"GetPassengerImplTemp","l":"lookupPassengerByBookingNumber(String)","u":"lookupPassengerByBookingNumber(java.lang.String)"},{"p":"com.app.flight.service","c":"GetPassenger","l":"lookupPassengerById(String)","u":"lookupPassengerById(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"GetPassengerImpl","l":"lookupPassengerById(String)","u":"lookupPassengerById(java.lang.String)"},{"p":"com.app.flight.service.temp","c":"GetPassengerImplTemp","l":"lookupPassengerById(String)","u":"lookupPassengerById(java.lang.String)"},{"p":"serviceTest","c":"GetPassengerTest","l":"lookupPassengerTest()"},{"p":"com.app.flight.service.impl","c":"GetReservationImpl","l":"lookupReservation()"},{"p":"com.app.flight.service","c":"GetReservation","l":"lookupReservations(String)","u":"lookupReservations(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"GetReservationImpl","l":"lookupReservations(String)","u":"lookupReservations(java.lang.String)"},{"p":"com.app.flight.service.temp","c":"GetReservationImplTemp","l":"lookupReservations(String)","u":"lookupReservations(java.lang.String)"},{"p":"com.app.flight.service","c":"GetSeatMap","l":"lookupSeatMap(String)","u":"lookupSeatMap(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"SeatMapImpl","l":"lookupSeatMap(String)","u":"lookupSeatMap(java.lang.String)"},{"p":"com.app.flight.service.temp","c":"GetSeatMapImplTemp","l":"lookupSeatMap(String)","u":"lookupSeatMap(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"SeatMapImpl","l":"lookupSeatPrice()"},{"p":"com.app.flight","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"com.app.flight","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"com.app.flight.controller","c":"NavigationMapController","l":"map"},{"p":"com.app.flight.controller","c":"ScanInstructionController","l":"mediaView"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"method"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"method"},{"p":"com.app.flight.controller","c":"RetrieveController","l":"mouseClick(MouseEvent)","u":"mouseClick(javafx.scene.input.MouseEvent)"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"nameLabel"},{"p":"com.app.flight.controller","c":"NavigationMapController","l":"NavigationMapController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.service.impl","c":"NavigationPictureImpl","l":"NavigationPictureImpl()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"AttentionNotesController","l":"next"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"next"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"next"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"next"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"next"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"next"},{"p":"com.app.flight.controller","c":"AttentionNotesController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"FoodTypeController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"PaymentController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"ResultController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"RetrieveController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"nextClick(ActionEvent)","u":"nextClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.util","c":"DataParser","l":"noToString(int)"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"num"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"number"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"numClean"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"numLabel"},{"p":"com.app.flight.util","c":"Obj","l":"Obj()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectLanguageController","l":"onChineseButtonClick()"},{"p":"com.app.flight.controller","c":"SelectLanguageController","l":"onEnglishButtonClick(ActionEvent)","u":"onEnglishButtonClick(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"p"},{"p":"com.app.flight.util","c":"Csv","l":"PASSENGER_CSV_PATH"},{"p":"com.app.flight.util","c":"Json","l":"PASSENGER_JSON_PATH"},{"p":"com.app.flight.entity","c":"Passenger","l":"Passenger()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"PaymentController","l":"pay(String)","u":"pay(java.lang.String)"},{"p":"com.app.flight.controller","c":"PaymentController","l":"PaymentController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"paypal"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"percentage"},{"p":"com.app.flight.service.external","c":"Scanner","l":"playVideo()"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"pRetrieve"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"previousChoiceButton"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"previousChoiceRow"},{"p":"com.app.flight.service.external","c":"Printer","l":"print(ProgressBar, Label)","u":"print(javafx.scene.control.ProgressBar,javafx.scene.control.Label)"},{"p":"com.app.flight.service.external","c":"Printer","l":"printBoardingPass(String, String)","u":"printBoardingPass(java.lang.String,java.lang.String)"},{"p":"com.app.flight.service.external","c":"Printer","l":"Printer()","u":"%3Cinit%3E()"},{"p":"com.app.flight.service.external","c":"Printer","l":"printTag(String, String)","u":"printTag(java.lang.String,java.lang.String)"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"PrintTagsController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"progressBar"},{"p":"com.app.flight.service.external","c":"QRCodeGenerator","l":"QR_CODE_PATH"},{"p":"com.app.flight.service.external","c":"QRCodeGenerator","l":"QRCodeGenerator()","u":"%3Cinit%3E()"},{"p":"com.app.flight.util","c":"Csv","l":"readCsv(String)","u":"readCsv(java.lang.String)"},{"p":"utilTest","c":"CsvTest","l":"readCsvTest()"},{"p":"com.app.flight.util","c":"Csv","l":"RESERVATION_CSV_PATH"},{"p":"com.app.flight.util","c":"Json","l":"RESERVATION_JSON_PATH"},{"p":"com.app.flight.entity","c":"Reservation","l":"Reservation()","u":"%3Cinit%3E()"},{"p":"com.app.flight.util","c":"Validator","l":"reservationIdValidator(String)","u":"reservationIdValidator(java.lang.String)"},{"p":"validatorTest","c":"ReservationIdValidatorTest","l":"ReservationIdValidatorTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"ResultController","l":"ResultController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"RetrieveController","l":"RetrieveController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"returnButton(ActionEvent)","u":"returnButton(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"returnButton(ActionEvent)","u":"returnButton(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"NavigationMapController","l":"returnButton(ActionEvent)","u":"returnButton(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"PaymentController","l":"returnButton(ActionEvent)","u":"returnButton(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"RetrieveController","l":"rList"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"run()"},{"p":"com.app.flight.service.external","c":"Scanner","l":"run()"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"scan"},{"p":"com.app.flight.service.external","c":"Scanner","l":"scanInstructionController"},{"p":"com.app.flight.controller","c":"ScanInstructionController","l":"ScanInstructionController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.service.external","c":"Scanner","l":"Scanner()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"seat"},{"p":"com.app.flight.util","c":"Json","l":"SEAT_JSON_PATH"},{"p":"com.app.flight.service.impl","c":"SeatMapImpl","l":"SeatMapImpl()","u":"%3Cinit%3E()"},{"p":"com.app.flight.util","c":"SeatUtil","l":"SeatUtil()","u":"%3Cinit%3E()"},{"p":"utilTest","c":"SeatUtilTest","l":"SeatUtilTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectLanguageController","l":"SelectLanguageController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"SelectMethodController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"SelectPaymentController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"SelectSeatController()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"HelpController","l":"setControllerName(String)","u":"setControllerName(java.lang.String)"},{"p":"com.app.flight.service.impl","c":"SetFoodImpl","l":"setFood(Food.foodType)","u":"setFood(com.app.flight.entity.Food.foodType)"},{"p":"com.app.flight.service","c":"SetFood","l":"setFood(Food.foodType)","u":"setFood(com.app.flight.entity.Food.foodType)"},{"p":"com.app.flight.service.impl","c":"SetFoodImpl","l":"SetFoodImpl()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"NavigationMapController","l":"setMap(String)","u":"setMap(java.lang.String)"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"setPercent(int)"},{"p":"com.app.flight.entity","c":"Seat","l":"setPrice(double)"},{"p":"com.app.flight.entity","c":"Seat","l":"setRow(int)"},{"p":"serviceTest","c":"SetSeatMapTestUtil","l":"SetSeatMapTestUtil()","u":"%3Cinit%3E()"},{"p":"com.app.flight.util","c":"Obj","l":"setSelectType(String)","u":"setSelectType(java.lang.String)"},{"p":"com.app.flight.controller","c":"AdminWelcomeController","l":"setWelcomeMeg(String)","u":"setWelcomeMeg(java.lang.String)"},{"p":"com.app.flight.controller","c":"ResultController","l":"showBoardingPass(boolean)"},{"p":"com.app.flight.controller","c":"ResultController","l":"showMap(ActionEvent)","u":"showMap(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"showNum(Passenger)","u":"showNum(com.app.flight.entity.Passenger)"},{"p":"com.app.flight.controller","c":"RetrieveController","l":"showRetrieve(Passenger)","u":"showRetrieve(com.app.flight.entity.Passenger)"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"showSeatMap(Map>)","u":"showSeatMap(java.util.Map)"},{"p":"com.app.flight.entity","c":"Staff","l":"Staff()","u":"%3Cinit%3E()"},{"p":"com.app.flight.service.external","c":"Scanner","l":"stage"},{"p":"com.app.flight.entity","c":"Food.foodType","l":"STANDARD"},{"p":"com.app.flight.controller","c":"AdminLoginController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"AttentionNotesController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"ComingSoonController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"FinishController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"FoodTypeController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"HelpController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"PaymentController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"PrintTagsController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"ResultController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"SelectLanguageController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"SelectMethodController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight","c":"Main","l":"start(Stage)","u":"start(javafx.stage.Stage)"},{"p":"com.app.flight.controller","c":"SelectSeatController","l":"start(Stage, Map>, String)","u":"start(javafx.stage.Stage,java.util.Map,java.lang.String)"},{"p":"com.app.flight.controller","c":"InfoConfirmController","l":"start(Stage, Passenger)","u":"start(javafx.stage.Stage,com.app.flight.entity.Passenger)"},{"p":"com.app.flight.controller","c":"RetrieveController","l":"start(Stage, Passenger)","u":"start(javafx.stage.Stage,com.app.flight.entity.Passenger)"},{"p":"com.app.flight.controller","c":"AdminWelcomeController","l":"start(Stage, String)","u":"start(javafx.stage.Stage,java.lang.String)"},{"p":"com.app.flight.util","c":"DataParser","l":"stringToNo(String)","u":"stringToNo(java.lang.String)"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"submit(ActionEvent)","u":"submit(javafx.event.ActionEvent)"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"surName"},{"p":"com.app.flight.controller","c":"FinishController","l":"tagCode"},{"p":"com.app.flight.service.external","c":"Printer","l":"tagData"},{"p":"validatorTest","c":"BoardingGateValidatorTest","l":"testBoardingGate()"},{"p":"validatorTest","c":"FlightIdValidatorTest","l":"testFlightId()"},{"p":"validatorTest","c":"IdValidatorTest","l":"testId()"},{"p":"validatorTest","c":"ReservationIdValidatorTest","l":"testReservationId()"},{"p":"com.app.flight.controller","c":"FoodTypeController","l":"tg"},{"p":"com.app.flight.util","c":"Validator","l":"timeValidator(LocalDateTime)","u":"timeValidator(java.time.LocalDateTime)"},{"p":"validatorTest","c":"TimeValidatorTest","l":"TimeValidatorTest()","u":"%3Cinit%3E()"},{"p":"com.app.flight.controller","c":"InputNumberController","l":"type"},{"p":"com.app.flight.util","c":"Json","l":"TYPE_JSON_PATH"},{"p":"com.app.flight.util","c":"Csv","l":"updateCsv(Object, String)","u":"updateCsv(java.lang.Object,java.lang.String)"},{"p":"utilTest","c":"CsvTest","l":"updateCsvTest()"},{"p":"com.app.flight.service.impl","c":"SeatMapImpl","l":"updateSeatMap(String, String, int, double)","u":"updateSeatMap(java.lang.String,java.lang.String,int,double)"},{"p":"com.app.flight.service","c":"SetSeatMap","l":"updateSeatMap(String, String, int, double)","u":"updateSeatMap(java.lang.String,java.lang.String,int,double)"},{"p":"serviceTest","c":"SetSeatMapTestUtil","l":"updateSeatMapTest()"},{"p":"com.app.flight.util","c":"Validator","l":"Validator()","u":"%3Cinit%3E()"},{"p":"com.app.flight.entity","c":"Food.foodType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.app.flight.entity","c":"Seat","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.app.flight.service","c":"GetNavigationPicture.gateType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.app.flight.entity","c":"Food.foodType","l":"values()"},{"p":"com.app.flight.entity","c":"Seat","l":"values()"},{"p":"com.app.flight.service","c":"GetNavigationPicture.gateType","l":"values()"},{"p":"com.app.flight.entity","c":"Food.foodType","l":"VEGETARIAN"},{"p":"com.app.flight.controller","c":"SelectPaymentController","l":"visa"},{"p":"com.app.flight.util","c":"Validator","l":"visaIdValidator(String)","u":"visaIdValidator(java.lang.String)"},{"p":"com.app.flight.controller","c":"PaymentController","l":"whetherPayment"},{"p":"com.app.flight.util","c":"Json","l":"writeJson(String, Object)","u":"writeJson(java.lang.String,java.lang.Object)"},{"p":"com.app.flight.util","c":"SeatUtil","l":"writeSeatMap(String, Map>, String[])","u":"writeSeatMap(java.lang.String,java.util.Map,java.lang.String[])"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/module-search-index.js b/docs/module-search-index.js new file mode 100644 index 0000000..dccaa54 --- /dev/null +++ b/docs/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [{"l":"com.app.flight"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/overview-tree.html b/docs/overview-tree.html new file mode 100644 index 0000000..2fcaedb --- /dev/null +++ b/docs/overview-tree.html @@ -0,0 +1,177 @@ + + + + +类分层结构 + + + + + + + + + + + + + + + +
+ +
+
+ +
+

类分层结构

+ +
+
+

接口分层结构

+ +
+
+

Enum Class Hierarchy

+ +
+
+
+
+ + diff --git a/docs/package-search-index.js b/docs/package-search-index.js new file mode 100644 index 0000000..00aca38 --- /dev/null +++ b/docs/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"m":"com.app.flight","l":"com.app.flight"},{"m":"com.app.flight","l":"com.app.flight.controller"},{"m":"com.app.flight","l":"com.app.flight.entity"},{"m":"com.app.flight","l":"com.app.flight.service"},{"m":"com.app.flight","l":"com.app.flight.service.external"},{"m":"com.app.flight","l":"com.app.flight.service.impl"},{"m":"com.app.flight","l":"com.app.flight.service.temp"},{"m":"com.app.flight","l":"com.app.flight.util"},{"m":"com.app.flight","l":"serviceTest"},{"m":"com.app.flight","l":"utilTest"},{"m":"com.app.flight","l":"validatorTest"},{"l":"所有程序包","u":"allpackages-index.html"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/resources/glass.png b/docs/resources/glass.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f591f467a1c0c949bbc510156a0c1afb860a6e GIT binary patch literal 499 zcmVJoRsvExf%rEN>jUL}qZ_~k#FbE+Q;{`;0FZwVNX2n-^JoI; zP;4#$8DIy*Yk-P>VN(DUKmPse7mx+ExD4O|;?E5D0Z5($mjO3`*anwQU^s{ZDK#Lz zj>~{qyaIx5K!t%=G&2IJNzg!ChRpyLkO7}Ry!QaotAHAMpbB3AF(}|_f!G-oI|uK6 z`id_dumai5K%C3Y$;tKS_iqMPHg<*|-@e`liWLAggVM!zAP#@l;=c>S03;{#04Z~5 zN_+ss=Yg6*hTr59mzMwZ@+l~q!+?ft!fF66AXT#wWavHt30bZWFCK%!BNk}LN?0Hg z1VF_nfs`Lm^DjYZ1(1uD0u4CSIr)XAaqW6IT{!St5~1{i=i}zAy76p%_|w8rh@@c0Axr!ns=D-X+|*sY6!@wacG9%)Qn*O zl0sa739kT-&_?#oVxXF6tOnqTD)cZ}2vi$`ZU8RLAlo8=_z#*P3xI~i!lEh+Pdu-L zx{d*wgjtXbnGX_Yf@Tc7Q3YhLhPvc8noGJs2DA~1DySiA&6V{5JzFt ojAY1KXm~va;tU{v7C?Xj0BHw!K;2aXV*mgE07*qoM6N<$f;4TDA^-pY literal 0 HcmV?d00001 diff --git a/docs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png b/docs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..34abd18f32d3a55a297fdcf93409bd033ae573e7 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&fCnc6a#?2AmP!?*K(O3p^r= zfwTu0yPeFo12TF&T^vI^j=w#x$i?I+((tf;UXnmgbH|3oY>pC!)f}(GR!16S-u+#{ ze6YEqRkW=8vGl=5qArKM<9}TC-}iEvB{zdaTcX5$wyRTK&ALRXUCGx5b?-VBQkUm|IuXOmYJrBRJgj{Vx zMbNnqUkncy+qa2-mWYc>swkcIuvGK#>(0d)B7)5f`@$Ei28nH~0h*~=;u=wsl30>z zm0Xkxq!^403@vmGjdTsnLJUl-Obo4zO|=aStPBhe<(7X!(U6;;l9^VCTf=69^L{`L N44$rjF6*2UngDu&PXPb` literal 0 HcmV?d00001 diff --git a/docs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/docs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..a90afb8bf8028404d206114965669b023dcb85ea GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z#PD=+46!(!TrvH)L6@80)r*_cdCvDr%)6ghVL16=s@mbz7H!uRdGeDa z?kzLg)16i!f8fKx84s0>4hES%`s&m5HI1v5B^Uft7(lid2moiiX_$l+3hB+!{pPkNg5^ OVDNPHb6Mw<&;$T*0!_~V literal 0 HcmV?d00001 diff --git a/docs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/docs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe091f6dc036fc1dc11b005738e951e27a43f7a GIT binary patch literal 332 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�_j6WK+Gj+xJRxVvl#lh7y-4uY);t)n47k4ot z9YsU`HVk7fg4;r{;)FHk7ZHyZJ+W|$aKwj=g&_$VCVFn5%XzSA`|z}+4ItZ|`hB}R z>h-6Be`d>nmv8;kQHJg!HMr^cCGG=T5;3HhZ_JRq0_4a3TsY7Pz{V+}z>;!R^U4*c zJ>wRI59B-)92Vi?b&EWvH(`<(G5A?W)z>EuDMG@VENAb7aHa`I#tKw{0uUc3(#J8& z*_S%A_ZxCIY385{%qN-b1K)TWmCjUA4nWKx_ZnKLSvEf0($&_0@DS~ zN8JOXJXXcaFm^OCYrz(R7N5DQkXKGnnt}yzfw^8s%=A?7hxza;ylJ;XQ&XtC`pM%b z6$5Ff0{(ALcSlTKvIbr@mR`0Z)*iM`2EfO|E5OMk$jQsE!^mat*drqV literal 0 HcmV?d00001 diff --git a/docs/script-dir/images/ui-icons_2e83ff_256x240.png b/docs/script-dir/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5f49756ca64bd20a1048bd7a3a584457d4bf00 GIT binary patch literal 4549 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 literal 0 HcmV?d00001 diff --git a/docs/script-dir/images/ui-icons_888888_256x240.png b/docs/script-dir/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5e33f27235d1b5cf0259f63f3894a6be33c679 GIT binary patch literal 6999 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 literal 0 HcmV?d00001 diff --git a/docs/script-dir/images/ui-icons_cd0a0a_256x240.png b/docs/script-dir/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8ebc180a2d2a74739059799407b8b7b57a9092 GIT binary patch literal 4549 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 Mq_Ix57W&cu0AIB!=l}o! literal 0 HcmV?d00001 diff --git a/docs/script-dir/jquery-3.5.1.min.js b/docs/script-dir/jquery-3.5.1.min.js new file mode 100644 index 0000000..b061403 --- /dev/null +++ b/docs/script-dir/jquery-3.5.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"
    ",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("
      ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("
      ").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(t("
      ").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("
      ").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete}); \ No newline at end of file diff --git a/docs/script-dir/jquery-ui.structure.min.css b/docs/script-dir/jquery-ui.structure.min.css new file mode 100644 index 0000000..e880892 --- /dev/null +++ b/docs/script-dir/jquery-ui.structure.min.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.12.1 - 2018-12-06 +* http://jqueryui.com +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} \ No newline at end of file diff --git a/docs/script.js b/docs/script.js new file mode 100644 index 0000000..0765364 --- /dev/null +++ b/docs/script.js @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} + +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener("scroll", function(e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); + } + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/docs/search.js b/docs/search.js new file mode 100644 index 0000000..13aba85 --- /dev/null +++ b/docs/search.js @@ -0,0 +1,354 @@ +/* + * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + */ + +var noResult = {l: "No results found"}; +var loading = {l: "Loading search index..."}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Classes and Interfaces"; +var catMembers = "Members"; +var catSearchTags = "Search Tags"; +var highlight = "$&"; +var searchPattern = ""; +var fallbackPattern = ""; +var RANKING_THRESHOLD = 2; +var NO_MATCH = 0xffff; +var MIN_RESULTS = 3; +var MAX_RESULTS = 500; +var UNNAMED = ""; +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(item, matcher, fallbackMatcher) { + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight) + } + return highlighted; +} +function getURLPrefix(ui) { + var urlPrefix=""; + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; + } + }); + } + } + return urlPrefix; +} +function createSearchPattern(term) { + var pattern = ""; + var isWordToken = false; + term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; + } + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === "") { + continue; + } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += "([a-z0-9_$<>\\[\\]]*?)"; + } + } + }); + return pattern; +} +function createMatcher(pattern, flags) { + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); +} +var watermark = 'Search'; +$(function() { + var search = $("#search-input"); + var reset = $("#reset-button"); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + search.val(watermark).addClass('watermark'); + search.blur(function() { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); + } + }); + search.on('click keydown paste', function() { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); + } + }); + reset.click(function() { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); + }, + _renderMenu: function(ul, items) { + var rMenu = this; + var currentCategory = ""; + rMenu.menu.bindings = $(); + $.each(items, function(index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append("
    • " + item.category + "
    • "); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "result-item"); + } else { + li.attr("aria-label", item.l); + li.attr("class", "result-item"); + } + }); + }, + _renderItem: function(ul, item) { + var label = ""; + var matcher = createMatcher(escapeHtml(searchPattern), "g"); + var fallbackMatcher = new RegExp(fallbackPattern, "gi") + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; + } + var li = $("
    • ").appendTo(ul); + var div = $("
      ").appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html(label + " (" + item.h + ")
      " + + item.d + "
      "); + } else { + div.html(label + " (" + item.h + ")"); + } + } else { + if (item.m) { + div.html(item.m + "/" + label); + } else { + div.html(label); + } + } + return li; + } +}); +function rankMatch(match, category) { + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { + leftBoundaryMatch = 0; + } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { + leftBoundaryMatch = 1; + } + var matchEnd = index + match[0].length; + var leftParen = input.indexOf("("); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? "/" : "."; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; + } + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) + delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) + delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) + delta += 5; + } + return leftBoundaryMatch + periferalMatch + (delta / 200); + +} +function doSearch(request, response) { + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === "") { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ""); + var fallbackMatcher = new RegExp(fallbackPattern, "i"); + + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ranking: ranking, item: item}); + } + return newResults.length <= MAX_RESULTS; + }); + return newResults.sort(function(e1, e2) { + return e1.ranking - e2.ranking; + }).map(function(e) { + return e.item; + }); + } + return []; + } + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { + var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); + result = result.concat(secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + })); + } + } + + searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); + searchIndex(packageSearchIndex, catPackages, function(item) { + return (item.m && request.term.indexOf("/") > -1) + ? (item.m + "/" + item.l) : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function(item) { + return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function(item) { + return request.term.indexOf(".") > -1 + ? item.p + "." + item.c + "." + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); + + if (!indexFilesLoaded()) { + updateSearchResults = function() { + doSearch(request, response); + } + result.unshift(loading); + } else { + updateSearchResults = function() {}; + } + response(result); +} +$(function() { + $("#search-input").catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += "module-summary.html"; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search-input").focus(); + } + } + }); +}); diff --git a/docs/stylesheet.css b/docs/stylesheet.css new file mode 100644 index 0000000..836c62d --- /dev/null +++ b/docs/stylesheet.css @@ -0,0 +1,865 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; +} +a[name] { + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; +} +h4 { + font-size:15px; +} +h5 { + font-size:14px; +} +h6 { + font-size:13px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +.summary-table dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.clear { + clear:both; + height:0; + overflow:hidden; +} +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:11px; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* + * Styles for navigation bar. + */ +@media screen { + .flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + min-height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.sub-nav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.sub-nav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list { + padding-top:5px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0 0 0 0; + padding:5px 6px; + clear:none; +} +.nav-list-search label { + position:relative; + right:-16px; +} +ul.sub-nav-list li { + list-style:none; + float:left; + padding-top:10px; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.nav-bar-cell1-rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header and footer. + */ +.title { + color:#2c4557; + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.see-list, ul.see-list-long { + padding-left: 0; + list-style: none; +} +ul.see-list li { + display: inline; +} +ul.see-list li:not(:last-child):after, +ul.see-list-long li:not(:last-child):after { + content: ", "; + white-space: pre-wrap; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0; + padding-top:10px; + padding-left:1px; + margin:0; + white-space:pre; +} +.caption a:link, .caption a:visited { + color:#1f389c; +} +.caption a:hover, +.caption a:active { + color:#FFFFFF; +} +.caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; +} +div.table-tabs > button.active-table-tab { + background: #F8981D; + color: #253441; +} +div.table-tabs > button.table-tab { + background: #4D7A97; + color: #FFFFFF; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +@media screen and (max-width: 800px) { + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:#dee3e9; + font-weight: bold; +} +.col-first, .col-first { + font-size:13px; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:13px; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited, +.constant-values-container a:link, .constant-values-container a:visited, +.all-classes-container a:link, .all-classes-container a:visited, +.all-packages-container a:link, .all-packages-container a:visited { + font-weight:bold; +} +.table-sub-heading-color { + background-color:#EEEEFF; +} +.even-row-color, .even-row-color .table-header { + background-color:#FFFFFF; +} +.odd-row-color, .odd-row-color .table-header { + background-color:#EEEEEF; +} +/* + * Styles for contents. + */ +.deprecated-content { + margin:0; + padding:10px 0; +} +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:0 10px 5px 0; + color:#474747; +} +.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; +} +.result-item { + font-size:13px; +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:scroll; + overflow-x:scroll; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:999999; +} +ul.ui-autocomplete li { + float:left; + clear:both; + width:100%; +} +.result-highlight { + font-weight:bold; +} +#search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + position:relative; + right:-18px; + width:400px; +} +#reset-button { + background-color: rgb(255,255,255); + background-image:url('resources/x.png'); + background-position:center; + background-repeat:no-repeat; + background-size:12px; + border:0 none; + width:16px; + height:16px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; +} +.watermark { + color:#545454; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:yellow; +} +.module-graph span { + display:none; + position:absolute; +} +.module-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +span.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} + +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; +} +table.striped { + border-collapse: collapse; + border: 1px solid black; +} +table.striped > thead { + background-color: #E3E3E3; +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; +} +table.striped > tbody > tr:nth-child(even) { + background-color: #EEE +} +table.striped > tbody > tr:nth-child(odd) { + background-color: #FFF +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak font sizes and paddings for small screens. + */ +@media screen and (max-width: 1050px) { + #search-input { + width: 300px; + } +} +@media screen and (max-width: 800px) { + #search-input { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 500px) { + #search-input { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } +} diff --git a/docs/tag-search-index.js b/docs/tag-search-index.js new file mode 100644 index 0000000..9f5ca6e --- /dev/null +++ b/docs/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [{"l":"常量字段值","h":"","u":"constant-values.html"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/type-search-index.js b/docs/type-search-index.js new file mode 100644 index 0000000..b2c6a65 --- /dev/null +++ b/docs/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"p":"com.app.flight.entity","l":"Admin"},{"p":"com.app.flight.controller","l":"AdminLoginController"},{"p":"com.app.flight.controller","l":"AdminWelcomeController"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.app.flight.controller","l":"AttentionNotesController"},{"p":"com.app.flight.entity","l":"BaseAccount"},{"p":"validatorTest","l":"BoardingGateValidatorTest"},{"p":"com.app.flight.entity","l":"BoardingPass"},{"p":"com.app.flight.controller","l":"ComingSoonController"},{"p":"com.app.flight.entity","l":"Company"},{"p":"com.app.flight.util","l":"Csv"},{"p":"utilTest","l":"CsvTest"},{"p":"com.app.flight.util","l":"DataParser"},{"p":"com.app.flight.controller","l":"FinishController"},{"p":"com.app.flight.entity","l":"Flight"},{"p":"validatorTest","l":"FlightIdValidatorTest"},{"p":"com.app.flight.entity","l":"Food"},{"p":"com.app.flight.entity","l":"Food.foodType"},{"p":"com.app.flight.controller","l":"FoodTypeController"},{"p":"com.app.flight.service","l":"GetNavigationPicture.gateType"},{"p":"com.app.flight.service","l":"GetBoardingPass"},{"p":"com.app.flight.service.impl","l":"GetBoardingPassImpl"},{"p":"serviceTest","l":"GetBoardingPassTest"},{"p":"com.app.flight.service","l":"GetFlight"},{"p":"com.app.flight.service.impl","l":"GetFlightImpl"},{"p":"serviceTest","l":"GetFlightTest"},{"p":"com.app.flight.service","l":"GetNavigationPicture"},{"p":"com.app.flight.service","l":"GetPassenger"},{"p":"com.app.flight.service.impl","l":"GetPassengerImpl"},{"p":"com.app.flight.service.temp","l":"GetPassengerImplTemp"},{"p":"serviceTest","l":"GetPassengerTest"},{"p":"com.app.flight.service","l":"GetReservation"},{"p":"com.app.flight.service.impl","l":"GetReservationImpl"},{"p":"com.app.flight.service.temp","l":"GetReservationImplTemp"},{"p":"com.app.flight.service","l":"GetSeatMap"},{"p":"com.app.flight.service.temp","l":"GetSeatMapImplTemp"},{"p":"serviceTest","l":"GetSeatMapTestUtil"},{"p":"com.app.flight.controller","l":"HelpController"},{"p":"validatorTest","l":"IdValidatorTest"},{"p":"com.app.flight.controller","l":"InfoConfirmController"},{"p":"com.app.flight.controller","l":"InputNumberController"},{"p":"com.app.flight.util","l":"Json"},{"p":"com.app.flight","l":"Main"},{"p":"com.app.flight.controller","l":"NavigationMapController"},{"p":"com.app.flight.service.impl","l":"NavigationPictureImpl"},{"p":"com.app.flight.util","l":"Obj"},{"p":"com.app.flight.entity","l":"Passenger"},{"p":"com.app.flight.controller","l":"PaymentController"},{"p":"com.app.flight.service.external","l":"Printer"},{"p":"com.app.flight.controller","l":"PrintTagsController"},{"p":"com.app.flight.service.external","l":"QRCodeGenerator"},{"p":"com.app.flight.entity","l":"Reservation"},{"p":"validatorTest","l":"ReservationIdValidatorTest"},{"p":"com.app.flight.controller","l":"ResultController"},{"p":"com.app.flight.controller","l":"RetrieveController"},{"p":"com.app.flight.controller","l":"ScanInstructionController"},{"p":"com.app.flight.service.external","l":"Scanner"},{"p":"com.app.flight.entity","l":"Seat"},{"p":"com.app.flight.service.impl","l":"SeatMapImpl"},{"p":"com.app.flight.util","l":"SeatUtil"},{"p":"utilTest","l":"SeatUtilTest"},{"p":"com.app.flight.controller","l":"SelectLanguageController"},{"p":"com.app.flight.controller","l":"SelectMethodController"},{"p":"com.app.flight.controller","l":"SelectPaymentController"},{"p":"com.app.flight.controller","l":"SelectSeatController"},{"p":"com.app.flight.service","l":"SetFood"},{"p":"com.app.flight.service.impl","l":"SetFoodImpl"},{"p":"com.app.flight.service","l":"SetSeatMap"},{"p":"serviceTest","l":"SetSeatMapTestUtil"},{"p":"com.app.flight.entity","l":"Staff"},{"p":"validatorTest","l":"TimeValidatorTest"},{"p":"com.app.flight.util","l":"Validator"}];updateSearchResults(); \ No newline at end of file diff --git a/pom.xml b/pom.xml index ac23c60..33cb39e 100644 --- a/pom.xml +++ b/pom.xml @@ -104,6 +104,14 @@ test + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.4.0 + + + diff --git a/src/main/java/com/app/flight/controller/AdminLoginController.java b/src/main/java/com/app/flight/controller/AdminLoginController.java index 96f5547..4fd0b19 100644 --- a/src/main/java/com/app/flight/controller/AdminLoginController.java +++ b/src/main/java/com/app/flight/controller/AdminLoginController.java @@ -75,6 +75,8 @@ public void backButtonClick() { /** * The code for other pages to open AdminLogin.fxml + * @param stage + * @throws IOException */ public void start(Stage stage) throws IOException { FXMLLoader fxmlLoader = getLoader(); diff --git a/src/main/java/com/app/flight/controller/FoodTypeController.java b/src/main/java/com/app/flight/controller/FoodTypeController.java index fc88954..67262bc 100644 --- a/src/main/java/com/app/flight/controller/FoodTypeController.java +++ b/src/main/java/com/app/flight/controller/FoodTypeController.java @@ -62,8 +62,8 @@ public String foodType() { } /** - * The code for button "next" in ” SelectFoodType.fxml“ - * When click the button, change to “CheckInResult.fxml” + * The code for button "next" in "SelectFoodType.fxml" + * When click the button, change to "CheckInResult.fxml" */ public void nextClick(ActionEvent actionEvent) { diff --git a/src/main/java/com/app/flight/controller/SelectMethodController.java b/src/main/java/com/app/flight/controller/SelectMethodController.java index fbb5ca0..c9cf0b5 100644 --- a/src/main/java/com/app/flight/controller/SelectMethodController.java +++ b/src/main/java/com/app/flight/controller/SelectMethodController.java @@ -61,7 +61,7 @@ public void nextClick(ActionEvent actionEvent) { if (bookingNum.isSelected() || idNum.isSelected()) { Platform.runLater(() -> { try { - FXMLLoader fxmlLoader = new InputNumberController().getLoader();//需要修改成页面展示的controller + FXMLLoader fxmlLoader = new InputNumberController().getLoader();//Controller that needs to be modified for page display stage.setScene(new Scene(fxmlLoader.load(), 1200, 800)); InputNumberController inputNumberController = fxmlLoader.getController(); inputNumberController.type = (String) method.getSelectedToggle().getUserData(); From 1996169f89298053e3cdab9d65894c415285a219 Mon Sep 17 00:00:00 2001 From: Lian Junhong <194668285@qq.com> Date: Fri, 13 May 2022 21:40:36 +0800 Subject: [PATCH 38/39] add javadocs for project --- pom.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/pom.xml b/pom.xml index 33cb39e..bd62a81 100644 --- a/pom.xml +++ b/pom.xml @@ -104,13 +104,6 @@ test - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.4.0 - - From 454c60ba58b649d22ef86d2cabdff1370c36ba59 Mon Sep 17 00:00:00 2001 From: HH <693906439@qq.com> Date: Fri, 13 May 2022 23:10:11 +0800 Subject: [PATCH 39/39] 5.13 Update the function of input surname Fixed the bug in help Merge validator from JiaBoran --- .idea/compiler.xml | 2 +- .../controller/AdminLoginController.java | 1 + .../app/flight/controller/HelpController.java | 7 ++- .../controller/InputNumberController.java | 42 +++++++++++------- .../controller/SelectMethodController.java | 11 +++-- .../controller/SelectSeatController.java | 10 +---- .../java/com/app/flight/util/Validator.java | 6 +++ .../com/app/flight/data/csv/BoardingPass.csv | 1 + .../com/app/flight/data/csv/Flight.csv | 42 +++++++++--------- .../data/csv/flightSeat/MH8633_2022-05-11.csv | 2 +- .../app/flight/data/json/BoardingPass.json | 2 +- .../com/app/flight/data/json/Seat.json | 4 +- .../app/flight/data/printer/BoardingPass.txt | 2 +- .../com/app/flight/data/printer/Tag.txt | 2 +- .../com/app/flight/fxml/InputNumber.fxml | 7 ++- .../flight/image/QR_Code/BoardingPassQR.jpg | Bin 155933 -> 155933 bytes .../com/app/flight/image/QR_Code/TagQR.jpg | Bin 155668 -> 155668 bytes 17 files changed, 84 insertions(+), 57 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 7519a9d..55a7d2e 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -13,7 +13,7 @@ - + diff --git a/src/main/java/com/app/flight/controller/AdminLoginController.java b/src/main/java/com/app/flight/controller/AdminLoginController.java index 4fd0b19..adc09a2 100644 --- a/src/main/java/com/app/flight/controller/AdminLoginController.java +++ b/src/main/java/com/app/flight/controller/AdminLoginController.java @@ -75,6 +75,7 @@ public void backButtonClick() { /** * The code for other pages to open AdminLogin.fxml + * * @param stage * @throws IOException */ diff --git a/src/main/java/com/app/flight/controller/HelpController.java b/src/main/java/com/app/flight/controller/HelpController.java index 9356765..b9962a5 100644 --- a/src/main/java/com/app/flight/controller/HelpController.java +++ b/src/main/java/com/app/flight/controller/HelpController.java @@ -112,9 +112,14 @@ public void backButton(ActionEvent actionEvent) { inputNumberController.next.setDisable(inputNumberController.number.getText().length() <= 0); }); if (inputNumberController.type.equals("id")) { - inputNumberController.annotation.setText("--> Please input your ID number:"); + inputNumberController.annotation.setText("--> Please input your ID number and surname:"); + inputNumberController.numLabel.setText("ID Number:"); + inputNumberController.nameLabel.setText("Surname:"); } else if (inputNumberController.type.equals("booking")) { inputNumberController.annotation.setText("--> Please input your booking number:"); + inputNumberController.nameClean.setVisible(false); + inputNumberController.nameClean.setVisible(false); + inputNumberController.surName.setVisible(false); } } case "PaymentController" -> { diff --git a/src/main/java/com/app/flight/controller/InputNumberController.java b/src/main/java/com/app/flight/controller/InputNumberController.java index 1b22a9f..b65e7ce 100644 --- a/src/main/java/com/app/flight/controller/InputNumberController.java +++ b/src/main/java/com/app/flight/controller/InputNumberController.java @@ -17,8 +17,6 @@ import java.io.IOException; -import static cn.hutool.core.util.IdcardUtil.isValidCard; - /** * @author LianJunhong * @author HuangHong @@ -35,16 +33,18 @@ public class InputNumberController { public Button help; public Button back; - public Button numClean; + public Button nameClean; public Label nameLabel; public Label numLabel; public TextField surName; + public Label attention; + protected String type; GetPassenger getPassenger = new GetPassengerImpl(); public void submit(ActionEvent actionEvent) { - p = getPassengerInfo(type, number.getText()); + p = getPassengerInfo(type, number.getText(), surName.getText()); System.out.println(p); Platform.runLater(() -> { Stage stage = (Stage) clean.getScene().getWindow(); @@ -52,29 +52,36 @@ public void submit(ActionEvent actionEvent) { FXMLLoader fxmlLoader; if (p != null) { fxmlLoader = new InfoConfirmController().getLoader(); - } else { - fxmlLoader = new ComingSoonController().getLoader(); - } - stage.setScene(new Scene(fxmlLoader.load(), 1200, 800)); - if (p != null) { + stage.setScene(new Scene(fxmlLoader.load(), 1200, 800)); InfoConfirmController i = fxmlLoader.getController(); i.showNum(p); i.pRetrieve = p; + } else { + number.setText(""); + surName.setText(""); + next.setDisable(true); } + } catch (IOException e) { e.printStackTrace(); } }); } - protected Passenger getPassengerInfo(String type, String text) { + protected Passenger getPassengerInfo(String type, String id, String name) { Passenger passenger; - if (type.equals("id") && (isValidCard(text) || text.equals("123456"))) { - passenger = getPassenger.lookupPassengerById(text); - } else if (type.equals("booking") && Validator.reservationIdValidator(text)) { - passenger = getPassenger.lookupPassengerByBookingNumber(text); + if (type.equals("id") && (Validator.idValidator(id) || id.equals("123456"))) { + passenger = getPassenger.lookupPassengerById(id); + if (passenger == null) { + attention.setText("Passenger not found."); + } else if (!passenger.getLastName().equals(name)) { + attention.setText("Surname doesn't match the ID number."); + passenger = null; + } + } else if (type.equals("booking") && Validator.reservationIdValidator(id)) { + passenger = getPassenger.lookupPassengerByBookingNumber(id); } else { - //TODO:页面提示输入错误 + attention.setText("Invalid number."); passenger = null; } return passenger; @@ -97,6 +104,11 @@ public void clean(ActionEvent actionEvent) { next.setDisable(true); } + public void nameClean(ActionEvent actionEvent) { + surName.setText(""); + next.setDisable(true); + } + public FXMLLoader getLoader() { return new FXMLLoader(Main.class.getResource("fxml/InputNumber.fxml")); } diff --git a/src/main/java/com/app/flight/controller/SelectMethodController.java b/src/main/java/com/app/flight/controller/SelectMethodController.java index c9cf0b5..0ad34c4 100644 --- a/src/main/java/com/app/flight/controller/SelectMethodController.java +++ b/src/main/java/com/app/flight/controller/SelectMethodController.java @@ -67,17 +67,20 @@ public void nextClick(ActionEvent actionEvent) { inputNumberController.type = (String) method.getSelectedToggle().getUserData(); inputNumberController.next.setDisable(true); inputNumberController.number.textProperty().addListener(changeListener -> { - inputNumberController.next.setDisable(inputNumberController.number.getText().length() <= 0); + inputNumberController.next.setDisable((inputNumberController.number.getText().length() <= 0) || (inputNumberController.surName.getText().length() <= 0)); + }); + inputNumberController.surName.textProperty().addListener(changeListener -> { + inputNumberController.next.setDisable((inputNumberController.number.getText().length() <= 0) || (inputNumberController.surName.getText().length() <= 0)); }); if (inputNumberController.type.equals("id")) { - inputNumberController.annotation.setText("--> Please input your Surname and ID number:"); + inputNumberController.annotation.setText("--> Please input your ID number and surname:"); inputNumberController.numLabel.setText("ID Number:"); inputNumberController.nameLabel.setText("Surname:"); } else if (inputNumberController.type.equals("booking")) { inputNumberController.annotation.setText("--> Please input your booking number:"); - inputNumberController.numClean.setVisible(false); - inputNumberController.numClean.setVisible(false); + inputNumberController.nameClean.setVisible(false); + inputNumberController.nameClean.setVisible(false); inputNumberController.surName.setVisible(false); } } catch (IOException e) { diff --git a/src/main/java/com/app/flight/controller/SelectSeatController.java b/src/main/java/com/app/flight/controller/SelectSeatController.java index 029211a..2f7b662 100644 --- a/src/main/java/com/app/flight/controller/SelectSeatController.java +++ b/src/main/java/com/app/flight/controller/SelectSeatController.java @@ -28,24 +28,18 @@ */ public class SelectSeatController { + private final int firstClassLimit = Seat.FIRST_CLASS.getRow(); + private final int businessClassLimit = Seat.BUSINESS_CLASS.getRow(); @FXML public ChoiceBox seat; - @FXML public Button help; - @FXML public Button next; - @FXML public GridPane gridPane; - public Button choiceButton; - private final int firstClassLimit = Seat.FIRST_CLASS.getRow(); - public int choiceRow; - private final int businessClassLimit = Seat.BUSINESS_CLASS.getRow(); - public String choiceColumn; public double choicePrice; diff --git a/src/main/java/com/app/flight/util/Validator.java b/src/main/java/com/app/flight/util/Validator.java index 815b914..e36a8cc 100644 --- a/src/main/java/com/app/flight/util/Validator.java +++ b/src/main/java/com/app/flight/util/Validator.java @@ -1,5 +1,7 @@ package com.app.flight.util; +import cn.hutool.core.util.IdcardUtil; + import java.time.LocalDateTime; /** @@ -111,4 +113,8 @@ public static boolean visaIdValidator(String visaId) { //TODO:验证银行卡号,自己编写规则 return true; } + + public static boolean idValidator(String id) { + return IdcardUtil.isValidCard(id); + } } diff --git a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv index fa3aa2c..67c2257 100644 --- a/src/main/resources/com/app/flight/data/csv/BoardingPass.csv +++ b/src/main/resources/com/app/flight/data/csv/BoardingPass.csv @@ -132,3 +132,4 @@ passenger,flight,seatNo,food 123456,MH1234,3A,VEGETARIAN 123456,MH8633,3E,HALAL 123456,MH8633,2F,VEGETARIAN +123456,MH8633,4F,VEGETARIAN diff --git a/src/main/resources/com/app/flight/data/csv/Flight.csv b/src/main/resources/com/app/flight/data/csv/Flight.csv index a4de904..3edc644 100644 --- a/src/main/resources/com/app/flight/data/csv/Flight.csv +++ b/src/main/resources/com/app/flight/data/csv/Flight.csv @@ -1,21 +1,21 @@ -flightId,departure,destination,boardingGate,boardingTime,departureTime,arrivalTime -MU1234,Beijing,Hainan,A10,2022-04-29 11:25,2022-04-29 11:55,2022-04-29 16:55 -MH8633,Beijing,Hainan,B8,2022-09-11 07:05,2022-05-11 09:55,2022-05-11 12:55 -MU1122,Shanghai,Beijing,D20,2022-05-11 12:25,2022-05-11 12:55,2022-05-11 14:55 -MH5163,Sichuan,Shanghai,B15,2022-05-26 11:25,2022-05-26 11:55,2022-05-26 13:55 -MU4233,Chengdu,Beijing,A07,2022-05-27 08:25,2022-05-27 08:55,2022-05-27 13:55 -MU4233,Chengdu,Beijing,A07,2022-05-27 08:25,2022-05-27 08:55,2022-05-27 13:55 -HH4993,Chengdu,Guangzhou,A07,2022-05-28 07:25,2022-05-28 07:55,2022-05-28 15:55 -MU8653,Chengdu,Guangzhou,B07,2022-05-28 07:25,2022-05-28 07:55,2022-05-28 15:35 -NH1266,Shanghai,Chengdu,B07,2022-06-01 12:25,2022-06-01 12:55,2022-06-01 15:40 -CH4993,Beijing,New York,A01,2022-06-01 12:25,2022-06-01 12:55,2022-06-01 15:30 -CH5003,New York,Beijing,A02,2022-07-03 17:25,2022-07-03 17:55,2022-07-03 20:10 -MU1235,Sichuan,Beijing,C02,2022-08-04 01:20,2022-08-04 01:30,2022-08-04 04:46 -GH4572,Shanghai,Wuhan,D02,2022-09-12 11:20,2022-09-12 11:30,2022-09-13 01:56 -DH4123,Harbin,Wuhan,D02,2022-10-03 09:20,2022-10-03 09:30,2022-10-03 11:23 -NH9874,Chongqing,Jiangsu,C08,2022-11-04 09:20,2022-11-04 09:30,2022-11-04 11:00 -HH6324,Shanghai,Shenzhen,B14,2022-12-24 10:30,2022-12-24 11:00,2022-12-24 13:45 -HH6324,Shanghai,Shenzhen,B14,2022-12-24 10:30,2022-12-24 11:00,2022-12-24 13:50 -GH0001,Beijing,Tianjin,C12,2022-12-31 23:30,2023-01-01 00:00,2023-01-01 02:20 -CH2341,Tianjin,Beijing,A01,2023-01-03 20:30,2023-01-03 21:00,2023-01-03 23:30 -MH1234,Beijing,Shanghai,A10,2022-05-25T11:25:00,2022-05-25T11:55:00,2022-05-25T14:55:00 +flightId,departure,destination,boardingGate,boardingTime ,departureTime ,arrivalTime +MU1234 ,Beijing ,Hainan ,A10 ,2022-04-29 11:25,2022-04-29 11:55,2022-04-29 16:55 +MH8633 ,Beijing ,Hainan ,B8 ,2022-09-11 07:05,2022-05-11 09:55,2022-05-11 12:55 +MH1234 ,Beijing ,Shanghai ,C10 ,2022-05-25 11:25,2022-05-25 11:55,2022-05-25 16:55 +MU1122 ,Shanghai ,Beijing ,D20 ,2022-05-11 12:25,2022-05-11 12:55,2022-05-11 14:55 +MH5163 ,Sichuan ,Shanghai ,B15 ,2022-05-26 11:25,2022-05-26 11:55,2022-05-26 13:55 +MU4233 ,Chengdu ,Beijing ,A07 ,2022-05-27 08:25,2022-05-27 08:55,2022-05-27 13:55 +MU4233 ,Chengdu ,Beijing ,A07 ,2022-05-27 08:25,2022-05-27 08:55,2022-05-27 13:55 +HH4993 ,Chengdu ,Guangzhou ,A07 ,2022-05-28 07:25,2022-05-28 07:55,2022-05-28 15:55 +MU8653 ,Chengdu ,Guangzhou ,B07 ,2022-05-28 07:25,2022-05-28 07:55,2022-05-28 15:35 +NH1266 ,Shanghai ,Chengdu ,B07 ,2022-06-01 12:25,2022-06-01 12:55,2022-06-01 15:40 +CH4993 ,Beijing ,New York ,A01 ,2022-06-01 12:25,2022-06-01 12:55,2022-06-01 15:30 +CH5003 ,New York ,Beijing ,A02 ,2022-07-03 17:25,2022-07-03 17:55,2022-07-03 20:10 +MU1235 ,Sichuan ,Beijing ,C02 ,2022-08-04 01:20,2022-08-04 01:30,2022-08-04 04:46 +GH4572 ,Shanghai ,Wuhan ,D02 ,2022-09-12 11:20,2022-09-12 11:30,2022-09-13 01:56 +DH4123 ,Harbin ,Wuhan ,D02 ,2022-10-03 09:20,2022-10-03 09:30,2022-10-03 11:23 +NH9874 ,Chongqing,Jiangsu ,C08 ,2022-11-04 09:20,2022-11-04 09:30,2022-11-04 11:00 +HH6324 ,Shanghai ,Shenzhen ,B14 ,2022-12-24 10:30,2022-12-24 11:00,2022-12-24 13:45 +HH6324 ,Shanghai ,Shenzhen ,B14 ,2022-12-24 10:30,2022-12-24 11:00,2022-12-24 13:50 +GH0001 ,Beijing ,Tianjin ,C12 ,2022-12-31 23:30,2023-01-01 00:00,2023-01-01 02:20 +CH2341 ,Tianjin ,Beijing ,A01 ,2023-01-03 20:30,2023-01-03 21:00,2023-01-03 23:30 diff --git a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv index 4a7e6ed..85a8d7b 100644 --- a/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv +++ b/src/main/resources/com/app/flight/data/csv/flightSeat/MH8633_2022-05-11.csv @@ -2,7 +2,7 @@ A,B,C,D,E,F true,true,true,true,true,true true,true,true,false,false,false true,true,true,false,false,true -true,true,true,true,true,true +true,true,true,true,true,false true,true,true,true,true,true true,true,true,false,true,true true,true,true,true,true,true diff --git a/src/main/resources/com/app/flight/data/json/BoardingPass.json b/src/main/resources/com/app/flight/data/json/BoardingPass.json index 7428469..37f2601 100644 --- a/src/main/resources/com/app/flight/data/json/BoardingPass.json +++ b/src/main/resources/com/app/flight/data/json/BoardingPass.json @@ -15,7 +15,7 @@ "departureTime": "2022-05-11T09:55:00", "arrivalTime": "2022-05-11T12:55:00" }, - "seatNo": "2F", + "seatNo": "4F", "food": { "foodName": "VEGETARIAN", "foodPrice": 20.0 diff --git a/src/main/resources/com/app/flight/data/json/Seat.json b/src/main/resources/com/app/flight/data/json/Seat.json index f322487..65f9cd8 100644 --- a/src/main/resources/com/app/flight/data/json/Seat.json +++ b/src/main/resources/com/app/flight/data/json/Seat.json @@ -1,6 +1,6 @@ { "flightId": "MH8633", "column": "F", - "row": "2", - "price": "400.0" + "row": "4", + "price": "200.0" } \ No newline at end of file diff --git a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt index 013f122..395ac05 100644 --- a/src/main/resources/com/app/flight/data/printer/BoardingPass.txt +++ b/src/main/resources/com/app/flight/data/printer/BoardingPass.txt @@ -5,7 +5,7 @@ | DATE: 11 SEPTEMBER |. | FLIGHT: MH8633 |. | NAME: Jun Test |. - | SEAT: 2F |. + | SEAT: 4F |. | GATE: B8 |. | BD TIME: 07:05 |. | DEST: Hainan |. diff --git a/src/main/resources/com/app/flight/data/printer/Tag.txt b/src/main/resources/com/app/flight/data/printer/Tag.txt index 32752d2..588d79d 100644 --- a/src/main/resources/com/app/flight/data/printer/Tag.txt +++ b/src/main/resources/com/app/flight/data/printer/Tag.txt @@ -6,7 +6,7 @@ _______________________________________ / \ \. | | |. \__| |. - | NO.72 |. + | NO.73 |. | COUNTER: B8 |. | CHECKED BAGGAGE: 1 |. | |. diff --git a/src/main/resources/com/app/flight/fxml/InputNumber.fxml b/src/main/resources/com/app/flight/fxml/InputNumber.fxml index 7b313e7..d77a460 100644 --- a/src/main/resources/com/app/flight/fxml/InputNumber.fxml +++ b/src/main/resources/com/app/flight/fxml/InputNumber.fxml @@ -171,13 +171,18 @@ - + diff --git a/src/main/resources/com/app/flight/image/QR_Code/BoardingPassQR.jpg b/src/main/resources/com/app/flight/image/QR_Code/BoardingPassQR.jpg index 3812daf801f37e529490aee9bc4ce04dccfe752c..1d77290f122f7824f4b3afd9a64d4415f2e3e621 100644 GIT binary patch delta 8015 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 M;nL<|o{bUz51E4}rT_o{ delta 8028 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 Htb_gsz+w@V diff --git a/src/main/resources/com/app/flight/image/QR_Code/TagQR.jpg b/src/main/resources/com/app/flight/image/QR_Code/TagQR.jpg index 935b5c31c964b7659e45bcfbd125982b5428e888..090b7664cb825ebdecee90fd78a38c926289239d 100644 GIT binary patch delta 27580 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

      d1vEay#4qA7_%FXYjV^!F% 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 HRL%kb(;z*( delta 27124 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 E0Pkgs!vFvP

+ +
+
+
+

All Classes and Interfaces

+
+
+
+
+
+
+
说明
+ +
 
+ +
+
This code is used to finish all the steps of check-in.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
This code is used to finish all the steps of check-in.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
This code is used to select the food type.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Updated the code of its own version.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
This code is used to control the interface for selecting language.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+
+
+
+
+
+