code: public static boolean checkAcaciaEditorAvailable(CmsObject cms, CmsResource resource) {
  
          if (resource == null) {
              try {
                  // we want a stack trace
                  throw new Exception();
              } catch (Exception e) {
                  LOG.error("Can't check widget availability because resource is null!", e);
              }
              return false;
          }
          try {
              CmsFile file = (resource instanceof CmsFile) ? (CmsFile)resource : cms.readFile(resource);
              CmsXmlContent content = CmsXmlContentFactory.unmarshal(cms, file);
              if (content.getContentDefinition().getContentHandler().isAcaciaEditorDisabled()) {
                  return false;
              }
              CmsContentTypeVisitor visitor = new CmsContentTypeVisitor(cms, file, cms.getRequestContext().getLocale());
              return visitor.isEditorCompatible(content.getContentDefinition());
          } catch (CmsException e) {
              LOG.info("error thrown in checkAcaciaEditorAvailable for " + resource + " : " + e.getLocalizedMessage(), e);
              return true;
          }
      }
docs: Checks whether GWT widgets are available for all fields of a content.<p>
  
  @param cms the current CMS context
  @param resource the resource to check
  
  @return false if for some fields the new Acacia widgets are not available
  
  @throws CmsException if something goes wrong