Edit Log + Tour
This commit is contained in:
		@@ -10,3 +10,4 @@
 | 
			
		||||
2021-03-18 23:14:55 ERROR ViewModel -> DelTour:33 - Keine Tour ausgewählt!
 | 
			
		||||
2021-03-19 11:56:22 ERROR ViewModel -> DelTour:33 - Keine Tour ausgewählt!
 | 
			
		||||
2021-03-19 22:35:19 ERROR ViewModel -> DelTour:33 - Keine Tour ausgewählt!
 | 
			
		||||
2021-03-19 23:23:36 ERROR ViewModel -> DelTour:33 - Keine Tour ausgewählt!
 | 
			
		||||
 
 | 
			
		||||
@@ -32,26 +32,13 @@
 | 
			
		||||
  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<?import javafx.geometry.Insets?>
 | 
			
		||||
<?import javafx.scene.control.Button?>
 | 
			
		||||
<?import javafx.scene.control.Label?>
 | 
			
		||||
<?import javafx.scene.control.ListView?>
 | 
			
		||||
<?import javafx.scene.control.Menu?>
 | 
			
		||||
<?import javafx.scene.control.MenuBar?>
 | 
			
		||||
<?import javafx.scene.control.MenuItem?>
 | 
			
		||||
<?import javafx.scene.control.SplitPane?>
 | 
			
		||||
<?import javafx.scene.control.Tab?>
 | 
			
		||||
<?import javafx.scene.control.TabPane?>
 | 
			
		||||
<?import javafx.scene.control.TableColumn?>
 | 
			
		||||
<?import javafx.scene.control.TableView?>
 | 
			
		||||
<?import javafx.scene.control.TextField?>
 | 
			
		||||
<?import javafx.scene.layout.AnchorPane?>
 | 
			
		||||
<?import javafx.scene.layout.HBox?>
 | 
			
		||||
<?import javafx.scene.layout.VBox?>
 | 
			
		||||
<?import javafx.scene.paint.Color?>
 | 
			
		||||
<?import javafx.scene.text.Font?>
 | 
			
		||||
<?import javafx.geometry.*?>
 | 
			
		||||
<?import javafx.scene.control.*?>
 | 
			
		||||
<?import javafx.scene.layout.*?>
 | 
			
		||||
<?import javafx.scene.paint.*?>
 | 
			
		||||
<?import javafx.scene.text.*?>
 | 
			
		||||
 | 
			
		||||
<VBox prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/11.0.2" xmlns:fx="http://javafx.com/fxml/1" fx:controller="tourplaner.ui.TourplanerController">
 | 
			
		||||
<VBox prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="tourplaner.ui.TourplanerController">
 | 
			
		||||
  <children>
 | 
			
		||||
    <MenuBar VBox.vgrow="NEVER">
 | 
			
		||||
      <menus>
 | 
			
		||||
@@ -86,6 +73,7 @@
 | 
			
		||||
                  <Button fx:id="tourAdd" layoutX="58.0" mnemonicParsing="false" onAction="#addTour" text="+" />
 | 
			
		||||
                  <Label layoutX="14.0" layoutY="4.0" text="Tours" />
 | 
			
		||||
                  <Button fx:id="tourDel" layoutX="89.0" mnemonicParsing="false" onAction="#delTour" text="-" />
 | 
			
		||||
                  <Button layoutX="117.0" mnemonicParsing="false" onAction="#editTourBtn" text="Edit" />
 | 
			
		||||
               </children></AnchorPane>
 | 
			
		||||
            <TextField fx:id="sucheInput" promptText="Suche..." />
 | 
			
		||||
            <Button fx:id="sucheButton" mnemonicParsing="false" onAction="#suche" text="Suchen" />
 | 
			
		||||
@@ -156,7 +144,7 @@
 | 
			
		||||
                           <children>
 | 
			
		||||
                              <AnchorPane prefWidth="676.0">
 | 
			
		||||
                                 <children>
 | 
			
		||||
                                    <HBox id="HBox" alignment="CENTER_LEFT" prefWidth="702.0" spacing="5.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
 | 
			
		||||
                                    <HBox id="HBox" alignment="CENTER_LEFT" layoutY="2.0" prefWidth="702.0" spacing="5.0" AnchorPane.bottomAnchor="-2.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="2.0">
 | 
			
		||||
                                       <children>
 | 
			
		||||
                                          <Label text="Logs:">
 | 
			
		||||
                                             <HBox.margin>
 | 
			
		||||
@@ -170,9 +158,10 @@
 | 
			
		||||
                                          </Button>
 | 
			
		||||
                                          <Button fx:id="logDel" mnemonicParsing="false" onAction="#delLog" prefWidth="21.0" text="-" textAlignment="CENTER">
 | 
			
		||||
                                             <HBox.margin>
 | 
			
		||||
                                                <Insets right="10.0" />
 | 
			
		||||
                                                <Insets />
 | 
			
		||||
                                             </HBox.margin>
 | 
			
		||||
                                          </Button>
 | 
			
		||||
                                          <Button mnemonicParsing="false" onAction="#editLogBtn" text="Edit" />
 | 
			
		||||
                                       </children>
 | 
			
		||||
                                       <padding>
 | 
			
		||||
                                          <Insets bottom="3.0" left="3.0" right="3.0" top="3.0" />
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
package tourplaner.ui;
 | 
			
		||||
 | 
			
		||||
import javafx.event.EventHandler;
 | 
			
		||||
import javafx.scene.Scene;
 | 
			
		||||
import javafx.scene.control.*;
 | 
			
		||||
import javafx.scene.control.Label;
 | 
			
		||||
@@ -7,6 +8,7 @@ import javafx.scene.control.TextArea;
 | 
			
		||||
import javafx.scene.image.Image;
 | 
			
		||||
import javafx.scene.layout.*;
 | 
			
		||||
import javafx.stage.Stage;
 | 
			
		||||
import javafx.stage.WindowEvent;
 | 
			
		||||
import tourplaner.business.ConfigHelper;
 | 
			
		||||
 | 
			
		||||
import java.io.PrintWriter;
 | 
			
		||||
@@ -113,10 +115,10 @@ public class AlertHelper {
 | 
			
		||||
     * @param msg Nachricht des Dialogs
 | 
			
		||||
     * @return Null bei keiner eingabe
 | 
			
		||||
     */
 | 
			
		||||
    public static String inputText(String title, String header, String msg) {
 | 
			
		||||
    public static String inputText(String title, String header, String msg, String content) {
 | 
			
		||||
        String returnStr = "";
 | 
			
		||||
        while (returnStr.isEmpty()) {
 | 
			
		||||
            Optional<String> result = inputHelper(title, header, msg);
 | 
			
		||||
            Optional<String> result = inputHelper(title, header, msg, content);
 | 
			
		||||
            AtomicReference<String> returnText = new AtomicReference<>("");
 | 
			
		||||
            result.ifPresent(returnText::set);
 | 
			
		||||
            returnStr = returnText.get();
 | 
			
		||||
@@ -136,11 +138,12 @@ public class AlertHelper {
 | 
			
		||||
     * @param msg Nachricht des Dialogs
 | 
			
		||||
     * @return Result des Inputs
 | 
			
		||||
     */
 | 
			
		||||
    private static Optional<String> inputHelper(String title, String header, String msg){
 | 
			
		||||
        TextInputDialog dialog = new TextInputDialog();
 | 
			
		||||
    private static Optional<String> inputHelper(String title, String header, String msg, String content){
 | 
			
		||||
        TextInputDialog dialog = new TextInputDialog(content);
 | 
			
		||||
        dialog.setTitle(title);
 | 
			
		||||
        dialog.setHeaderText(header);
 | 
			
		||||
        dialog.setContentText(msg);
 | 
			
		||||
 | 
			
		||||
        Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
 | 
			
		||||
        stage.getIcons().add(
 | 
			
		||||
                new Image("file:"+ ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "start", "logo")));
 | 
			
		||||
@@ -149,48 +152,53 @@ public class AlertHelper {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Positive Nummer eingabe. Wenn Convertierung zu int nicht klappt -> -1
 | 
			
		||||
     * @param title Title des Dialogs
 | 
			
		||||
     * @param header Header des Dialogs
 | 
			
		||||
     * @param msg Nachricht des Dialogs
 | 
			
		||||
     * @return -1 bei error sonst ein Int
 | 
			
		||||
     * @return -1.0 bei error sonst ein double
 | 
			
		||||
     */
 | 
			
		||||
    public static int inputNumber(String title, String header, String msg) {
 | 
			
		||||
        int returnInt = -2;
 | 
			
		||||
        while (returnInt <= 0 ) {
 | 
			
		||||
            Optional<String> result = inputHelper(title, header, msg);
 | 
			
		||||
            AtomicReference<Integer> returnText = new AtomicReference<Integer>(-1);
 | 
			
		||||
    public static double inputNumber(String title, String header, String msg, String content) {
 | 
			
		||||
        double returnDouble = -2.0;
 | 
			
		||||
        while (returnDouble < -1.0) {
 | 
			
		||||
            Optional<String> result = inputHelper(title, header, msg, content);
 | 
			
		||||
            AtomicReference<Double> returnText = new AtomicReference<Double>(-1.0);
 | 
			
		||||
            result.ifPresent(s -> {
 | 
			
		||||
                try {
 | 
			
		||||
                    int resultInt = Integer.parseInt(result.get());
 | 
			
		||||
                    returnText.set(resultInt);
 | 
			
		||||
                    if (resultInt < 0){
 | 
			
		||||
                    double resultDouble = Double.parseDouble(result.get());
 | 
			
		||||
//                    int resultInt = Integer.parseInt(result.get());
 | 
			
		||||
                    returnText.set(resultDouble);
 | 
			
		||||
                    if (resultDouble < 0){
 | 
			
		||||
                        AlertHelper.warn(title, ConfigHelper.getLangIniString("achtung"), ConfigHelper.getLangIniString("nurpositivezahlen"));
 | 
			
		||||
                    }
 | 
			
		||||
                } catch (NumberFormatException e) {
 | 
			
		||||
                    AlertHelper.warn(title, ConfigHelper.getLangIniString("achtung"), ConfigHelper.getLangIniString("nurzahlen"));
 | 
			
		||||
                    returnText.set(-1);
 | 
			
		||||
                    returnText.set(-2.0);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
            });
 | 
			
		||||
            returnInt = returnText.get();
 | 
			
		||||
            returnDouble = returnText.get();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return returnInt;
 | 
			
		||||
        return returnDouble;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Date Picker Dialog, sobald ein Datum ausgewählt wurde, wird es automatisch bestätigt und der dialog geschlossen
 | 
			
		||||
     * @param title Name des Dialogs
 | 
			
		||||
     * @param content Aktuelles datum
 | 
			
		||||
     * @return Gewähltes datum
 | 
			
		||||
     */
 | 
			
		||||
    public static LocalDate datePicker(String title){
 | 
			
		||||
        final DatePicker datePicker = new DatePicker(LocalDate.now());
 | 
			
		||||
    public static LocalDate datePicker(LocalDate content){
 | 
			
		||||
        final DatePicker datePicker = new DatePicker(content);
 | 
			
		||||
        final Stage stage = new Stage();
 | 
			
		||||
        stage.getIcons().add(
 | 
			
		||||
                new Image("file:"+ ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "start", "logo")));
 | 
			
		||||
        AtomicReference<LocalDate> selectedDate = new AtomicReference<>();
 | 
			
		||||
        stage.setOnCloseRequest(ev -> {
 | 
			
		||||
           stage.close();
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        datePicker.setOnAction(event -> {
 | 
			
		||||
            LocalDate date = datePicker.getValue();
 | 
			
		||||
            System.out.println("Selected date: " + date);
 | 
			
		||||
 
 | 
			
		||||
@@ -40,6 +40,16 @@ public class TourplanerController implements Initializable {
 | 
			
		||||
    public TableView<Log> logTableView;
 | 
			
		||||
    public TableColumn<Log, String> logDauerCol, logStreckeCol, logDatumCol;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @FXML
 | 
			
		||||
    private void editTourBtn(){
 | 
			
		||||
        this.viewModel.editTour();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @FXML
 | 
			
		||||
    private void editLogBtn(){
 | 
			
		||||
        this.viewModel.editLog();
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
     * Öffnet github im standart browser
 | 
			
		||||
     *
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,6 @@ package tourplaner.viewmodels;
 | 
			
		||||
 | 
			
		||||
import javafx.collections.FXCollections;
 | 
			
		||||
import javafx.collections.ObservableList;
 | 
			
		||||
import javafx.fxml.FXML;
 | 
			
		||||
import tourplaner.ui.AlertHelper;
 | 
			
		||||
import tourplaner.business.ConfigHelper;
 | 
			
		||||
import tourplaner.business.LogHelper;
 | 
			
		||||
@@ -15,6 +14,7 @@ import java.net.URI;
 | 
			
		||||
import java.net.URISyntaxException;
 | 
			
		||||
import java.time.LocalDate;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
import java.util.concurrent.atomic.AtomicInteger;
 | 
			
		||||
import java.util.concurrent.atomic.AtomicReference;
 | 
			
		||||
 | 
			
		||||
public class ViewModel {
 | 
			
		||||
@@ -28,56 +28,53 @@ public class ViewModel {
 | 
			
		||||
    private Log selectedLog;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Fügt einen Log eintrag zu einer Tour hinzu.
 | 
			
		||||
     * Ist keine Tour ausgewählt, dann kommt eine Warnung an den User!
 | 
			
		||||
     * Bearbeitet eine bereits bestehende Tour
 | 
			
		||||
     */
 | 
			
		||||
    @FXML
 | 
			
		||||
    public void addLog(){
 | 
			
		||||
    public void editTour(){
 | 
			
		||||
        if (this.selectedTour == null){
 | 
			
		||||
            AlertHelper.warn(ConfigHelper.getLangIniString("achtung"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("keinetourselected"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("logtournotselectedmsg"));
 | 
			
		||||
        }else {
 | 
			
		||||
            AtomicInteger index = new AtomicInteger(-1);
 | 
			
		||||
            AtomicInteger aktIndex = new AtomicInteger(-1);
 | 
			
		||||
            this.tourData.forEach(s -> {
 | 
			
		||||
                index.getAndIncrement();
 | 
			
		||||
                if (s.getName().equals(this.selectedTour.getName())) {
 | 
			
		||||
                    AtomicReference<String> newId = new AtomicReference<>();
 | 
			
		||||
                    newId.set(UUID.randomUUID().toString());
 | 
			
		||||
                    this.logData.forEach(ss -> {
 | 
			
		||||
                        if (ss.getId().equals(newId.get())) {
 | 
			
		||||
                            newId.set(UUID.randomUUID().toString());
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                    LocalDate neuesDatum = null;
 | 
			
		||||
                    while (neuesDatum == null) {
 | 
			
		||||
                        neuesDatum = AlertHelper.datePicker(ConfigHelper.getLangIniString("datum"));
 | 
			
		||||
                    }
 | 
			
		||||
                    double neueDauer = AlertHelper.inputNumber(ConfigHelper.getLangIniString("dauer"),
 | 
			
		||||
                            ConfigHelper.getLangIniString("dauermsg"),
 | 
			
		||||
                            ConfigHelper.getLangIniString("dauer") +
 | 
			
		||||
                                    ConfigHelper.getLangIniString("doppelpunkt"));
 | 
			
		||||
                    double neueStrecke = AlertHelper.inputNumber(ConfigHelper.getLangIniString("strecke"),
 | 
			
		||||
                            ConfigHelper.getLangIniString("streckemsg"),
 | 
			
		||||
                            ConfigHelper.getLangIniString("strecke") +
 | 
			
		||||
                                    ConfigHelper.getLangIniString("doppelpunkt"));
 | 
			
		||||
 | 
			
		||||
                    Log newLog = new Log(newId.get(), neueDauer + "", neuesDatum, neueStrecke);
 | 
			
		||||
                    this.logData.add(newLog);
 | 
			
		||||
                    s.addLog(newLog);
 | 
			
		||||
                    aktIndex.set(index.intValue());
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
            if(aktIndex.intValue() != -1){
 | 
			
		||||
                Tour tourToEdit = this.tourData.get(aktIndex.intValue());
 | 
			
		||||
                this.tourData.removeIf(tour -> tour.getName().equals(this.selectedTour.getName()));
 | 
			
		||||
                this.tourNamen.removeIf(tour -> tour.equals(this.selectedTour.getName()));
 | 
			
		||||
                System.out.println(tourToEdit.getLogs());
 | 
			
		||||
                tourNameInput(this.selectedTour.getName());
 | 
			
		||||
                tourToEdit.setName(this.neueTourName);
 | 
			
		||||
                tourStartInput(this.selectedTour.getStart());
 | 
			
		||||
                tourToEdit.setStart(this.neueTourStart);
 | 
			
		||||
                tourZielInput(this.selectedTour.getZiel());
 | 
			
		||||
                tourToEdit.setZiel(this.neueTourZiel);
 | 
			
		||||
                System.out.println(tourToEdit.getName());
 | 
			
		||||
 | 
			
		||||
                this.tourData.add(new Tour(this.neueTourName, "TBD", "TBD", 0, this.neueTourStart, this.neueTourZiel));
 | 
			
		||||
                this.tourNamen.add(this.neueTourName);
 | 
			
		||||
//                this.tourData.add(tourToEdit);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Fügt eine neue Tour hinzu
 | 
			
		||||
     * Input des Tour Namen wird so lange durchgeführt, bis er korrekt ist. Das heißt:
 | 
			
		||||
     * er darf nicht schon vorhanden sein und er darf nicht Null sein
 | 
			
		||||
     */
 | 
			
		||||
    public void addTour(){
 | 
			
		||||
    private void tourNameInput(String content){
 | 
			
		||||
        while(this.neueTourName == null) {
 | 
			
		||||
            this.neueTourName = AlertHelper.inputText(ConfigHelper.getLangIniString("tournametitle"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("tournameheader"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("tournamemsg"));
 | 
			
		||||
                    ConfigHelper.getLangIniString("tournamemsg"), content);
 | 
			
		||||
            if (getTour(this.neueTourName) != null) {
 | 
			
		||||
                AlertHelper.warn(ConfigHelper.getLangIniString("achtung"),
 | 
			
		||||
                        ConfigHelper.getLangIniString("namevergebenheader"),
 | 
			
		||||
@@ -87,16 +84,40 @@ public class ViewModel {
 | 
			
		||||
                this.neueTourName = null;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Input der Startpunkt der Tour
 | 
			
		||||
     * Wird erst beendet wenn die eingabe erfolgreich war
 | 
			
		||||
     */
 | 
			
		||||
    private void tourStartInput(String content){
 | 
			
		||||
        while(this.neueTourStart == null){
 | 
			
		||||
            this.neueTourStart = AlertHelper.inputText(ConfigHelper.getLangIniString("startpunkttitle"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("startpunktheader"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("startpunktmsg"));
 | 
			
		||||
                    ConfigHelper.getLangIniString("startpunktmsg"), content);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Input des Zielpunktes der Tour
 | 
			
		||||
     * Wird erst beendet wenn die eingabe erfolgreich war
 | 
			
		||||
     */
 | 
			
		||||
    private void tourZielInput(String content){
 | 
			
		||||
        while(this.neueTourZiel == null){
 | 
			
		||||
            this.neueTourZiel = AlertHelper.inputText(ConfigHelper.getLangIniString("zielpunkttitle"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("zielpunktheader"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("zielpunktmsg"));
 | 
			
		||||
                    ConfigHelper.getLangIniString("zielpunktmsg"), content);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Fügt eine neue Tour hinzu
 | 
			
		||||
     */
 | 
			
		||||
    public void addTour(){
 | 
			
		||||
        tourNameInput("");
 | 
			
		||||
        tourStartInput("");
 | 
			
		||||
        tourZielInput("");
 | 
			
		||||
        if (getTour(this.neueTourName) == null) {
 | 
			
		||||
            tourData.add(new Tour(this.neueTourName, "TBD", "TBD", 0, this.neueTourStart, this.neueTourZiel));
 | 
			
		||||
            tourNamen.add(this.neueTourName);
 | 
			
		||||
@@ -106,6 +127,123 @@ public class ViewModel {
 | 
			
		||||
        this.neueTourName = null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private boolean keineTourSelected(){
 | 
			
		||||
        if (this.selectedTour == null){
 | 
			
		||||
            AlertHelper.warn(ConfigHelper.getLangIniString("achtung"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("keinetourselected"),
 | 
			
		||||
                    ConfigHelper.getLangIniString("logtournotselectedmsg"));
 | 
			
		||||
            return true;
 | 
			
		||||
        }else {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Bearbeitet einen gewählten Log eintrag
 | 
			
		||||
     */
 | 
			
		||||
    public void editLog(){
 | 
			
		||||
        AtomicReference<Tour> tourAkt = new AtomicReference<>();
 | 
			
		||||
        AtomicReference<Log> logAkt = new AtomicReference<>();
 | 
			
		||||
        this.tourData.forEach(tourd -> {
 | 
			
		||||
            if(tourd.getName().equals(this.selectedTour.getName())) {
 | 
			
		||||
                tourd.getLogs().forEach(log -> {
 | 
			
		||||
                    if(this.selectedLog.getId().equals(log.getId())){
 | 
			
		||||
                        logAkt.set(log);
 | 
			
		||||
                        tourAkt.set(tourd);
 | 
			
		||||
                    }
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
        double dauer = dauerInput(this.selectedLog.getDauer());
 | 
			
		||||
        double strecke = -1;
 | 
			
		||||
        LocalDate datum = null;
 | 
			
		||||
        if (dauer >= 0) {
 | 
			
		||||
            strecke = streckeInput(this.selectedLog.getStrecke() + "");
 | 
			
		||||
            if (strecke >= 0) {
 | 
			
		||||
                datum = dateInput(this.selectedLog.getDatum());
 | 
			
		||||
                if(datum != null){
 | 
			
		||||
                    Log newLog = new Log(this.selectedLog.getId(), dauer + "", datum,strecke);
 | 
			
		||||
                    this.logData.removeIf(ld -> ld.getId().equals(this.selectedLog.getId()));
 | 
			
		||||
                    this.logData.add(newLog);
 | 
			
		||||
                    tourAkt.get().delLog(this.selectedLog.getId());
 | 
			
		||||
                    tourAkt.get().addLog(newLog);
 | 
			
		||||
                    this.tourData.removeIf(td -> td.getName().equals(this.selectedTour.getName()));
 | 
			
		||||
                    this.tourData.add(tourAkt.get());
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Eingabe der Strecke bis diese Korrekt ist
 | 
			
		||||
     * @return Korrekte eingegebene Strecke
 | 
			
		||||
     */
 | 
			
		||||
    private double streckeInput(String content){
 | 
			
		||||
        return AlertHelper.inputNumber(ConfigHelper.getLangIniString("strecke"),
 | 
			
		||||
                ConfigHelper.getLangIniString("streckemsg"),
 | 
			
		||||
                ConfigHelper.getLangIniString("strecke") +
 | 
			
		||||
                        ConfigHelper.getLangIniString("doppelpunkt"), content);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Eingabe der Dauer bis sie korrekt ist
 | 
			
		||||
     * @return Die eingegebene Dauer
 | 
			
		||||
     */
 | 
			
		||||
    private double dauerInput(String content){
 | 
			
		||||
        return AlertHelper.inputNumber(ConfigHelper.getLangIniString("dauer"),
 | 
			
		||||
                ConfigHelper.getLangIniString("dauermsg"),
 | 
			
		||||
                ConfigHelper.getLangIniString("dauer") +
 | 
			
		||||
                        ConfigHelper.getLangIniString("doppelpunkt"), content);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Datum eingabe bis diese Korrekt ist
 | 
			
		||||
     * @return Das eingegebene korekte Datum
 | 
			
		||||
     */
 | 
			
		||||
    private LocalDate dateInput(LocalDate date){
 | 
			
		||||
        LocalDate neuesDatum = null;
 | 
			
		||||
        neuesDatum = AlertHelper.datePicker(date);
 | 
			
		||||
        System.out.println(neuesDatum);
 | 
			
		||||
        return neuesDatum;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Fügt einen Log eintrag zu einer Tour hinzu.
 | 
			
		||||
     * Ist keine Tour ausgewählt, dann kommt eine Warnung an den User!
 | 
			
		||||
     */
 | 
			
		||||
    public void addLog(){
 | 
			
		||||
        if (!keineTourSelected()){
 | 
			
		||||
            this.tourData.forEach(s -> {
 | 
			
		||||
                if (s.getName().equals(this.selectedTour.getName())) {
 | 
			
		||||
                    AtomicReference<String> newId = new AtomicReference<>();
 | 
			
		||||
                    newId.set(UUID.randomUUID().toString());
 | 
			
		||||
                    this.logData.forEach(ss -> {
 | 
			
		||||
                        if (ss.getId().equals(newId.get())) {
 | 
			
		||||
                            newId.set(UUID.randomUUID().toString());
 | 
			
		||||
                        }
 | 
			
		||||
                    });
 | 
			
		||||
                    double dauer = dauerInput("");
 | 
			
		||||
                    double strecke;
 | 
			
		||||
                    LocalDate date = null;
 | 
			
		||||
                    if(dauer >= 0) {
 | 
			
		||||
                        strecke = streckeInput("");
 | 
			
		||||
                        if (strecke >= 0.0) {
 | 
			
		||||
                            date = dateInput(LocalDate.now());
 | 
			
		||||
                                if (date != null){
 | 
			
		||||
                                    Log newLog = new Log(newId.get(), dauer + "", date, strecke);
 | 
			
		||||
                                    this.logData.add(newLog);
 | 
			
		||||
                                    s.addLog(newLog);
 | 
			
		||||
                                }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            });
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Entfernt ein Log anhand des selectierten Logs
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user