From b7b356308050c5166038d290c42401f6f3397156 Mon Sep 17 00:00:00 2001 From: JPilson Date: Thu, 18 Apr 2024 20:48:40 +0200 Subject: [PATCH] feat: Add case format to ProjectSettingsState and fromSelector method to NamingConvention This commit adds a new attribute, `caseFormat`, to the `ProjectSettingsState` class. It also introduces a static method `fromSelector` in the `NamingConvention` class to transform a string into a NamingConvention enum. The transformation in `ProjectSettingsComponentState` has been updated to use this new method. --- .../java/de/marhali/easyi18n/settings/NamingConvention.java | 4 ++++ .../easyi18n/settings/ProjectSettingsComponentState.java | 4 +++- .../de/marhali/easyi18n/settings/ProjectSettingsState.java | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/marhali/easyi18n/settings/NamingConvention.java b/src/main/java/de/marhali/easyi18n/settings/NamingConvention.java index 9feaec5..5c21466 100644 --- a/src/main/java/de/marhali/easyi18n/settings/NamingConvention.java +++ b/src/main/java/de/marhali/easyi18n/settings/NamingConvention.java @@ -15,4 +15,8 @@ public enum NamingConvention { public String toString() { return super.name().toLowerCase(); } + static public NamingConvention fromSelector(String name) { + String formated = name.replace(" ","_"); + return valueOf(formated.toUpperCase()); + } } diff --git a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponentState.java b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponentState.java index a6eb5b8..e26bab4 100644 --- a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponentState.java +++ b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponentState.java @@ -9,6 +9,7 @@ import de.marhali.easyi18n.io.folder.FolderStrategyType; import de.marhali.easyi18n.settings.presets.Preset; import javax.swing.*; +import java.util.Objects; /** * Mandatory for state management for the project settings component. @@ -68,9 +69,10 @@ public class ProjectSettingsComponentState { state.setAssistance(assistance.isSelected()); state.setAlwaysFold(alwaysFold.isSelected()); + state.setFlavorTemplate(flavorTemplate.getText()); - state.setCaseFormat(NamingConvention.valueOf(KeyCaseFormater.getSelectedItem().toString().replace("Case", "").trim())); + state.setCaseFormat(NamingConvention.fromSelector(KeyCaseFormater.getSelectedItem().toString())); return state; } diff --git a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsState.java b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsState.java index 38b033c..93ad59b 100644 --- a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsState.java +++ b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsState.java @@ -95,6 +95,7 @@ public class ProjectSettingsState implements ProjectSettings { this.alwaysFold = defaults.isAlwaysFold(); this.flavorTemplate = defaults.getFlavorTemplate(); + this.caseFormat = defaults.getCaseFormat(); } @Override