Interface ComponentPageElement

All Superinterfaces:
BodyPageElement, ComponentResourcesCommon, InternalComponentResourcesCommon, Locatable, RenderCommand
All Known Implementing Classes:
ComponentPageElementImpl

Defines an element of a Page that is a full Component, including the possibility of its own template and mixins. This is distinct from other renderable elements of the page, which represent fixed or dynamic text, or markup element that may have dynamic attribute values.
  • Method Details

    • getComponent

      Returns the core component associated with this page element (as opposed to any mixins attached to the component).
    • getComponentResources

      Returns the resources associated with the core component.
    • getContainingPage

      Returns the page which contains this component.
    • getContainerElement

      Containing component (or null for the root component of a page).
    • addToTemplate

      Used during the construction of a page. Adds a page element as part of the template for this page element. A page element will eventually render by sequentially rendering these elements. A page elements template is really just the outermost portions of the component's template ... where a template contains elements that are all components, those components will receive portions of the template as their body.
    • addBlock

      void addBlock(String blockId, Block block)
      Used during the contruction of a page to add a non-anonymous Block to the component.
      See Also:
    • addMixin

      void addMixin(String mixinId, Instantiator instantiator, String... order)
      Adds a mixin.
      Parameters:
      mixinId - a unique id for the mixin, the last term of the mixin's class name
      instantiator - used to instantiate an instance of the mixin
      order - Ordering strings used to determine the order of mixin execution.
    • bindMixinParameter

      void bindMixinParameter(String mixinId, String parameterName, Binding binding)
      Parameters:
      mixinId - id of previously added mixin
      parameterName - simple (unqualified) name of parameter
      binding - binding for parameter
      Since:
      5.1.0.0
    • getEmbeddedElement

      Retrieves a component page element by its id. The search is caseless.
      Parameters:
      id - used to locate the element
      Returns:
      the page element
      Throws:
      IllegalArgumentException - if no component exists with the given id
    • getEmbeddedElementIds

      Returns the ids of all embedded elements defined within the component.
      Since:
      5.8.3
    • getMixinResources

      Returns the ComponentResources for a mixin attached to this component element. Mixin ids are the simple names of the mixin class.
      Parameters:
      mixinId - the mixin id (case insensitive)
      Returns:
      the resources for the component
      Throws:
      IllegalArgumentException - if no mixin with the given id exists
    • enqueueBeforeRenderBody

      Invoked when the component should render its body.
    • dispatchEvent

      boolean dispatchEvent(ComponentEvent event)
      Asks each mixin and component to Component.dispatchComponentEvent(ComponentEvent), returning true if any handler was found.
      Parameters:
      event - to be handled
      Returns:
      true if a handler was found
    • newChild

      ComponentPageElement newChild(String id, String nestedId, String completeId, String elementName, Instantiator instantiator, Location location)
      Creates a new child component of the invoked component. The new element will be added as an embedded element of its container.
      Parameters:
      id - simple id of the new component
      nestedId -
      completeId -
      elementName - name of the component's element in its container's template
      instantiator - used to create a component instance, and access the component's model
      location - location of the element within its container's template @return the new component
    • getEventLogger

      org.slf4j.Logger getEventLogger()
      Returns a logger used to for logging event dispatch and event method invocation.