Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.81 KB | None | 0 0
  1. package View;
  2.  
  3. import javafx.application.Platform;
  4. import javafx.collections.FXCollections;
  5. import javafx.collections.ObservableList;
  6. import javafx.event.ActionEvent;
  7. import javafx.fxml.FXML;
  8. import javafx.fxml.Initializable;
  9. import javafx.scene.control.*;
  10. import javafx.scene.control.cell.PropertyValueFactory;
  11. import services.admin.AdminSoap;
  12. import services.admin.Client;
  13. import services.admin.Parcel;
  14. import services.admin.ParcelUpdate;
  15.  
  16. import java.net.URL;
  17. import java.util.List;
  18. import java.util.Optional;
  19. import java.util.ResourceBundle;
  20. import java.util.stream.Collectors;
  21.  
  22. public class AdminController implements Initializable {
  23.     @FXML
  24.     public ChoiceBox senderChoiceBox;
  25.     @FXML
  26.     public TextField senderCity;
  27.     @FXML
  28.     public TextField destinationCity;
  29.     @FXML
  30.     public ChoiceBox receiverChoiceBox;
  31.     @FXML
  32.     public Button addParcel;
  33.     @FXML
  34.     public Button deleteParcel;
  35.     @FXML
  36.     public Button makeTrackable;
  37.     @FXML
  38.     public TextField updateCity;
  39.     @FXML
  40.     public Button addUpdate;
  41.     @FXML
  42.     public TextField date;
  43.     @FXML
  44.     TableView<Parcel> parcels;
  45.     private final ObservableList<Parcel> parcelObservableList = FXCollections.observableArrayList();
  46.     private List<Parcel> parcelsList;
  47.     @FXML
  48.     TableView<ParcelUpdate> parcelUpdate;
  49.     private final ObservableList<ParcelUpdate> parcelsUpdateList = FXCollections.observableArrayList();
  50.     @FXML
  51.     TextField name;
  52.     private Parcel selectedParcel=null;
  53.  
  54.  
  55.     public void initialize(URL location, ResourceBundle resources) {
  56.         initParcelsTable();
  57.         initParcelsUpdateTable();
  58.         parcelsList= AdminSoap.getInstance().getParcels();
  59.         parcelObservableList.addAll(parcelsList);
  60.         List<Client> clients=AdminSoap.getInstance().getClients();
  61.         senderChoiceBox.getItems().setAll(clients);
  62.         receiverChoiceBox.getItems().setAll(clients);
  63.     }
  64.  
  65.     private void initParcelsUpdateTable() {
  66.         TableColumn<ParcelUpdate, String> nameCol = new TableColumn<ParcelUpdate, String>("City");
  67.         nameCol.setMinWidth(50);
  68.         nameCol.setCellValueFactory(new PropertyValueFactory<ParcelUpdate, String>("city"));
  69.         TableColumn<ParcelUpdate, String> destinationCityCol = new TableColumn<ParcelUpdate, String>("Time");
  70.         destinationCityCol.setMinWidth(50);
  71.         destinationCityCol.setCellValueFactory(new PropertyValueFactory<ParcelUpdate, String>("time"));
  72.         parcelUpdate.setItems(parcelsUpdateList);
  73.         parcelUpdate.getColumns().addAll(nameCol,destinationCityCol);
  74.     }
  75.  
  76.     private void initParcelsTable() {
  77.         TableColumn<Parcel, String> nameCol = new TableColumn<Parcel, String>("Name");
  78.         nameCol.setMinWidth(50);
  79.         nameCol.setCellValueFactory(new PropertyValueFactory<Parcel, String>("name"));
  80.         TableColumn<Parcel, String> destinationCityCol = new TableColumn<Parcel, String>("Destination City");
  81.         destinationCityCol.setMinWidth(50);
  82.         destinationCityCol.setCellValueFactory(new PropertyValueFactory<Parcel, String>("destinationCity"));
  83.         TableColumn<Parcel, String> abstractCol = new TableColumn<Parcel, String>("Sender City");
  84.         abstractCol.setMinWidth(50);
  85.         abstractCol.setCellValueFactory(new PropertyValueFactory<Parcel, String>("senderCity"));
  86.         TableColumn<Parcel, String> trackedCol = new TableColumn<Parcel, String>("Tracked");
  87.         trackedCol.setMinWidth(50);
  88.         trackedCol.setCellValueFactory(new PropertyValueFactory<Parcel, String>("tracking"));
  89.         parcels.setItems(parcelObservableList);
  90.         parcels.getColumns().addAll(nameCol, destinationCityCol, abstractCol,trackedCol);
  91.  
  92.         parcels.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
  93.             Platform.runLater(() ->
  94.             {
  95.                 Optional<Parcel> selected = parcelsList.stream().filter(parcel -> parcel.equals(newValue)).findFirst();
  96.                 if (selected.isPresent()) {
  97.                     selectedParcel=selected.get();
  98.                     filter();
  99.                 }
  100.             });
  101.  
  102.         });
  103.     }
  104.  
  105.     private void filter() {
  106.         parcelsUpdateList.clear();
  107.         if (selectedParcel!=null)
  108.         parcelsUpdateList.addAll(AdminSoap.getInstance().getParcelUpdates().stream()
  109.                 .filter(s->s.getAParcel().getId()==selectedParcel.getId()).collect(Collectors.toList()));
  110.     }
  111.  
  112.     @FXML
  113.     public void deleteParcel(ActionEvent actionEvent) {
  114.         if(parcels.getSelectionModel().getSelectedItem()!=null)
  115.         {
  116.             AdminSoap.getInstance().removeParcel(parcels.getSelectionModel().getSelectedItem());
  117.             selectedParcel=null;
  118.             filter();
  119.             updateAllParcels();
  120.         }
  121.     }
  122.  
  123.     private void updateAllParcels() {
  124.         parcelObservableList.clear();
  125.         parcelObservableList.setAll(AdminSoap.getInstance().getParcels());
  126.     }
  127.  
  128.     @FXML
  129.     public void trackParcel(ActionEvent actionEvent) {
  130.         if(parcels.getSelectionModel().getSelectedItem()!=null)
  131.         {
  132.             AdminSoap.getInstance().trackParcel(parcels.getSelectionModel().getSelectedItem());
  133.             updateAllParcels();
  134.         }
  135.     }
  136.  
  137.     @FXML
  138.     public void addUpdate(ActionEvent actionEvent) {
  139.  
  140.     }
  141.  
  142.     @FXML
  143.     public void addParcel(ActionEvent actionEvent) {
  144.         Parcel inserted=new Parcel();
  145.         inserted.setDestinationCity(destinationCity.getText());
  146.         inserted.setName(name.getText());
  147.         inserted.setSenderCity(senderCity.getText());
  148.         inserted.setTracking(false);
  149.         inserted.setSenderClient((Client) senderChoiceBox.getValue());
  150.         inserted.setReceiverClient((Client) receiverChoiceBox.getValue());
  151.         AdminSoap.getInstance().insertParcel(inserted);
  152.         updateAllParcels();
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement