void (final @NotNull T data) { myConnectionType = data.connectionCredentials().getRemoteConnectionType(); TypeHandler typeHandler = myCredentialsType2Handler.get(myConnectionType); if (typeHandler == null) { typeHandler = new UnsupportedCredentialsTypeHandler(myConnectionType.getName()); myUnsupportedConnectionTypes.add(myConnectionType); myCredentialsType2Handler.put(myConnectionType, typeHandler); myTypeButtonGroup.add(typeHandler.getRadioButton()); myRadioPanel.add(typeHandler.getRadioButton()); myTypesPanel.add(typeHandler.getContentComponent(), myConnectionType.getName()); } typeHandler.getRadioButton().setSelected(true); boolean connectionTypeIsSupported = !myUnsupportedConnectionTypes.contains(myConnectionType); myRadioPanel.setVisible(connectionTypeIsSupported); data.switchOnConnectionType( new CaseCollector() { @Override protected void processEx(CredentialsEditor editor, Object credentials) { editor.init(credentials); } }.collectCases()); radioSelected(false); String interpreterPath = data.getInterpreterPath(); myInterpreterPathField.setText(interpreterPath); typeHandler.setInterpreterPath(interpreterPath); setTempFilesPath(data); if (isSshSudoSupported()) { myRunAsRootViaSudoJBCheckBox.setSelected(data.isRunAsRootViaSudo()); } }