in languagetool-gui-commons/src/main/java/org/languagetool/gui/Configuration.java [1825:2008]
private void saveConfigForCurrentProfile(Properties props, String prefix, String qualifier) {
if (!disabledRuleIds.isEmpty()) {
addListToProperties(props, prefix + DISABLED_RULES_KEY + qualifier, disabledRuleIds);
}
if (!enabledRuleIds.isEmpty()) {
addListToProperties(props, prefix + ENABLED_RULES_KEY + qualifier, enabledRuleIds);
}
if (!disabledCategoryNames.isEmpty()) {
addListToProperties(props, prefix + DISABLED_CATEGORIES_KEY + qualifier, disabledCategoryNames);
}
if (!enabledCategoryNames.isEmpty()) {
addListToProperties(props, prefix + ENABLED_CATEGORIES_KEY + qualifier, enabledCategoryNames);
}
if (language != null && !language.isExternal()) { // external languages won't be known at startup, so don't save them
props.setProperty(prefix + LANGUAGE_KEY, language.getShortCodeWithCountryAndVariant());
}
if (fixedLanguage != null) {
props.setProperty(prefix + FIXED_LANGUAGE_KEY, fixedLanguage.getShortCodeWithCountryAndVariant());
}
if (ngramDirectory != null) {
props.setProperty(prefix + NGRAM_DIR_KEY, ngramDirectory.getAbsolutePath());
}
props.setProperty(prefix + AUTO_DETECT_KEY, Boolean.toString(autoDetect));
props.setProperty(prefix + TAGGER_SHOWS_DISAMBIG_LOG_KEY, Boolean.toString(taggerShowsDisambigLog));
props.setProperty(prefix + USE_GUI_KEY, Boolean.toString(guiConfig));
props.setProperty(prefix + SERVER_RUN_KEY, Boolean.toString(runServer));
props.setProperty(prefix + SERVER_PORT_KEY, Integer.toString(serverPort));
if (numParasToCheck != DEFAULT_NUM_CHECK_PARAS) {
props.setProperty(prefix + NO_DEFAULT_CHECK_KEY, Boolean.toString(true));
props.setProperty(prefix + PARA_CHECK_KEY, Integer.toString(numParasToCheck));
}
if (doResetCheck != DEFAULT_DO_RESET) {
props.setProperty(prefix + RESET_CHECK_KEY, Boolean.toString(doResetCheck));
}
if (useTextLevelQueue != DEFAULT_USE_QUEUE) {
props.setProperty(prefix + USE_QUEUE_KEY, Boolean.toString(useTextLevelQueue));
}
if (noBackgroundCheck != DEFAULT_NO_BACKGROUND_CHECK) {
props.setProperty(prefix + NO_BACKGROUND_CHECK_KEY, Boolean.toString(noBackgroundCheck));
}
if (useDocLanguage != DEFAULT_USE_DOC_LANGUAGE) {
props.setProperty(prefix + USE_DOC_LANG_KEY, Boolean.toString(useDocLanguage));
}
if (isMultiThreadLO != DEFAULT_MULTI_THREAD) {
props.setProperty(prefix + IS_MULTI_THREAD_LO_KEY, Boolean.toString(isMultiThreadLO));
}
if (doRemoteCheck != DEFAULT_DO_REMOTE_CHECK) {
props.setProperty(prefix + DO_REMOTE_CHECK_KEY, Boolean.toString(doRemoteCheck));
}
if (useOtherServer != DEFAULT_USE_OTHER_SERVER) {
props.setProperty(prefix + USE_OTHER_SERVER_KEY, Boolean.toString(useOtherServer));
}
if (isPremium != DEFAULT_IS_PREMIUM) {
props.setProperty(prefix + IS_PREMIUM_KEY, Boolean.toString(isPremium));
}
if (markSingleCharBold != DEFAULT_MARK_SINGLE_CHAR_BOLD) {
props.setProperty(prefix + MARK_SINGLE_CHAR_BOLD_KEY, Boolean.toString(markSingleCharBold));
}
if (useLtSpellChecker != DEFAULT_USE_LT_SPELL_CHECKER) {
props.setProperty(prefix + USE_LT_SPELL_CHECKER_KEY, Boolean.toString(useLtSpellChecker));
}
if (noSynonymsAsSuggestions != DEFAULT_NO_SYNONYMS_AS_SUGGESTIONS) {
props.setProperty(prefix + NO_SYNONYMS_AS_SUGGESTIONS_KEY, Boolean.toString(noSynonymsAsSuggestions));
}
if (includeTrackedChanges != DEFAULT_INCLUDE_TRACKED_CHANGES) {
props.setProperty(prefix + INCLUDE_TRACKED_CHANGES_KEY, Boolean.toString(includeTrackedChanges));
}
if (enableTmpOffRules != DEFAULT_ENABLE_TMP_OFF_RULES) {
props.setProperty(prefix + ENABLE_TMP_OFF_RULES_KEY, Boolean.toString(enableTmpOffRules));
}
if (enableGoalSpecificRules != DEFAULT_ENABLE_GOAL_SPECIFIC_RULES) {
props.setProperty(prefix + ENABLE_GOAL_SPECIFIC_RULES_KEY, Boolean.toString(enableGoalSpecificRules));
}
if (filterOverlappingMatches != DEFAULT_FILTER_OVERLAPPING_MATCHES) {
props.setProperty(prefix + FILTER_OVERLAPPING_MATCHES_KEY, Boolean.toString(filterOverlappingMatches));
}
if (saveLoCache != DEFAULT_SAVE_LO_CACHE) {
props.setProperty(prefix + SAVE_LO_CACHE_KEY, Boolean.toString(saveLoCache));
}
if (switchOff) {
props.setProperty(prefix + LT_SWITCHED_OFF_KEY, Boolean.toString(switchOff));
}
if (otherServerUrl != null && isValidServerUrl(otherServerUrl)) {
props.setProperty(prefix + OTHER_SERVER_URL_KEY, otherServerUrl);
}
if (remoteUsername != null) {
props.setProperty(prefix + REMOTE_USERNAME_KEY, remoteUsername);
}
if (remoteApiKey != null) {
props.setProperty(prefix + REMOTE_APIKEY_KEY, remoteApiKey);
}
if (aiUrl != null) {
props.setProperty(prefix + AI_URL_KEY, aiUrl);
}
if (aiModel != null) {
props.setProperty(prefix + AI_MODEL_KEY, aiModel);
}
if (aiApiKey != null) {
props.setProperty(prefix + AI_APIKEY_KEY, aiApiKey);
}
if (useAiSupport != DEFAULT_USE_AI_SUPPORT) {
props.setProperty(prefix + AI_USE_AI_SUPPORT_KEY, Boolean.toString(useAiSupport));
}
if (aiAutoCorrect != DEFAULT_AI_AUTO_CORRECT) {
props.setProperty(prefix + AI_AUTO_CORRECT_KEY, Boolean.toString(aiAutoCorrect));
}
if (this.aiShowStylisticChanges != DEFAULT_AI_SHOW_STYLISTIC_CHANGES) {
props.setProperty(prefix + AI_SHOW_STYLISTIC_CHANGES_KEY, Boolean.toString(aiShowStylisticChanges));
}
if (fontName != null) {
props.setProperty(prefix + FONT_NAME_KEY, fontName);
}
if (fontStyle != FONT_STYLE_INVALID) {
props.setProperty(prefix + FONT_STYLE_KEY, Integer.toString(fontStyle));
}
if (fontSize != FONT_SIZE_INVALID) {
props.setProperty(prefix + FONT_SIZE_KEY, Integer.toString(fontSize));
}
if (this.lookAndFeelName != null) {
props.setProperty(prefix + LF_NAME_KEY, lookAndFeelName);
}
if (externalRuleDirectory != null) {
props.setProperty(prefix + EXTERNAL_RULE_DIRECTORY, externalRuleDirectory);
}
if (!configurableRuleValues.isEmpty()) {
StringBuilder sbRV = new StringBuilder();
int i = 0;
for (Map.Entry<String, Object[]> entry : configurableRuleValues.entrySet()) {
Object[] obs = entry.getValue();
if (obs != null && obs.length > 0) {
if (i > 0) {
sbRV.append(",");
}
sbRV.append(entry.getKey()).append(':').append(RuleOption.objectsToString(obs));
i++;
}
}
props.setProperty(prefix + CONFIGURABLE_RULE_VALUES_KEY + qualifier, sbRV.toString());
}
if (!errorColors.isEmpty()) {
StringBuilder sb = new StringBuilder();
for (Map.Entry<ITSIssueType, Color> entry : errorColors.entrySet()) {
String rgb = Integer.toHexString(entry.getValue().getRGB());
rgb = rgb.substring(2);
sb.append(entry.getKey()).append(":#").append(rgb).append(", ");
}
props.setProperty(prefix + ERROR_COLORS_KEY, sb.toString());
}
if (!underlineColors.isEmpty()) {
StringBuilder sbUC = new StringBuilder();
for (Map.Entry<String, Color> entry : underlineColors.entrySet()) {
String rgb = Integer.toHexString(entry.getValue().getRGB());
rgb = rgb.substring(2);
sbUC.append(entry.getKey()).append(":#").append(rgb).append(", ");
}
props.setProperty(prefix + UNDERLINE_COLORS_KEY, sbUC.toString());
}
if (!underlineRuleColors.isEmpty()) {
StringBuilder sbUC = new StringBuilder();
for (Map.Entry<String, Color> entry : underlineRuleColors.entrySet()) {
String rgb = Integer.toHexString(entry.getValue().getRGB());
rgb = rgb.substring(2);
sbUC.append(entry.getKey()).append(":#").append(rgb).append(", ");
}
props.setProperty(prefix + UNDERLINE_RULE_COLORS_KEY, sbUC.toString());
}
if (!underlineTypes.isEmpty()) {
StringBuilder sbUT = new StringBuilder();
for (Map.Entry<String, Short> entry : underlineTypes.entrySet()) {
sbUT.append(entry.getKey()).append(':').append(entry.getValue()).append(", ");
}
props.setProperty(prefix + UNDERLINE_TYPES_KEY, sbUT.toString());
}
if (!underlineRuleTypes.isEmpty()) {
StringBuilder sbUT = new StringBuilder();
for (Map.Entry<String, Short> entry : underlineRuleTypes.entrySet()) {
sbUT.append(entry.getKey()).append(':').append(entry.getValue()).append(", ");
}
props.setProperty(prefix + UNDERLINE_RULE_TYPES_KEY, sbUT.toString());
}
for (String key : configForOtherLanguages.keySet()) {
props.setProperty(key, configForOtherLanguages.get(key));
}
}