code: private void parseConfiguration(CmsObject cms, CmsMessages widgetDialog) {
  
          String configString = CmsMacroResolver.resolveMacros(getConfiguration(), cms, widgetDialog);
          Map<String, String> config = CmsStringUtil.splitAsMap(configString, "|", "=");
          // get the list of group names to show
          String groups = config.get(CONFIGURATION_GROUPS);
          if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(groups)) {
              m_groupNames = CmsStringUtil.splitAsList(groups, ',', true);
          }
          // get the regular expression to filter the groups
          String filter = config.get(CONFIGURATION_GROUPFILTER);
          if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(filter)) {
              try {
                  m_groupFilter = Pattern.compile(filter);
              } catch (PatternSyntaxException e) {
                  // log pattern syntax errors
                  LOG.error(Messages.get().getBundle().key(Messages.LOG_ERR_WIDGET_SELECTGROUP_PATTERN_1, filter));
              }
          }
          // get the OU to read the groups from
          m_ouFqn = config.get(CONFIGURATION_OUFQN);
          if (CmsStringUtil.isEmptyOrWhitespaceOnly(m_ouFqn)) {
              m_ouFqn = "";
          } else if (!m_ouFqn.endsWith(CmsOrganizationalUnit.SEPARATOR)) {
              m_ouFqn += CmsOrganizationalUnit.SEPARATOR;
          }
          // set the flag to include sub OUs
          m_includeSubOus = Boolean.parseBoolean(config.get(CONFIGURATION_INCLUDESUBOUS));
          m_defaultAllAvailable = Boolean.parseBoolean(config.get(CONFIGURATION_DEFAULT_ALL));
      }
docs: Parses the widget configuration string.<p>
  
  @param cms the current users OpenCms context
  @param widgetDialog the dialog of this widget