SHARE
TWEET

viewCars

a guest Apr 21st, 2019 97 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public void launch () {
  2.         Stage viewCars = new Stage();
  3.         viewCars.setTitle("View All Cars");
  4.  
  5.         GridPane mainFrame = new GridPane();
  6.         // Stores the input fields.
  7.         GridPane input = new GridPane();
  8.  
  9.         numPlate= new TextField();
  10.         numPlate.setOnAction(e -> search());
  11.         numPlate.setPromptText("Number Plate");
  12.         input.add(numPlate, 0, 0);
  13.         model = new TextField();
  14.         model.setOnAction(e -> search());
  15.         model.setPromptText("Model");
  16.         input.add(model, 1, 0);
  17.         vehType = new TextField();
  18.         vehType.setOnAction(e -> search());
  19.         vehType.setPromptText("Vehicle Type");
  20.         input.add(vehType, 2, 0);
  21.         colour = new TextField();
  22.         colour.setOnAction(e -> search());
  23.         colour.setPromptText("Colour");
  24.         input.add(colour, 3, 0);
  25.         mileage = new TextField();
  26.         mileage.setOnAction(e -> search());
  27.         mileage.setPromptText("Mileage");
  28.         input.add(mileage, 4, 0);
  29.         accidentHistory = new TextField();
  30.         accidentHistory.setOnAction(e -> search());
  31.         accidentHistory.setPromptText("Accident History");
  32.         input.add(accidentHistory, 5, 0);
  33.         transmission = new ComboBox<>();
  34.         transmission.setOnAction(e -> search());
  35.         transmission.getItems().add("Either");
  36.         transmission.getSelectionModel().selectFirst();
  37.         transmission.getItems().add("Automatic");
  38.         transmission.getItems().add("Manual");
  39.         input.add(transmission, 6, 0);
  40.         price = new TextField();
  41.         price.setOnAction(e -> search());
  42.         price.setPromptText("Price");
  43.         input.add(price, 7, 0);
  44.  
  45.  
  46.         bodyType = new TextField();
  47.         bodyType.setOnAction(e -> search());
  48.         bodyType.setPromptText("Body Type");
  49.         input.add(bodyType, 0, 1);
  50.         numDoors = new TextField();
  51.         numDoors.setOnAction(e -> search());
  52.         numDoors.setPromptText("Number Of Seats");
  53.         input.add(numDoors, 1, 1);
  54.  
  55.  
  56.         minimumSeats = new TextField();
  57.         minimumSeats.setOnAction(e -> search());
  58.         minimumSeats.setPromptText("Minimum Seats");
  59.         input.add(minimumSeats, 2, 1);
  60.         maximumSeats = new TextField();
  61.         maximumSeats.setOnAction(e -> search());
  62.         maximumSeats.setPromptText("Maximum Seats");
  63.         input.add(maximumSeats, 3, 1);
  64.  
  65.         specialSearch = new ComboBox<>();
  66.         specialSearch.setOnAction(e -> search());
  67.         specialSearch.getItems().add("Cars and Vans");
  68.         specialSearch.getItems().add("Cars Only");
  69.         specialSearch.getSelectionModel().selectFirst();
  70.  
  71.         // Add all different types of attributes to the dropdown.
  72.         List<String> listOfSpecialAttributes = new ArrayList<>();
  73.         for (TypeOfVehicle typeOfVehicle : TypeOfVehicle.getVehicle()) {
  74.             if (!typeOfVehicle.getSpecialAttribute().isEmpty()) {
  75.                 listOfSpecialAttributes.add(typeOfVehicle.getSpecialAttribute());
  76.             }
  77.         }
  78.         // Get rid of duplicates by converting to a set.
  79.         Set<String> uniqueSpecialAttributes = new HashSet<>(listOfSpecialAttributes);
  80.  
  81.         specialSearch.getItems().addAll(uniqueSpecialAttributes);
  82.  
  83.         input.add(specialSearch, 4, 1);
  84.  
  85.         // Stores the results of the search.
  86.         carGrid = new GridPane();
  87.  
  88.         mainFrame.add(input, 0,0);
  89.         mainFrame.add(carGrid, 0, 1);
  90.  
  91.         carSearch = new ArrayList<>();
  92.         search();
  93.  
  94.         viewCars.setScene(new Scene(mainFrame, 900, 1200));
  95.  
  96.         viewCars.show();
  97.     }
  98.     private void search () {
  99.         // Get all information from text boxes.
  100.         String vehReg = numPlate.getText();
  101.         String vehModel = model.getText();
  102.         String vehT = vehType.getText();
  103.         String vehColour = colour.getText();
  104.         String vehMileage = mileage.getText();
  105.         String vehAccHistory = accidentHistory.getText();
  106.         String vehTransmission = transmission.getSelectionModel().getSelectedItem();
  107.         if (vehTransmission.equals("Either")) vehTransmission = "";
  108.         String vehPrice = price.getText();
  109.  
  110.         String bodyT = bodyType.getText();
  111.         String numDoor = numDoors.getText();
  112.  
  113.  
  114.         String special = specialSearch.getSelectionModel().getSelectedItem();
  115.         if (special.equals("Cars and Vans")) special = "";
  116.         boolean searchOnlyNormal = false;
  117.         if (special.equals("Cars Only")) {
  118.             searchOnlyNormal = true;
  119.             special = "";
  120.         }
  121.  
  122.         String minSeatsT = minimumSeats.getText();
  123.         String maxSeatsT = maximumSeats.getText();
  124.         // Default seats to minimum and maximum possible values.
  125.         int minSeats = Integer.MIN_VALUE;
  126.         int maxSeats = Integer.MAX_VALUE;
  127.  
  128.         // If a value is entered, convert it into a integer.
  129.         if (!minSeatsT.isEmpty()) {
  130.             minSeats = Integer.parseInt(minSeatsT);
  131.         }
  132.         if (!maxSeatsT.isEmpty()) {
  133.             maxSeats = Integer.parseInt(maxSeatsT);
  134.         }
  135.         // Remove the previous search results from the grid.
  136.         for (Node node : carSearch) {
  137.             carGrid.getChildren().remove(node);
  138.         }
  139.  
  140.         // Headers.
  141.         System.out.println("got to labels");
  142.         Label numberPlateHead = new Label("Number Plate:        ");
  143.         Label modelHead = new Label("Model:        ");
  144.         Label colourHead = new Label("Colour:        ");
  145.         Label mileageHead = new Label("Mileage:        ");
  146.         Label accHistoryHead = new Label("Accident History:        ");
  147.         Label tTypeHead = new Label("Transmission Type:        ");
  148.         Label priceHead = new Label("Price:        ");
  149.  
  150.  
  151.         // For everyone
  152.         Label arrivalDateHead = new Label("Arrival Date:        ");
  153.         Label sellingDateHead = new Label("Selling Date:        ");
  154.  
  155.         carGrid.add(numberPlateHead, 0, 0);
  156.         carGrid.add(modelHead, 1, 0);
  157.         carGrid.add(colourHead, 2, 0);
  158.         carGrid.add(mileageHead, 3, 0);
  159.         carGrid.add(accHistoryHead, 4, 0);
  160.         carGrid.add(tTypeHead, 5, 0);
  161.         carGrid.add(priceHead, 6, 0);
  162.  
  163.         carGrid.add(arrivalDateHead, 9, 0);
  164.         carGrid.add(sellingDateHead, 10, 0);
  165.  
  166.         int row = 1;
  167.  
  168.         boolean continueSearch;
  169.         // Loop through all pets in memory.
  170.         for (Car car : Car.getCar()) {
  171.             continueSearch = false;
  172.             // If all the searches are successful.
  173.             if (car.search(vehReg) && car.search(vehModel) && car.search(vehT) && car.search(vehColour)
  174.                     && car.search(vehMileage) && car.search(vehAccHistory)&& car.search(vehTransmission) && car.search(vehPrice) && car.search(bodyT) && car.search(numDoor)
  175.                     && car.seatsBetween(minSeats, maxSeats) && car.search(special)) {
  176.                 if (searchOnlyNormal) {
  177.                     if (!car.getTypeOfVehicle().isSpecial) {
  178.                         continueSearch = true;
  179.                     }
  180.                 }
  181.                 else {
  182.                     continueSearch = true;
  183.                 }
  184.                 if (continueSearch) {
  185.                     // Make the labels.
  186.                     Label numberPlateLabel = new Label(car.getNumberPlate());
  187.                     Label modelLabel = new Label(car.getModel());
  188.                     Label colourLabel = new Label(car.getColour());
  189.                     Label mileageLabel = new Label(car.getMileage());
  190.                     Label accHistoryLabel = new Label(car.getAccidentHistory());
  191.                     Label tTypeLabel = new Label(car.getTransmissionType());
  192.                     Label priceLabel = new Label(String.format("%.2f", car.getPrice()));
  193.  
  194.  
  195.                     // normal labels
  196.                     Label arrivalDateLabel = new Label(car.getArrivalDate());
  197.                     Node sellDateNode;
  198.                     if (car.getSoldDate().equals("")) {
  199.                         sellDateNode = new Button("Sell Car:");
  200.                         ((Button) sellDateNode).setOnAction(e -> sellCar(car));
  201.                     } else {
  202.                         sellDateNode = new Label(car.getSoldDate());
  203.                     }
  204.  
  205.                     // Place the labels
  206.                     carGrid.add(numberPlateLabel, 0, row);
  207.                     carGrid.add(modelLabel, 1, row);
  208.                     carGrid.add(colourLabel, 2, row);
  209.                     carGrid.add(mileageLabel, 3, row);
  210.                     carGrid.add(accHistoryLabel, 4, row);
  211.                     carGrid.add(tTypeLabel, 5, row);
  212.                     carGrid.add(priceLabel, 6, row);
  213.  
  214.                     carGrid.add(arrivalDateLabel, 9, row);
  215.                     carGrid.add(sellDateNode, 10, row);
  216.  
  217.  
  218.                     // Create reference so we can remove them later.
  219.                     carSearch.add(numberPlateLabel);
  220.                     carSearch.add(modelLabel);
  221.                     carSearch.add(colourLabel);
  222.                     carSearch.add(mileageLabel);
  223.                     carSearch.add(accHistoryLabel);
  224.                     carSearch.add(tTypeLabel);
  225.                     carSearch.add(priceLabel);
  226.                     carSearch.add(arrivalDateLabel);
  227.                     carSearch.add(sellDateNode);
  228.  
  229.                     row = row + 1;
  230.                 }
  231.             }
  232.         }
  233.     }
  234.  
  235.     void sellCar (Car car) {
  236.         car.soldInfo();
  237.         search();
  238.     }
  239. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top