Advertisement
Guest User

viewCars

a guest
Apr 21st, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.37 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement