diff --git a/conf.ini.sample b/conf.ini.sample index b92bbcb..485886a 100644 --- a/conf.ini.sample +++ b/conf.ini.sample @@ -1,5 +1,7 @@ [start] message = Tour Planer App gestartet +apptitle = Tour Planer +logo = logo.png [lang] lang = langde diff --git a/langde.ini b/langde.ini index 82dc7e6..0122235 100644 --- a/langde.ini +++ b/langde.ini @@ -30,4 +30,7 @@ dauermsg = Dauer des Logeintrages doppelpunkt = : fktnichtimplementiert = Diese Funktion ist noch nicht Implementiert vergessenodernochnichtsoweit = Entweder hat DerGeorg darauf vergessen oder ist noch nicht so weit gekommen um das zu machen! -logtournotselectedmsg = Bitte wählen Sie zuerst eine Tour aus, bevor sie einen log Eintrag erstellen! \ No newline at end of file +logtournotselectedmsg = Bitte wählen Sie zuerst eine Tour aus, bevor sie einen log Eintrag erstellen! +keintextimfeld = Bitte tragen Sie einen Text in das Feld ein! +nurzahlen = Bitte geben Sie nur Zahlen an! +nurpositivezahlen = Bitte geben Sie nur positive Zahlen an! diff --git a/log/log4j/log.out b/log/log4j/log.out index ee626a4..655ab23 100644 --- a/log/log4j/log.out +++ b/log/log4j/log.out @@ -6,3 +6,5 @@ 2021-03-18 22:58:33 ERROR ViewModel -> DelTour:33 - Keine Tour ausgewählt! 2021-03-18 22:58:34 ERROR ViewModel -> DelTour:33 - Keine Tour ausgewählt! 2021-03-18 23:05:00 ERROR ViewModel -> DelTour:33 - Keine Tour ausgewählt! +2021-03-18 23:11:45 ERROR ViewModel -> DelTour:33 - Keine Tour ausgewählt! +2021-03-18 23:14:55 ERROR ViewModel -> DelTour:33 - Keine Tour ausgewählt! diff --git a/logo.png b/logo.png new file mode 100644 index 0000000..7a5c7b8 Binary files /dev/null and b/logo.png differ diff --git a/src/tourplaner/Main.java b/src/tourplaner/Main.java index 6cbe5dd..31a48eb 100644 --- a/src/tourplaner/Main.java +++ b/src/tourplaner/Main.java @@ -4,6 +4,7 @@ import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; +import javafx.scene.image.Image; import javafx.stage.Stage; import tourplaner.business.ConfigHelper; @@ -21,6 +22,7 @@ public class Main extends Application { public void start(Stage primaryStage) throws IOException { Parent root = FXMLLoader.load(Main.class.getResource("tourplaner.fxml")); primaryStage.setTitle(ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "start", "apptitle")); + primaryStage.getIcons().add(new Image("file:"+ ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "start", "logo"))); primaryStage.setScene(new Scene(root, 600, 600)); primaryStage.show(); } diff --git a/src/tourplaner/business/AlertHelper.java b/src/tourplaner/business/AlertHelper.java index 79bd7c0..136e83f 100644 --- a/src/tourplaner/business/AlertHelper.java +++ b/src/tourplaner/business/AlertHelper.java @@ -4,6 +4,7 @@ import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.control.Label; import javafx.scene.control.TextArea; +import javafx.scene.image.Image; import javafx.scene.layout.*; import javafx.scene.text.Text; import javafx.stage.Stage; @@ -100,7 +101,9 @@ public class AlertHelper { alert.setTitle(title); alert.setHeaderText(header); alert.setContentText(msg); - + Stage stage = (Stage) alert.getDialogPane().getScene().getWindow(); + stage.getIcons().add( + new Image("file:"+ ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "start", "logo"))); alert.showAndWait(); } @@ -112,18 +115,39 @@ public class AlertHelper { * @return Null bei keiner eingabe */ public static String inputText(String title, String header, String msg) { + String returnStr = ""; + while (returnStr.isEmpty()) { + Optional result = inputHelper(title, header, msg); + AtomicReference returnText = new AtomicReference<>(""); + result.ifPresent(returnText::set); + returnStr = returnText.get(); + if (returnStr.isEmpty()) { + AlertHelper.warn(ConfigHelper.getLangIniString("tournametitle"), + ConfigHelper.getLangIniString("achtung"), + ConfigHelper.getLangIniString("keintextimfeld")); + } + } + return returnStr; + } + + /** + * Erstellt einen Text Input Dialog + * @param title Title des Dialogs + * @param header Header des Dialogs + * @param msg Nachricht des Dialogs + * @return Result des Inputs + */ + private static Optional inputHelper(String title, String header, String msg){ TextInputDialog dialog = new TextInputDialog(); dialog.setTitle(title); dialog.setHeaderText(header); dialog.setContentText(msg); - Optional result = dialog.showAndWait(); - AtomicReference returnText = new AtomicReference<>(""); - result.ifPresent(returnText::set); - if(!returnText.get().isEmpty()){ - return returnText.get(); - }else{ - return null; - } + Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow(); + stage.getIcons().add( + new Image("file:"+ ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "start", "logo"))); + + return dialog.showAndWait(); + } /** @@ -134,23 +158,27 @@ public class AlertHelper { * @return -1 bei error sonst ein Int */ public static int inputNumber(String title, String header, String msg) { - TextInputDialog dialog = new TextInputDialog(); - dialog.setTitle(title); - dialog.setHeaderText(header); - dialog.setContentText(msg); - Optional result = dialog.showAndWait(); - AtomicReference returnText = new AtomicReference(-1); - result.ifPresent(s -> { - try { - int resultInt = Integer.parseInt(result.get()); - returnText.set(resultInt); - }catch (NumberFormatException e){ - AlertHelper.warn(ConfigHelper.getLangIniString("achtung"), "Bitte nur Zahlen eingeben!", "Bitte geben sie nur Zahlen von 0 - 10 an!"); - returnText.set(-1); - } - }); + int returnInt = -2; + while (returnInt <= 0 ) { + Optional result = inputHelper(title, header, msg); + AtomicReference returnText = new AtomicReference(-1); + result.ifPresent(s -> { + try { + int resultInt = Integer.parseInt(result.get()); + returnText.set(resultInt); + if (resultInt < 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); + } - return returnText.get(); + }); + returnInt = returnText.get(); + } + + return returnInt; } /** @@ -161,6 +189,8 @@ public class AlertHelper { public static LocalDate datePicker(String title){ final DatePicker datePicker = new DatePicker(LocalDate.now()); final Stage stage = new Stage(); + stage.getIcons().add( + new Image("file:"+ ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "start", "logo"))); AtomicReference selectedDate = new AtomicReference<>(); datePicker.setOnAction(event -> { LocalDate date = datePicker.getValue(); diff --git a/src/tourplaner/ui/TourplanerController.java b/src/tourplaner/ui/TourplanerController.java index 5795c5c..eca225b 100644 --- a/src/tourplaner/ui/TourplanerController.java +++ b/src/tourplaner/ui/TourplanerController.java @@ -182,24 +182,18 @@ public class TourplanerController implements Initializable { newId.set(UUID.randomUUID().toString()); } }); - double neueDauer = -1; - double neueStrecke = -1; LocalDate neuesDatum = null; while (neuesDatum == null) { neuesDatum = AlertHelper.datePicker(ConfigHelper.getLangIniString("datum")); } - while (neueDauer == -1) { - neueDauer = AlertHelper.inputNumber(ConfigHelper.getLangIniString("dauer"), + double neueDauer = AlertHelper.inputNumber(ConfigHelper.getLangIniString("dauer"), ConfigHelper.getLangIniString("dauermsg"), ConfigHelper.getLangIniString("dauer") + ConfigHelper.getLangIniString("doppelpunkt")); - } - while (neueStrecke == -1) { - neueStrecke = AlertHelper.inputNumber(ConfigHelper.getLangIniString("strecke"), + 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); logData.add(newLog);