code: private void configureConfigurationSelector() {
  
          if (m_checkinBean.getConfigurations().size() < 2) {
              // Do not show the configuration selection at all.
              removeComponent(m_configurationSelectionPanel);
          } else {
              for (CmsGitConfiguration configuration : m_checkinBean.getConfigurations()) {
                  m_configurationSelector.addItem(configuration);
                  m_configurationSelector.setItemCaption(configuration, configuration.getName());
              }
              m_configurationSelector.setNullSelectionAllowed(false);
              m_configurationSelector.setNewItemsAllowed(false);
              m_configurationSelector.setWidth("350px");
              m_configurationSelector.select(m_checkinBean.getCurrentConfiguration());
  
              // There is really a choice between configurations
              m_configurationSelector.addValueChangeListener(new ValueChangeListener() {
  
                  private static final long serialVersionUID = 1L;
  
                  @SuppressWarnings("synthetic-access")
                  public void valueChange(ValueChangeEvent event) {
  
                      updateForNewConfiguration((CmsGitConfiguration)event.getProperty().getValue());
                      restoreFieldsFromUserInfo();
  
                  }
              });
          }
      }
docs: Configures the configuration selector.