From 7225f646e9ddb6419a8ac484f31abdce40371ed5 Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Wed, 21 Apr 2021 22:04:35 +0200
Subject: [PATCH] #576 - refactored ImportEntityType enum:

added localiazation key and icon
---
 .../budgetmaster/services/EntityType.java     | 28 +++++++++++++++++++
 .../services/ImportEntityType.java            | 11 --------
 .../budgetmaster/services/ImportService.java  | 16 +++++------
 .../settings/SettingsController.java          | 16 +++++------
 .../resources/languages/base_de.properties    |  7 +++++
 .../resources/languages/base_en.properties    |  7 +++++
 6 files changed, 58 insertions(+), 27 deletions(-)
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/services/EntityType.java
 delete mode 100644 src/main/java/de/deadlocker8/budgetmaster/services/ImportEntityType.java

diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/EntityType.java b/src/main/java/de/deadlocker8/budgetmaster/services/EntityType.java
new file mode 100644
index 000000000..d88969b6f
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/EntityType.java
@@ -0,0 +1,28 @@
+package de.deadlocker8.budgetmaster.services;
+
+public enum EntityType
+{
+	ACCOUNT("account_balance"),
+	TRANSACTION("list"),
+	CATEGORY("label"),
+	TEMPLATE("file_copy"),
+	CHART("show_chart"),
+	IMAGE("image");
+
+	private final String icon;
+
+	EntityType(String icon)
+	{
+		this.icon = icon;
+	}
+
+	public String getIcon()
+	{
+		return icon;
+	}
+
+	public String getLocalizationKey()
+	{
+		return "entity." + this.name().toLowerCase();
+	}
+}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/ImportEntityType.java b/src/main/java/de/deadlocker8/budgetmaster/services/ImportEntityType.java
deleted file mode 100644
index 10fa9559d..000000000
--- a/src/main/java/de/deadlocker8/budgetmaster/services/ImportEntityType.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package de.deadlocker8.budgetmaster.services;
-
-public enum ImportEntityType
-{
-	ACCOUNT,
-	TRANSACTION,
-	CATEGORY,
-	TEMPLATE,
-	CHART,
-	IMAGE
-}
diff --git a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
index e22976045..67c2aa869 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/services/ImportService.java
@@ -59,19 +59,19 @@ public class ImportService
 		this.repeatingTransactionUpdater = repeatingTransactionUpdater;
 	}
 
-	public Map<ImportEntityType, Integer> importDatabase(Database database, AccountMatchList accountMatchList)
+	public Map<EntityType, Integer> importDatabase(Database database, AccountMatchList accountMatchList)
 	{
 		this.database = database;
 
-		final Map<ImportEntityType, Integer> numberOfImportedEntitiesByType = new EnumMap<>(ImportEntityType.class);
+		final Map<EntityType, Integer> numberOfImportedEntitiesByType = new EnumMap<>(EntityType.class);
 
 		LOGGER.debug("Importing database...");
-		numberOfImportedEntitiesByType.put(ImportEntityType.CATEGORY, importCategories());
-		numberOfImportedEntitiesByType.put(ImportEntityType.ACCOUNT, importAccounts(accountMatchList));
-		numberOfImportedEntitiesByType.put(ImportEntityType.TRANSACTION, importTransactions());
-		numberOfImportedEntitiesByType.put(ImportEntityType.CHART, importCharts());
-		numberOfImportedEntitiesByType.put(ImportEntityType.IMAGE, importImages());
-		numberOfImportedEntitiesByType.put(ImportEntityType.TEMPLATE, importTemplates());
+		numberOfImportedEntitiesByType.put(EntityType.CATEGORY, importCategories());
+		numberOfImportedEntitiesByType.put(EntityType.ACCOUNT, importAccounts(accountMatchList));
+		numberOfImportedEntitiesByType.put(EntityType.TRANSACTION, importTransactions());
+		numberOfImportedEntitiesByType.put(EntityType.CHART, importCharts());
+		numberOfImportedEntitiesByType.put(EntityType.IMAGE, importImages());
+		numberOfImportedEntitiesByType.put(EntityType.TEMPLATE, importTemplates());
 
 		LOGGER.debug("Updating repeating transactions...");
 		repeatingTransactionUpdater.updateRepeatingTransactions(DateTime.now());
diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
index 0c50370ae..1ea50d3eb 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
@@ -11,7 +11,7 @@ import de.deadlocker8.budgetmaster.database.Database;
 import de.deadlocker8.budgetmaster.database.DatabaseParser;
 import de.deadlocker8.budgetmaster.database.DatabaseService;
 import de.deadlocker8.budgetmaster.database.accountmatches.AccountMatchList;
-import de.deadlocker8.budgetmaster.services.ImportEntityType;
+import de.deadlocker8.budgetmaster.services.EntityType;
 import de.deadlocker8.budgetmaster.services.ImportService;
 import de.deadlocker8.budgetmaster.services.UpdateCheckService;
 import de.deadlocker8.budgetmaster.update.BudgetMasterUpdateService;
@@ -283,17 +283,17 @@ public class SettingsController extends BaseController
 	@PostMapping("/database/import")
 	public String importDatabase(WebRequest request, @ModelAttribute("Import") AccountMatchList accountMatchList, Model model)
 	{
-		final Map<ImportEntityType, Integer> numberOfImportedEntitiesByType = importService.importDatabase((Database) request.getAttribute("database", WebRequest.SCOPE_SESSION), accountMatchList);
+		final Map<EntityType, Integer> numberOfImportedEntitiesByType = importService.importDatabase((Database) request.getAttribute("database", WebRequest.SCOPE_SESSION), accountMatchList);
 		request.removeAttribute("database", RequestAttributes.SCOPE_SESSION);
 		prepareBasicModel(model, settingsService.getSettings());
 
 		final String message = Localization.getString("notification.settings.database.import.success",
-				numberOfImportedEntitiesByType.get(ImportEntityType.ACCOUNT),
-				numberOfImportedEntitiesByType.get(ImportEntityType.TRANSACTION),
-				numberOfImportedEntitiesByType.get(ImportEntityType.CATEGORY),
-				numberOfImportedEntitiesByType.get(ImportEntityType.TEMPLATE),
-				numberOfImportedEntitiesByType.get(ImportEntityType.CHART),
-				numberOfImportedEntitiesByType.get(ImportEntityType.IMAGE));
+				numberOfImportedEntitiesByType.get(EntityType.ACCOUNT),
+				numberOfImportedEntitiesByType.get(EntityType.TRANSACTION),
+				numberOfImportedEntitiesByType.get(EntityType.CATEGORY),
+				numberOfImportedEntitiesByType.get(EntityType.TEMPLATE),
+				numberOfImportedEntitiesByType.get(EntityType.CHART),
+				numberOfImportedEntitiesByType.get(EntityType.IMAGE));
 		WebRequestUtils.putNotification(request, new Notification(message, NotificationType.SUCCESS));
 
 		return "settings/settings";
diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties
index c63b6943a..5c1db78f0 100644
--- a/src/main/resources/languages/base_de.properties
+++ b/src/main/resources/languages/base_de.properties
@@ -538,3 +538,10 @@ statistics.number.of.templates={0} Vorlagen
 statistics.number.of.custom.charts={0} Eigene Diagramme
 statistics.number.of.categories={0} Kategorien
 statistics.first.transaction=Erste Buchung {0}
+
+entity.account=Konten
+entity.category=Kategorien
+entity.transaction=Buchungen
+entity.template=Vorlagen
+entity.chart=Diagramme
+entity.image=Bilder
diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties
index 48d3251b4..6f53a168a 100644
--- a/src/main/resources/languages/base_en.properties
+++ b/src/main/resources/languages/base_en.properties
@@ -536,3 +536,10 @@ statistics.number.of.templates={0} Templates
 statistics.number.of.custom.charts={0} Custom Charts
 statistics.number.of.categories={0} Categories
 statistics.first.transaction=First Transaction {0}
+
+entity.account=Accounts
+entity.category=Categories
+entity.transaction=Transactions
+entity.template=Templates
+entity.chart=Charts
+entity.image=Images
-- 
GitLab