Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package View;
- import javafx.application.Platform;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.event.ActionEvent;
- import javafx.fxml.FXML;
- import javafx.fxml.Initializable;
- import javafx.scene.control.*;
- import javafx.scene.control.cell.PropertyValueFactory;
- import services.admin.AdminSoap;
- import services.admin.Client;
- import services.admin.Parcel;
- import services.admin.ParcelUpdate;
- import java.net.URL;
- import java.util.List;
- import java.util.Optional;
- import java.util.ResourceBundle;
- import java.util.stream.Collectors;
- public class AdminController implements Initializable {
- @FXML
- public ChoiceBox senderChoiceBox;
- @FXML
- public TextField senderCity;
- @FXML
- public TextField destinationCity;
- @FXML
- public ChoiceBox receiverChoiceBox;
- @FXML
- public Button addParcel;
- @FXML
- public Button deleteParcel;
- @FXML
- public Button makeTrackable;
- @FXML
- public TextField updateCity;
- @FXML
- public Button addUpdate;
- @FXML
- public TextField date;
- @FXML
- TableView<Parcel> parcels;
- private final ObservableList<Parcel> parcelObservableList = FXCollections.observableArrayList();
- private List<Parcel> parcelsList;
- @FXML
- TableView<ParcelUpdate> parcelUpdate;
- private final ObservableList<ParcelUpdate> parcelsUpdateList = FXCollections.observableArrayList();
- @FXML
- TextField name;
- private Parcel selectedParcel=null;
- public void initialize(URL location, ResourceBundle resources) {
- initParcelsTable();
- initParcelsUpdateTable();
- parcelsList= AdminSoap.getInstance().getParcels();
- parcelObservableList.addAll(parcelsList);
- List<Client> clients=AdminSoap.getInstance().getClients();
- senderChoiceBox.getItems().setAll(clients);
- receiverChoiceBox.getItems().setAll(clients);
- }
- private void initParcelsUpdateTable() {
- TableColumn<ParcelUpdate, String> nameCol = new TableColumn<ParcelUpdate, String>("City");
- nameCol.setMinWidth(50);
- nameCol.setCellValueFactory(new PropertyValueFactory<ParcelUpdate, String>("city"));
- TableColumn<ParcelUpdate, String> destinationCityCol = new TableColumn<ParcelUpdate, String>("Time");
- destinationCityCol.setMinWidth(50);
- destinationCityCol.setCellValueFactory(new PropertyValueFactory<ParcelUpdate, String>("time"));
- parcelUpdate.setItems(parcelsUpdateList);
- parcelUpdate.getColumns().addAll(nameCol,destinationCityCol);
- }
- private void initParcelsTable() {
- TableColumn<Parcel, String> nameCol = new TableColumn<Parcel, String>("Name");
- nameCol.setMinWidth(50);
- nameCol.setCellValueFactory(new PropertyValueFactory<Parcel, String>("name"));
- TableColumn<Parcel, String> destinationCityCol = new TableColumn<Parcel, String>("Destination City");
- destinationCityCol.setMinWidth(50);
- destinationCityCol.setCellValueFactory(new PropertyValueFactory<Parcel, String>("destinationCity"));
- TableColumn<Parcel, String> abstractCol = new TableColumn<Parcel, String>("Sender City");
- abstractCol.setMinWidth(50);
- abstractCol.setCellValueFactory(new PropertyValueFactory<Parcel, String>("senderCity"));
- TableColumn<Parcel, String> trackedCol = new TableColumn<Parcel, String>("Tracked");
- trackedCol.setMinWidth(50);
- trackedCol.setCellValueFactory(new PropertyValueFactory<Parcel, String>("tracking"));
- parcels.setItems(parcelObservableList);
- parcels.getColumns().addAll(nameCol, destinationCityCol, abstractCol,trackedCol);
- parcels.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
- Platform.runLater(() ->
- {
- Optional<Parcel> selected = parcelsList.stream().filter(parcel -> parcel.equals(newValue)).findFirst();
- if (selected.isPresent()) {
- selectedParcel=selected.get();
- filter();
- }
- });
- });
- }
- private void filter() {
- parcelsUpdateList.clear();
- if (selectedParcel!=null)
- parcelsUpdateList.addAll(AdminSoap.getInstance().getParcelUpdates().stream()
- .filter(s->s.getAParcel().getId()==selectedParcel.getId()).collect(Collectors.toList()));
- }
- @FXML
- public void deleteParcel(ActionEvent actionEvent) {
- if(parcels.getSelectionModel().getSelectedItem()!=null)
- {
- AdminSoap.getInstance().removeParcel(parcels.getSelectionModel().getSelectedItem());
- selectedParcel=null;
- filter();
- updateAllParcels();
- }
- }
- private void updateAllParcels() {
- parcelObservableList.clear();
- parcelObservableList.setAll(AdminSoap.getInstance().getParcels());
- }
- @FXML
- public void trackParcel(ActionEvent actionEvent) {
- if(parcels.getSelectionModel().getSelectedItem()!=null)
- {
- AdminSoap.getInstance().trackParcel(parcels.getSelectionModel().getSelectedItem());
- updateAllParcels();
- }
- }
- @FXML
- public void addUpdate(ActionEvent actionEvent) {
- }
- @FXML
- public void addParcel(ActionEvent actionEvent) {
- Parcel inserted=new Parcel();
- inserted.setDestinationCity(destinationCity.getText());
- inserted.setName(name.getText());
- inserted.setSenderCity(senderCity.getText());
- inserted.setTracking(false);
- inserted.setSenderClient((Client) senderChoiceBox.getValue());
- inserted.setReceiverClient((Client) receiverChoiceBox.getValue());
- AdminSoap.getInstance().insertParcel(inserted);
- updateAllParcels();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement