From 216abf224e3d56b178719444e998fd496b5cd06d Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 1 Dec 2022 17:37:26 +0100 Subject: [PATCH] add severity and its list filter translatable --- .../ui/health/CheckDetailController.java | 40 ++++++++++++++++++- .../ui/health/ResultListCellController.java | 2 +- src/main/resources/i18n/strings.properties | 13 ++++-- 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/health/CheckDetailController.java b/src/main/java/org/cryptomator/ui/health/CheckDetailController.java index 9ce582882..7b6e9b85f 100644 --- a/src/main/java/org/cryptomator/ui/health/CheckDetailController.java +++ b/src/main/java/org/cryptomator/ui/health/CheckDetailController.java @@ -24,6 +24,7 @@ import javafx.scene.input.Clipboard; import javafx.scene.input.ClipboardContent; import javafx.util.StringConverter; import java.util.Arrays; +import java.util.ResourceBundle; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Stream; @@ -54,6 +55,7 @@ public class CheckDetailController implements FxController { private final Binding warnOrCritsExist; private final ResultListCellFactory resultListCellFactory; private final ResultFixApplier resultFixApplier; + private final ResourceBundle resourceBundle; private final BooleanProperty fixAllInfoResultsExecuted; private final BooleanBinding fixAllInfoResultsPossible; @@ -65,9 +67,10 @@ public class CheckDetailController implements FxController { private Subscription resultSubscription; @Inject - public CheckDetailController(ObjectProperty selectedTask, ResultListCellFactory resultListCellFactory, ResultFixApplier resultFixApplier) { + public CheckDetailController(ObjectProperty selectedTask, ResultListCellFactory resultListCellFactory, ResultFixApplier resultFixApplier, ResourceBundle resourceBundle) { this.resultListCellFactory = resultListCellFactory; this.resultFixApplier = resultFixApplier; + this.resourceBundle = resourceBundle; this.results = EasyBind.wrapList(FXCollections.observableArrayList()); this.check = selectedTask; this.checkState = selectedTask.flatMap(Check::stateProperty); @@ -115,7 +118,7 @@ public class CheckDetailController implements FxController { severityChoiceBox.getItems().add(null); severityChoiceBox.getItems().addAll(Arrays.stream(DiagnosticResult.Severity.values()).toList()); - //severityFilter.setConverter(new SeverityStringifier()); + severityChoiceBox.setConverter(new SeverityStringifier()); severityChoiceBox.setValue(null); fixStateChoiceBox.getItems().add(null); @@ -148,6 +151,39 @@ public class CheckDetailController implements FxController { } } + /* -- Internal classes -- */ + + class SeverityStringifier extends StringConverter { + + @Override + public String toString(Severity object) { + if (object == null) { + return resourceBundle.getString("health.result.severityFilter.none"); + } + return switch (object) { + case GOOD -> resourceBundle.getString("health.result.severityFilter.good"); + case INFO -> resourceBundle.getString("health.result.severityFilter.info"); + case WARN -> resourceBundle.getString("health.result.severityFilter.warn"); + case CRITICAL -> resourceBundle.getString("health.result.severityFilter.crit"); + }; + } + + @Override + public Severity fromString(String string) { + if (resourceBundle.getString("health.result.severityFilter.good").equals(string)) { + return Severity.GOOD; + } else if (resourceBundle.getString("health.result.severityFilter.info").equals(string)) { + return Severity.INFO; + } else if (resourceBundle.getString("health.result.severityFilter.warn").equals(string)) { + return Severity.WARN; + } else if (resourceBundle.getString("health.result.severityFilter.crit").equals(string)) { + return Severity.CRITICAL; + } else { + return null; + } + } + } + /* Getter/Setter */ public String getCheckName() { diff --git a/src/main/java/org/cryptomator/ui/health/ResultListCellController.java b/src/main/java/org/cryptomator/ui/health/ResultListCellController.java index 64cac79d3..35889ec26 100644 --- a/src/main/java/org/cryptomator/ui/health/ResultListCellController.java +++ b/src/main/java/org/cryptomator/ui/health/ResultListCellController.java @@ -104,7 +104,7 @@ public class ResultListCellController implements FxController { case GOOD -> "health.result.severityTip.good"; case INFO -> "health.result.severityTip.info"; case WARN -> "health.result.severityTip.warn"; - case CRITICAL -> "health.result.severityTip.critical"; + case CRITICAL -> "health.result.severityTip.crit"; }); } diff --git a/src/main/resources/i18n/strings.properties b/src/main/resources/i18n/strings.properties index fc9134381..95efdb2d3 100644 --- a/src/main/resources/i18n/strings.properties +++ b/src/main/resources/i18n/strings.properties @@ -225,10 +225,15 @@ health.check.detail.listFilters.fixState=Fix state health.check.detail.fixAllSpecificBtn=Fix all of type health.check.exportBtn=Export Report ## Result view -health.result.severityTip.good=Vault structure intact. -health.result.severityTip.info=Vault structure intact, fix suggested. -health.result.severityTip.warn=Vault structure corrupted, fix highly advised. -health.result.severityTip.critical=Vault structure corrupted, data loss determined. +health.result.severityFilter.none=Severity - All +health.result.severityFilter.good=Good +health.result.severityFilter.info=Info +health.result.severityFilter.warn=Warning +health.result.severityFilter.crit=Critical +health.result.severityTip.good=Severity: Good\nNormal vault structure. +health.result.severityTip.info=Severity: Info\nVault structure intact, fix suggested. +health.result.severityTip.warn=Severity: Warning\nVault structure corrupted, fix highly advised. +health.result.severityTip.crit=Severity: Critical\nVault structure corrupted, data loss determined. ## Fix Application health.fix.fixBtn=Fix health.fix.successTip=Fix successful