public void init(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());
    }
  }
public void init(final @NotNull T data)