Class StudioGrapesJsPreviewLoader

java.lang.Object
io.jmix.messagetemplatesflowui.kit.meta.loader.StudioGrapesJsPreviewLoader
All Implemented Interfaces:
StudioPreviewComponentLoader

public class StudioGrapesJsPreviewLoader extends Object implements StudioPreviewComponentLoader
Studio preview loader for the msgtmp:grapesJs component: instantiates an empty GrapesJs with its pure-XML attributes and declared <blocks> applied, instead of the reflection-fallback placeholder.

<plugins> is intentionally skipped: resolving a plugin/@name to a GrapesJsPlugin instance goes through the (Spring-bean) GrapesJsPluginRegistry in messagetemplates-flowui, which this spring-free kit module has no access to.

Studio has no block-specific post-processing to duplicate, so blocks are built unconditionally (no StudioPreviewEnvironment handshake gate, unlike StudioGridPreviewLoader's columns).

  • Field Details

  • Constructor Details

    • StudioGrapesJsPreviewLoader

      public StudioGrapesJsPreviewLoader()
  • Method Details

    • isSupported

      public boolean isSupported(org.dom4j.Element element)
      Description copied from interface: StudioPreviewComponentLoader
      Define the element that this loader can load.
      Specified by:
      isSupported in interface StudioPreviewComponentLoader
    • load

      public @Nullable com.vaadin.flow.component.Component load(org.dom4j.Element componentElement, org.dom4j.Element viewElement)
      Description copied from interface: StudioPreviewComponentLoader
      Create vaadin component from component xml element.
      Specified by:
      load in interface StudioPreviewComponentLoader
      Parameters:
      componentElement - xml element of component
      viewElement - xml element of view containing componentElement
      See Also:
      • Element
    • load

      public @Nullable com.vaadin.flow.component.Component load(org.dom4j.Element componentElement, org.dom4j.Element viewElement, StudioPreviewEnvironment environment)
      Description copied from interface: StudioPreviewComponentLoader
      Create vaadin component from component xml element, with access to Studio-resolved context (e.g. localized messages, entity property captions).
      Specified by:
      load in interface StudioPreviewComponentLoader
      Parameters:
      componentElement - xml element of component
      viewElement - xml element of view containing componentElement
      environment - Studio-side environment; StudioPreviewEnvironment.NOOP when unavailable
      See Also:
      • Element
    • loadBlock

      protected void loadBlock(GrapesJs grapesJs, org.dom4j.Element blockElement, StudioPreviewEnvironment environment)
      Builds a block from a <block> element. Silently skips it when id is missing: the runtime loader throws in that case, but a preview should degrade gracefully rather than fail the whole component.
    • loadStringOrText

      protected Optional<String> loadStringOrText(org.dom4j.Element element, String childName)
      Loads childName as the trimmed text of a child element if present (the XSD models content/attributes as mixed-content elements), falling back to the same-named attribute otherwise.