diff --git a/src/main/java/de/marhali/easyi18n/settings/ProjectSettings.java b/src/main/java/de/marhali/easyi18n/settings/ProjectSettings.java index e4c94a6..5da91a5 100644 --- a/src/main/java/de/marhali/easyi18n/settings/ProjectSettings.java +++ b/src/main/java/de/marhali/easyi18n/settings/ProjectSettings.java @@ -17,6 +17,7 @@ public interface ProjectSettings { @NotNull ParserStrategyType getParserStrategy(); @NotNull String getFilePattern(); + boolean isIncludeSubDirs(); boolean isSorting(); // Editor Configuration diff --git a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponent.java b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponent.java index 98b1dee..9018437 100644 --- a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponent.java +++ b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponent.java @@ -51,6 +51,7 @@ public class ProjectSettingsComponent extends ProjectSettingsComponentState { .addLabeledComponent(bundle.getString("settings.resource.path.title"), constructLocalesDirectoryField(), 1, false) .addLabeledComponent(bundle.getString("settings.resource.strategy"), constructFileStrategyPanel(), 1, false) .addVerticalGap(12) + .addComponent(constructIncludeSubDirsField()) .addComponent(constructSortingField()) .addVerticalGap(24) .addComponent(new TitledSeparator(bundle.getString("settings.editor.title"))) @@ -146,6 +147,12 @@ public class ProjectSettingsComponent extends ProjectSettingsComponentState { return panel; } + private JComponent constructIncludeSubDirsField() { + includeSubDirs = new JBCheckBox(bundle.getString("settings.resource.nesting.title")); + includeSubDirs.setToolTipText(bundle.getString("settings.resource.nesting.tooltip")); + return includeSubDirs; + } + private JComponent constructSortingField() { sorting = new JBCheckBox(bundle.getString("settings.resource.sorting.title")); sorting.setToolTipText(bundle.getString("settings.resource.sorting.tooltip")); diff --git a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponentState.java b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponentState.java index bf682e8..863dd44 100644 --- a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponentState.java +++ b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsComponentState.java @@ -23,6 +23,7 @@ public class ProjectSettingsComponentState { protected ComboBox parserStrategy; protected JTextField filePattern; + protected JCheckBox includeSubDirs; protected JCheckBox sorting; // Editor configuration @@ -48,6 +49,7 @@ public class ProjectSettingsComponentState { state.setParserStrategy(ParserStrategyType.fromIndex(parserStrategy.getSelectedIndex())); state.setFilePattern(filePattern.getText()); + state.setIncludeSubDirs(includeSubDirs.isSelected()); state.setSorting(sorting.isSelected()); state.setNamespaceDelimiter(namespaceDelimiter.getText()); @@ -72,6 +74,7 @@ public class ProjectSettingsComponentState { parserStrategy.setSelectedIndex((state.getParserStrategy().toIndex())); filePattern.setText(state.getFilePattern()); + includeSubDirs.setSelected(state.isIncludeSubDirs()); sorting.setSelected(state.isSorting()); namespaceDelimiter.setText(state.getNamespaceDelimiter()); diff --git a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsState.java b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsState.java index 29bdd44..9392f27 100644 --- a/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsState.java +++ b/src/main/java/de/marhali/easyi18n/settings/ProjectSettingsState.java @@ -21,6 +21,7 @@ public class ProjectSettingsState implements ProjectSettings { private ParserStrategyType parserStrategy; private String filePattern; + private Boolean includeSubDirs; private Boolean sorting; // Editor configuration @@ -59,6 +60,11 @@ public class ProjectSettingsState implements ProjectSettings { return filePattern != null ? filePattern : defaults.getFilePattern(); } + @Override + public boolean isIncludeSubDirs() { + return includeSubDirs != null ? includeSubDirs : defaults.isIncludeSubDirs(); + } + @Override public boolean isSorting() { return sorting != null ? sorting : defaults.isSorting(); @@ -126,6 +132,10 @@ public class ProjectSettingsState implements ProjectSettings { this.filePattern = filePattern; } + public void setIncludeSubDirs(Boolean includeSubDirs) { + this.includeSubDirs = includeSubDirs; + } + public void setSorting(Boolean sorting) { this.sorting = sorting; } diff --git a/src/main/java/de/marhali/easyi18n/settings/presets/DefaultPreset.java b/src/main/java/de/marhali/easyi18n/settings/presets/DefaultPreset.java index 63b7b4e..0495db1 100644 --- a/src/main/java/de/marhali/easyi18n/settings/presets/DefaultPreset.java +++ b/src/main/java/de/marhali/easyi18n/settings/presets/DefaultPreset.java @@ -32,6 +32,11 @@ public class DefaultPreset implements ProjectSettings { return "*.*"; } + @Override + public boolean isIncludeSubDirs() { + return false; + } + @Override public boolean isSorting() { return true; diff --git a/src/main/java/de/marhali/easyi18n/settings/presets/ReactI18NextPreset.java b/src/main/java/de/marhali/easyi18n/settings/presets/ReactI18NextPreset.java index cc55f1d..ef536d3 100644 --- a/src/main/java/de/marhali/easyi18n/settings/presets/ReactI18NextPreset.java +++ b/src/main/java/de/marhali/easyi18n/settings/presets/ReactI18NextPreset.java @@ -32,6 +32,11 @@ public class ReactI18NextPreset implements ProjectSettings { return "*.json"; } + @Override + public boolean isIncludeSubDirs() { + return false; + } + @Override public boolean isSorting() { return true; diff --git a/src/main/java/de/marhali/easyi18n/settings/presets/VueI18nPreset.java b/src/main/java/de/marhali/easyi18n/settings/presets/VueI18nPreset.java index 01927d8..55ddfbe 100644 --- a/src/main/java/de/marhali/easyi18n/settings/presets/VueI18nPreset.java +++ b/src/main/java/de/marhali/easyi18n/settings/presets/VueI18nPreset.java @@ -31,6 +31,11 @@ public class VueI18nPreset implements ProjectSettings { return "*.json"; } + @Override + public boolean isIncludeSubDirs() { + return false; + } + @Override public boolean isSorting() { return true;