List<LanguageCheckBoxRec> (JPanel languagesPanel) { List<LanguageCheckBoxRec> checkBoxes = new ArrayList<>(); JPanel currPanel = null; int rowCount = 0; for (Language language : LanguageCodeStyleSettingsProvider.getLanguagesWithCodeStyleSettings()) { LanguageCodeStyleSettingsProvider provider = LanguageCodeStyleSettingsProvider.forLanguage(language); if (provider != null && provider.supportsExternalFormats()) { if (currPanel == null) { currPanel = createLanguageColumnPanel(); languagesPanel.add(currPanel); languagesPanel.add(Box.createRigidArea(new JBDimension(30, 1))); rowCount = 0; } String langName = ObjectUtils.notNull(provider.getLanguageName(), language.getDisplayName()); final JBCheckBox checkBox = new JBCheckBox(langName); checkBoxes.add(new LanguageCheckBoxRec(language, checkBox)); currPanel.add(checkBox); rowCount ++; if (rowCount >= MAX_LANGUAGES_ROWS) { currPanel = null; } } } return checkBoxes; }