package games.strategy.triplea.settings.folders; import java.io.File; import games.strategy.engine.ClientFileSystemHelper; import games.strategy.triplea.settings.HasDefaults; import games.strategy.triplea.settings.SystemPreferenceKey; import games.strategy.triplea.settings.SystemPreferences; public class FolderSettings implements HasDefaults { private static final File DEFAULT_DOWNLOADED_MAPS_PATH = new File(ClientFileSystemHelper.getUserRootFolder(), "downloadedMaps"); private static final File DEFAULT_SAVE_PATH = new File(ClientFileSystemHelper.getUserRootFolder(), "savedGames"); @Override public void setToDefault() { setSaveGamePath(DEFAULT_SAVE_PATH.toString()); setDownloadedMapPath(DEFAULT_DOWNLOADED_MAPS_PATH.toString()); } public String getDownloadedMapPath() { if (validPathFromSystemProperty(SystemPreferenceKey.MAP_FOLDER_OVERRIDE)) { return SystemPreferences.get(SystemPreferenceKey.MAP_FOLDER_OVERRIDE, ""); } else if (validPathFromSystemProperty(SystemPreferenceKey.USER_MAPS_FOLDER_PATH)) { return SystemPreferences.get(SystemPreferenceKey.USER_MAPS_FOLDER_PATH, ""); } else { return DEFAULT_DOWNLOADED_MAPS_PATH.toString(); } } private static boolean validPathFromSystemProperty(SystemPreferenceKey systemProperty) { String value = SystemPreferences.get(systemProperty, ""); return !value.isEmpty() && new File(value).exists(); } void setDownloadedMapPath(final String downloadedMapPath) { SystemPreferences.put(SystemPreferenceKey.USER_MAPS_FOLDER_PATH, downloadedMapPath); } public String getSaveGamePath() { return SystemPreferences.get(SystemPreferenceKey.SAVE_GAMES_FOLDER_PATH, DEFAULT_SAVE_PATH.toString()); } void setSaveGamePath(final String saveGamePath) { SystemPreferences.put(SystemPreferenceKey.SAVE_GAMES_FOLDER_PATH, saveGamePath); } }