private void init() {
    register(myPasswordChoice, SvnConfiguration.SshConnectionType.PASSWORD);
    register(myPrivateKeyChoice, SvnConfiguration.SshConnectionType.PRIVATE_KEY);
    register(mySubversionConfigChoice, SvnConfiguration.SshConnectionType.SUBVERSION_CONFIG);

    ItemListener connectionTypeChangedListener = e -> {
      if (e.getStateChange() == ItemEvent.SELECTED) {
        enableOptions(e.getSource());
      }
    };
    myPasswordChoice.addItemListener(connectionTypeChangedListener);
    myPrivateKeyChoice.addItemListener(connectionTypeChangedListener);
    mySubversionConfigChoice.addItemListener(connectionTypeChangedListener);

    enableOptions(mySubversionConfigChoice);

    registerBrowseDialog(myExecutablePathField, message("dialog.title.ssh.settings.browse.executable"));
    registerBrowseDialog(myPrivateKeyPathField, message("dialog.title.ssh.settings.browse.private.key"));

    mySshTunnelField.getEmptyText().setText(SshTunnelRuntimeModule.DEFAULT_SSH_TUNNEL_VALUE);
    mySshTunnelField.getDocument().addDocumentListener(new DocumentAdapter() {
      @Override
      protected void textChanged(@NotNull DocumentEvent e) {
        updateSshTunnelDependentValues(mySshTunnelField.getText());
      }
    });

    myUpdateTunnelButton.addActionListener(e -> {
      String tunnel = mySshTunnelField.getText();

      // remove tunnel from config in case it is null or empty
      mySvnConfiguration.setSshTunnelSetting(StringUtil.nullize(tunnel));
      setSshTunnelSetting(mySvnConfiguration.getSshTunnelSetting());
    });
  }
private void init()