diff --git a/src/de/deadlocker8/budgetmaster/ui/Controller.java b/src/de/deadlocker8/budgetmaster/ui/Controller.java index 4b8239dec076ebeef916d6eaa4e876b9a46b702e..f265abba380075bdc74a86b98de17d449a0b4986 100644 --- a/src/de/deadlocker8/budgetmaster/ui/Controller.java +++ b/src/de/deadlocker8/budgetmaster/ui/Controller.java @@ -144,6 +144,7 @@ public class Controller { Platform.runLater(() -> { AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Bitte gibt zuerst deine Serverdaten ein!", icon, stage, null, false); + toggleAllTabsExceptSettings(true); tabPane.getSelectionModel().select(tabSettings); }); } @@ -233,6 +234,9 @@ public class Controller if(!alertIsShowing) { Platform.runLater(() -> { + toggleAllTabsExceptSettings(true); + tabPane.getSelectionModel().select(tabSettings); + alertIsShowing = true; Alert alert = new Alert(AlertType.ERROR); alert.setTitle("Fehler"); @@ -288,6 +292,14 @@ public class Controller { this.filterSettings = filterSettings; } + + public void toggleAllTabsExceptSettings(boolean disable) + { + tabHome.setDisable(disable); + tabPayments.setDisable(disable); + tabCategories.setDisable(disable); + tabCharts.setDisable(disable); + } public void about() { @@ -315,11 +327,13 @@ public class Controller categoryBudgets = connection.getCategoryBudgets(currentDate.getYear(), currentDate.getMonthOfYear()); paymentHandler.filter(newFilterSettings); + + toggleAllTabsExceptSettings(false); } catch(Exception e) { Logger.error(e); - categoryHandler = new CategoryHandler(null); + categoryHandler = new CategoryHandler(null); showConnectionErrorAlert(e.getMessage()); } diff --git a/src/de/deadlocker8/budgetmaster/ui/SettingsController.java b/src/de/deadlocker8/budgetmaster/ui/SettingsController.java index b59ac2dedbe534a3ab3ab8f4869bd6d72c011d47..ad3d1a6ff5fd5b94071f86ff49d91d36c6307c65 100644 --- a/src/de/deadlocker8/budgetmaster/ui/SettingsController.java +++ b/src/de/deadlocker8/budgetmaster/ui/SettingsController.java @@ -108,73 +108,73 @@ public class SettingsController String url = textFieldURL.getText().trim(); String secret = textFieldSecret.getText().trim(); String currency = textFieldCurrency.getText().trim(); - if(url != null && !url.equals("")) + if(url == null || url.equals("")) { - if(secret != null && !secret.equals("")) - { - if(currency != null && !currency.equals("")) - { - ArrayList<String> trustedHosts = new ArrayList<>(); - String trustedHostText = textAreaTrustedHosts.getText(); - String[] trustedHostsArray = trustedHostText.split("\n"); - for(String currentHost : trustedHostsArray) - { - currentHost = currentHost.trim(); - if(!currentHost.equals("")) - { - trustedHosts.add(currentHost); - } - } - setTextAreaTrustedHosts(trustedHosts); + AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Das Feld für die Server URL darf nicht leer sein!", controller.getIcon(), controller.getStage(), null, false); + return; + } - if(controller.getSettings() != null) - { - controller.getSettings().setUrl(url); - controller.getSettings().setSecret(HashUtils.hash(secret, Helpers.SALT)); - controller.getSettings().setCurrency(currency); - controller.getSettings().setRestActivated(radioButtonRestActivated.isSelected()); - controller.getSettings().setTrustedHosts(trustedHosts); - } - else - { - Settings settings = new Settings(); - settings.setUrl(url); - settings.setSecret(HashUtils.hash(secret, Helpers.SALT)); - settings.setCurrency(currency); - settings.setRestActivated(radioButtonRestActivated.isSelected()); - settings.setTrustedHosts(trustedHosts); - controller.setSettings(settings); - } + if(secret == null || secret.equals("")) + { + AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Das Server Passwortfeld darf nicht leer sein!", controller.getIcon(), controller.getStage(), null, false); + return; + } - try - { - Utils.saveSettings(controller.getSettings()); - } - catch(IOException e) - { - Logger.error(e); - AlertGenerator.showAlert(AlertType.ERROR, "Fehler", "", "Beim Speichern der Einstellungen ist ein Fehler aufgetreten", controller.getIcon(), controller.getStage(), null, false); - } - - textFieldSecret.setText("******"); - - controller.refresh(controller.getFilterSettings()); - controller.showNotification("Erfolgreich gespeichert"); - } - else - { - AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Bitte gib deine gewünschte Währung ein!", controller.getIcon(), controller.getStage(), null, false); - } - } - else + if(currency == null || currency.equals("")) + { + AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Bitte gib deine gewünschte Währung ein!", controller.getIcon(), controller.getStage(), null, false); + return; + } + + ArrayList<String> trustedHosts = new ArrayList<>(); + String trustedHostText = textAreaTrustedHosts.getText(); + String[] trustedHostsArray = trustedHostText.split("\n"); + for(String currentHost : trustedHostsArray) + { + currentHost = currentHost.trim(); + if(!currentHost.equals("")) { - AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Das Server Passwortfeld darf nicht leer sein!", controller.getIcon(), controller.getStage(), null, false); + trustedHosts.add(currentHost); } } + setTextAreaTrustedHosts(trustedHosts); + + if(controller.getSettings() != null) + { + if(!secret.equals("******")) + { + controller.getSettings().setSecret(HashUtils.hash(secret, Helpers.SALT)); + } + controller.getSettings().setUrl(url); + controller.getSettings().setCurrency(currency); + controller.getSettings().setRestActivated(radioButtonRestActivated.isSelected()); + controller.getSettings().setTrustedHosts(trustedHosts); + } else { - AlertGenerator.showAlert(AlertType.WARNING, "Warnung", "", "Das Feld für die Server URL darf nicht leer sein!", controller.getIcon(), controller.getStage(), null, false); + Settings settings = new Settings(); + settings.setUrl(url); + settings.setSecret(HashUtils.hash(secret, Helpers.SALT)); + settings.setCurrency(currency); + settings.setRestActivated(radioButtonRestActivated.isSelected()); + settings.setTrustedHosts(trustedHosts); + controller.setSettings(settings); + } + + try + { + Utils.saveSettings(controller.getSettings()); } + catch(IOException e) + { + Logger.error(e); + AlertGenerator.showAlert(AlertType.ERROR, "Fehler", "", "Beim Speichern der Einstellungen ist ein Fehler aufgetreten", controller.getIcon(), controller.getStage(), null, false); + } + + textFieldSecret.setText("******"); + + controller.refresh(controller.getFilterSettings()); + controller.showNotification("Erfolgreich gespeichert"); } public void backupDB() @@ -199,14 +199,14 @@ public class SettingsController { if(result.get().equals(verificationCode)) { - Stage modalStage = showModal("Vorgang läuft", "Die Datenbank wird gelöscht, bitte warten..."); - + Stage modalStage = showModal("Vorgang läuft", "Die Datenbank wird gelöscht, bitte warten..."); + Worker.runLater(() -> { try { ServerConnection connection = new ServerConnection(controller.getSettings()); connection.deleteDatabase(); - Platform.runLater(() -> { + Platform.runLater(() -> { if(modalStage != null) { modalStage.close(); @@ -216,7 +216,7 @@ public class SettingsController catch(Exception e) { Logger.error(e); - Platform.runLater(() -> { + Platform.runLater(() -> { controller.showConnectionErrorAlert(e.getMessage()); }); } @@ -229,7 +229,7 @@ public class SettingsController } } } - + private Stage showModal(String title, String message) { try @@ -238,7 +238,7 @@ public class SettingsController Parent root = (Parent)fxmlLoader.load(); Stage newStage = new Stage(); newStage.initOwner(controller.getStage()); - newStage.initModality(Modality.APPLICATION_MODAL); + newStage.initModality(Modality.APPLICATION_MODAL); newStage.setTitle(title); newStage.setScene(new Scene(root)); newStage.getIcons().add(controller.getIcon()); @@ -246,7 +246,7 @@ public class SettingsController ModalController newController = fxmlLoader.getController(); newController.init(newStage, message); newStage.show(); - + return newStage; } catch(IOException e)