private void loadCurrentProfile()

in languagetool-gui-commons/src/main/java/org/languagetool/gui/Configuration.java [1347:1569]


  private void loadCurrentProfile(Properties props, String prefix, String qualifier) {
    
    String useDocLangString = (String) props.get(prefix + USE_DOC_LANG_KEY);
    if (useDocLangString != null) {
      useDocLanguage = Boolean.parseBoolean(useDocLangString);
    }
    if (ltVersion == null) {
      String motherTongueStr = (String) props.get(prefix + MOTHER_TONGUE_KEY);
      if (motherTongueStr != null && !motherTongueStr.equals("xx")) {
        if (isOffice) {
          fixedLanguage = Languages.getLanguageForShortCode(motherTongueStr);
        } else {
          motherTongue = Languages.getLanguageForShortCode(motherTongueStr);
        }
      }
    } else {
      String fixedLanguageStr = (String) props.get(prefix + FIXED_LANGUAGE_KEY);
      if (fixedLanguageStr != null) {
        fixedLanguage = Languages.getLanguageForShortCode(fixedLanguageStr);
      }
    }
    if (!useDocLanguage && fixedLanguage != null) {
      qualifier = getQualifier(fixedLanguage);
    }

    disabledRuleIds.addAll(getListFromProperties(props, prefix + DISABLED_RULES_KEY + qualifier));
    enabledRuleIds.addAll(getListFromProperties(props, prefix + ENABLED_RULES_KEY + qualifier));
    disabledCategoryNames.addAll(getListFromProperties(props, prefix + DISABLED_CATEGORIES_KEY + qualifier));
    enabledCategoryNames.addAll(getListFromProperties(props, prefix + ENABLED_CATEGORIES_KEY + qualifier));
    enabledRulesOnly = "true".equals(props.get(prefix + ENABLED_RULES_ONLY_KEY));

    String languageStr = (String) props.get(prefix + LANGUAGE_KEY);
    if (languageStr != null) {
      language = Languages.getLanguageForShortCode(languageStr);
    }
    String ngramDir = (String) props.get(prefix + NGRAM_DIR_KEY);
    if (ngramDir != null) {
      ngramDirectory = new File(ngramDir);
    }

    autoDetect = "true".equals(props.get(prefix + AUTO_DETECT_KEY));
    taggerShowsDisambigLog = "true".equals(props.get(prefix + TAGGER_SHOWS_DISAMBIG_LOG_KEY));
    guiConfig = "true".equals(props.get(prefix + USE_GUI_KEY));
    runServer = "true".equals(props.get(prefix + SERVER_RUN_KEY));

    fontName = (String) props.get(prefix + FONT_NAME_KEY);
    if (props.get(prefix + FONT_STYLE_KEY) != null) {
      try {
        fontStyle = Integer.parseInt((String) props.get(prefix + FONT_STYLE_KEY));
      } catch (NumberFormatException e) {
        // Ignore
      }
    }
    if (props.get(prefix + FONT_SIZE_KEY) != null) {
      try {
        fontSize = Integer.parseInt((String) props.get(prefix + FONT_SIZE_KEY));
      } catch (NumberFormatException e) {
        // Ignore
      }
    }
    lookAndFeelName = (String) props.get(prefix + LF_NAME_KEY);

    String serverPortString = (String) props.get(prefix + SERVER_PORT_KEY);
    if (serverPortString != null) {
      serverPort = Integer.parseInt(serverPortString);
    }
    String extRules = (String) props.get(prefix + EXTERNAL_RULE_DIRECTORY);
    if (extRules != null) {
      externalRuleDirectory = extRules;
    }

    String paraCheckString = (String) props.get(prefix + NO_DEFAULT_CHECK_KEY);
    if (Boolean.parseBoolean(paraCheckString)) {
      paraCheckString = (String) props.get(prefix + PARA_CHECK_KEY);
      if (paraCheckString != null) {
        numParasToCheck = Integer.parseInt(paraCheckString);
      }
    }

    String resetCheckString = (String) props.get(prefix + RESET_CHECK_KEY);
    if (resetCheckString != null) {
      doResetCheck = Boolean.parseBoolean(resetCheckString);
    }

    String useTextLevelQueueString = (String) props.get(prefix + USE_QUEUE_KEY);
    if (useTextLevelQueueString != null) {
      useTextLevelQueue = Boolean.parseBoolean(useTextLevelQueueString);
    }

    String noBackgroundCheckString = (String) props.get(prefix + NO_BACKGROUND_CHECK_KEY);
    if (noBackgroundCheckString != null) {
      noBackgroundCheck = Boolean.parseBoolean(noBackgroundCheckString);
    }

    String switchOffString = (String) props.get(prefix + LT_SWITCHED_OFF_KEY);
    if (switchOffString != null) {
      switchOff = Boolean.parseBoolean(switchOffString);
    }

    String isMultiThreadString = (String) props.get(prefix + IS_MULTI_THREAD_LO_KEY);
    if (isMultiThreadString != null) {
      isMultiThreadLO = Boolean.parseBoolean(isMultiThreadString);
    }
    
    String doRemoteCheckString = (String) props.get(prefix + DO_REMOTE_CHECK_KEY);
    if (doRemoteCheckString != null) {
      doRemoteCheck = Boolean.parseBoolean(doRemoteCheckString);
    }
    
    String useOtherServerString = (String) props.get(prefix + USE_OTHER_SERVER_KEY);
    if (useOtherServerString != null) {
      useOtherServer = Boolean.parseBoolean(useOtherServerString);
    }
    
    otherServerUrl = (String) props.get(prefix + OTHER_SERVER_URL_KEY);
    if (otherServerUrl != null && !isValidServerUrl(otherServerUrl)) {
      otherServerUrl = null;
    }

    String isPremiumString = (String) props.get(prefix + IS_PREMIUM_KEY);
    if (isPremiumString != null) {
      isPremium = Boolean.parseBoolean(isPremiumString);
    }
    
    remoteUsername = (String) props.get(prefix + REMOTE_USERNAME_KEY);

    remoteApiKey = (String) props.get(prefix + REMOTE_APIKEY_KEY);

    String markSingleCharBoldString = (String) props.get(prefix + MARK_SINGLE_CHAR_BOLD_KEY);
    if (markSingleCharBoldString != null) {
      markSingleCharBold = Boolean.parseBoolean(markSingleCharBoldString);
    }
    
    String useLtSpellCheckerString = (String) props.get(prefix + USE_LT_SPELL_CHECKER_KEY);
    if (useLtSpellCheckerString != null) {
      useLtSpellChecker = Boolean.parseBoolean(useLtSpellCheckerString);
    }
    
    String noSynonymsAsSuggestionsString = (String) props.get(prefix + NO_SYNONYMS_AS_SUGGESTIONS_KEY);
    if (noSynonymsAsSuggestionsString != null) {
      noSynonymsAsSuggestions = Boolean.parseBoolean(noSynonymsAsSuggestionsString);
    }
    
    String includeTrackedChangesString = (String) props.get(prefix + INCLUDE_TRACKED_CHANGES_KEY);
    if (includeTrackedChangesString != null) {
      includeTrackedChanges = Boolean.parseBoolean(includeTrackedChangesString);
    }
    
    String enableTmpOffRulesString = (String) props.get(prefix + ENABLE_TMP_OFF_RULES_KEY);
    if (enableTmpOffRulesString != null) {
      enableTmpOffRules = Boolean.parseBoolean(enableTmpOffRulesString);
    }
    
    String enableGoalSpecificRulesString = (String) props.get(prefix + ENABLE_GOAL_SPECIFIC_RULES_KEY);
    if (enableGoalSpecificRulesString != null) {
      enableGoalSpecificRules = Boolean.parseBoolean(enableGoalSpecificRulesString);
    }
    
    String filterOverlappingMatchesString = (String) props.get(prefix + FILTER_OVERLAPPING_MATCHES_KEY);
    if (filterOverlappingMatchesString != null) {
      filterOverlappingMatches = Boolean.parseBoolean(filterOverlappingMatchesString);
    }
    
    String saveLoCacheString = (String) props.get(prefix + SAVE_LO_CACHE_KEY);
    if (saveLoCacheString != null) {
      saveLoCache = Boolean.parseBoolean(saveLoCacheString);
    }
    
    String aiString = (String) props.get(prefix + AI_URL_KEY);
    if (aiString != null) {
      aiUrl = aiString;
    }
    
    aiString = (String) props.get(prefix + AI_MODEL_KEY);
    if (aiString != null) {
      aiModel = aiString;
    }
    
    aiString = (String) props.get(prefix + AI_APIKEY_KEY);
    if (aiString != null) {
      aiApiKey = aiString;
    }
    
    aiString = (String) props.get(prefix + AI_USE_AI_SUPPORT_KEY);
    if (aiString != null) {
      useAiSupport = Boolean.parseBoolean(aiString);
    }
    
    aiString = (String) props.get(prefix + AI_AUTO_CORRECT_KEY);
    if (aiString != null) {
      aiAutoCorrect = Boolean.parseBoolean(aiString);
    }
    
    aiString = (String) props.get(prefix + AI_SHOW_STYLISTIC_CHANGES_KEY);
    if (aiString != null) {
      aiShowStylisticChanges = Boolean.parseBoolean(aiString);
    }
    
    
    String rulesValuesString = (String) props.get(prefix + CONFIGURABLE_RULE_VALUES_KEY + qualifier);
    if (rulesValuesString == null) {
      rulesValuesString = (String) props.get(prefix + CONFIGURABLE_RULE_VALUES_KEY);
    }
    parseConfigurableRuleValues(rulesValuesString);

    String colorsString = (String) props.get(prefix + ERROR_COLORS_KEY);
    parseErrorColors(colorsString);

    String underlineColorsString = (String) props.get(prefix + UNDERLINE_COLORS_KEY);
    parseUnderlineColors(underlineColorsString, underlineColors);

    String underlineRuleColorsString = (String) props.get(prefix + UNDERLINE_RULE_COLORS_KEY);
    parseUnderlineColors(underlineRuleColorsString, underlineRuleColors);

    String underlineTypesString = (String) props.get(prefix + UNDERLINE_TYPES_KEY);
    parseUnderlineTypes(underlineTypesString, underlineTypes);

    String underlineRulesTypesString = (String) props.get(prefix + UNDERLINE_RULE_TYPES_KEY);
    parseUnderlineTypes(underlineRulesTypesString, underlineRuleTypes);

    //store config for other languages
    loadConfigForOtherLanguages(lang, props, prefix);
  }