docs: private void forward() {
  
          Set<String> selected = new HashSet<>();
  
          for (CheckBox checkbox : m_componentCheckboxes) {
              CmsSetupComponent component = (CmsSetupComponent)(checkbox.getData());
              if (checkbox.getValue().booleanValue()) {
                  selected.add(component.getId());
              }
          }
          String error = null;
          for (String compId : selected) {
              CmsSetupComponent component = m_componentMap.get(compId);
              for (String dep : component.getDependencies()) {
                  if (!selected.contains(dep)) {
                      error = "Unfulfilled dependency: The component "
                          + component.getName()
                          + " can not be installed because its dependency "
                          + m_componentMap.get(dep).getName()
                          + " is not selected";
                      break;
                  }
              }
          }
          if (error == null) {
              Set<String> modules = new HashSet<>();
  
              for (CmsSetupComponent component : m_componentMap.values()) {
  
                  if (selected.contains(component.getId())) {
  
                      for (CmsModule module : m_context.getSetupBean().getAvailableModules().values()) {
                          if (component.match(module.getName())) {
                              modules.add(module.getName());
                          }
                      }
                  }
              }
              List<String> moduleList = new ArrayList<>(modules);
              m_context.getSetupBean().setInstallModules(CmsStringUtil.listAsString(moduleList, "|"));
              m_context.stepForward();
          } else {
              CmsSetupErrorDialog.showErrorDialog(error, error);
          }
      }