docs: public void renderEntityForm(String entityId, List<CmsTabInfo> tabInfos, Panel context, Element scrollParent) {
  
          CmsEntity entity = m_entityBackend.getEntity(entityId);
          if (entity != null) {
              boolean initUndo = (m_entity == null) || !entity.getId().equals(m_entity.getId());
              m_entity = entity;
              CmsType type = m_entityBackend.getType(m_entity.getTypeName());
              m_formPanel = new FlowPanel();
              context.add(m_formPanel);
              CmsAttributeHandler.setScrollElement(scrollParent);
              CmsButtonBarHandler.INSTANCE.setWidgetService(m_widgetService);
              if (m_rootHandler == null) {
                  m_rootHandler = new CmsRootHandler();
              } else {
                  m_rootHandler.clearHandlers();
              }
              m_tabInfos = tabInfos;
              m_formTabs = m_widgetService.getRendererForType(
                  type).renderForm(m_entity, m_tabInfos, m_formPanel, m_rootHandler, 0);
              m_validationHandler.registerEntity(m_entity);
              m_validationHandler.setRootHandler(m_rootHandler);
              m_validationHandler.setFormTabPanel(m_formTabs);
              if (initUndo) {
                  CmsUndoRedoHandler.getInstance().initialize(m_entity, this, m_rootHandler);
              }
              // trigger validation right away
              m_validationHandler.validate(m_entity);
          }
      }