aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/controller/OperationInArchiveController.java
blob: 17f0f551ee057ca2102f9b4f80d5ca450750c17a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.controller;

import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Operation;
import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Vehicle;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Collection;
import java.util.Objects;
import java.util.stream.Collectors;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.text.Text;

public class OperationInArchiveController {

    @FXML private Text txtAddress;
    @FXML private Text txtVehicles;
    @FXML private Text txtDate;
    @FXML private Text txtOpCode;

    static OperationInArchiveController create() throws IOException {
        FXMLLoader fxmlLoader =
                new FXMLLoader(
                        OperationInArchiveController.class.getResource(
                                "/fxml/OperationInArchive.fxml"));
        Node root = fxmlLoader.load();
        OperationInArchiveController result = fxmlLoader.getController();
        result.rootElement = root;

        return result;
    }

    public Node getRoot() {
        return rootElement;
    }

    private Node rootElement;

    public void set(Operation operation) {
        txtAddress.setText(operation.destination());
        String date = "am ";
        if (operation.created() != null) {
            LocalDateTime myDateTime =
                    LocalDateTime.ofInstant(
                            Objects.requireNonNull(operation.created()), ZoneOffset.UTC);
            date +=
                    myDateTime.getDayOfMonth()
                            + "."
                            + myDateTime.getMonth().getValue()
                            + "."
                            + myDateTime.getYear();
            txtDate.setText(date);
        } else {
            txtDate.setText("---");
        }
        txtOpCode.setText(operation.opCode());
        Collection<String> elements =
                operation.vehicles().stream().map(Vehicle::name).collect(Collectors.toList());
        String result = String.join(", ", elements);

        txtVehicles.setText(result);
    }
}