Interface ComponentPageElement
-
- All Superinterfaces:
BodyPageElement
,ComponentResourcesCommon
,InternalComponentResourcesCommon
,Locatable
,RenderCommand
- All Known Implementing Classes:
ComponentPageElementImpl
public interface ComponentPageElement extends ComponentResourcesCommon, InternalComponentResourcesCommon, RenderCommand, BodyPageElement
Defines an element of aPage
that is a fullComponent
, 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 Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addBlock(java.lang.String blockId, Block block)
Used during the contruction of a page to add a non-anonymous Block to the component.void
addMixin(java.lang.String mixinId, Instantiator instantiator, java.lang.String... order)
Adds a mixin.void
addToTemplate(RenderCommand element)
Used during the construction of a page.void
bindMixinParameter(java.lang.String mixinId, java.lang.String parameterName, Binding binding)
boolean
dispatchEvent(ComponentEvent event)
Asks each mixin and component toComponent.dispatchComponentEvent(ComponentEvent)
, returning true if any handler was found.void
enqueueBeforeRenderBody(RenderQueue queue)
Invoked when the component should render its body.Component
getComponent()
Returns the core component associated with this page element (as opposed to any mixins attached to the component).InternalComponentResources
getComponentResources()
Returns the resources associated with the core component.ComponentPageElement
getContainerElement()
Containing component (or null for the root component of a page).Page
getContainingPage()
Returns the page which contains this component.ComponentPageElement
getEmbeddedElement(java.lang.String id)
Retrieves a component page element by its id.java.util.Set<java.lang.String>
getEmbeddedElementIds()
Returns the ids of all embedded elements defined within the component.org.slf4j.Logger
getEventLogger()
Returns a logger used to for logging event dispatch and event method invocation.ComponentResources
getMixinResources(java.lang.String mixinId)
Returns theComponentResources
for a mixin attached to this component element.ComponentPageElement
newChild(java.lang.String id, java.lang.String nestedId, java.lang.String completeId, java.lang.String elementName, Instantiator instantiator, Location location)
Creates a new child component of the invoked component.-
Methods inherited from interface org.apache.tapestry5.internal.structure.BodyPageElement
addToBody
-
Methods inherited from interface org.apache.tapestry5.ComponentResourcesCommon
createEventLink, createFormEventLink, findBlock, getBlock, getBody, getCompleteId, getElementName, getId, getLocale, getLogger, getNestedId, getPageName, getResourceSelector, hasBody, isRendering, triggerContextEvent, triggerEvent
-
Methods inherited from interface org.apache.tapestry5.internal.InternalComponentResourcesCommon
bindParameter, getBinding, getInformalParameterBindings, getMixinByClassName, isLoaded
-
Methods inherited from interface org.apache.tapestry5.commons.Locatable
getLocation
-
Methods inherited from interface org.apache.tapestry5.runtime.RenderCommand
render
-
-
-
-
Method Detail
-
getComponent
Component getComponent()
Returns the core component associated with this page element (as opposed to any mixins attached to the component).
-
getComponentResources
InternalComponentResources getComponentResources()
Returns the resources associated with the core component.
-
getContainingPage
Page getContainingPage()
Returns the page which contains this component.
-
getContainerElement
ComponentPageElement getContainerElement()
Containing component (or null for the root component of a page).
-
addToTemplate
void addToTemplate(RenderCommand element)
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(java.lang.String blockId, Block block)
Used during the contruction of a page to add a non-anonymous Block to the component.
-
addMixin
void addMixin(java.lang.String mixinId, Instantiator instantiator, java.lang.String... order)
Adds a mixin.- Parameters:
mixinId
- a unique id for the mixin, the last term of the mixin's class nameinstantiator
- used to instantiate an instance of the mixinorder
- Ordering strings used to determine the order of mixin execution.
-
bindMixinParameter
void bindMixinParameter(java.lang.String mixinId, java.lang.String parameterName, Binding binding)
- Parameters:
mixinId
- id of previously added mixinparameterName
- simple (unqualified) name of parameterbinding
- binding for parameter- Since:
- 5.1.0.0
-
getEmbeddedElement
ComponentPageElement getEmbeddedElement(java.lang.String id)
Retrieves a component page element by its id. The search is caseless.- Parameters:
id
- used to locate the element- Returns:
- the page element
- Throws:
java.lang.IllegalArgumentException
- if no component exists with the given id
-
getEmbeddedElementIds
@IncompatibleChange(release="5.8.3", details="Added method") java.util.Set<java.lang.String> getEmbeddedElementIds()
Returns the ids of all embedded elements defined within the component.- Since:
- 5.8.3
-
getMixinResources
ComponentResources getMixinResources(java.lang.String mixinId)
Returns theComponentResources
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:
java.lang.IllegalArgumentException
- if no mixin with the given id exists
-
enqueueBeforeRenderBody
void enqueueBeforeRenderBody(RenderQueue queue)
Invoked when the component should render its body.
-
dispatchEvent
boolean dispatchEvent(ComponentEvent event)
Asks each mixin and component toComponent.dispatchComponentEvent(ComponentEvent)
, returning true if any handler was found.- Parameters:
event
- to be handled- Returns:
- true if a handler was found
-
newChild
ComponentPageElement newChild(java.lang.String id, java.lang.String nestedId, java.lang.String completeId, java.lang.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 componentnestedId
-completeId
-elementName
- name of the component's element in its container's templateinstantiator
- used to create a component instance, and access the component's modellocation
- 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.
-
-