docs: public boolean hasFormatters(CmsObject cms, I_CmsResourceType resType, Collection<CmsContainer> containers) {
  
          try {
              if (CmsXmlDynamicFunctionHandler.TYPE_FUNCTION.equals(resType.getTypeName())
                  || CmsResourceTypeFunctionConfig.TYPE_NAME.equals(resType.getTypeName())) {
                  // dynamic function may match any container
                  return true;
              }
              CmsXmlContentDefinition def = CmsXmlContentDefinition.getContentDefinitionForType(
                  cms,
                  resType.getTypeName());
              CmsFormatterConfiguration schemaFormatters = def.getContentHandler().getFormatterConfiguration(cms, null);
              CmsFormatterConfiguration formatters = getFormatters(cms, resType, schemaFormatters);
              for (CmsContainer cont : containers) {
                  if (cont.isEditable()
                      && (formatters.getAllMatchingFormatters(cont.getType(), cont.getWidth()).size() > 0)) {
                      return true;
                  }
              }
          } catch (CmsException e) {
              LOG.warn(e.getLocalizedMessage(), e);
  
          }
          return false;
      }