Package org.apache.tapestry5

# Interface ComponentResourcesCommon

All Superinterfaces:
  `Locatable`

All Known Subinterfaces:
  `ComponentPageElement`, `ComponentResources`, `InternalComponentResources`

All Known Implementing Classes:
  `ComponentPageElementImpl`, `InternalComponentResourcesImpl`

public interface ComponentResourcesCommon extends Locatable
Operations shared by the public `ComponentResources` interface and `ComponentPageElement` interface (on the internal side).

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Link`
  `createEventLink(String eventType, Object... context)`
  Creates a component event request link as a callback for this component.
  `Link`
  `createFormEventLink(String eventType, Object... context)`
  Creates a component event request link as a callback for this component.
  `Block`
  `findBlock(String blockId)`
  As with `getBlock(String)`, but returns null if the block is not found.
  `Block`
  `getBlock(String blockId)`
  Returns a block from the component's template, referenced by its id.
  `Block`
  `getBody()`
  Returns the body of this component as a (possibly empty) block.
  `String`
  `getCompleteId()`
  Returns a string consisting of the logical name of the containing page, and the `nested id` of this component, separated by a colon.
  `String`
  `getElementName(String defaultElementName)`
  Returns the name of element that represents the component in its template, or the provided default element name if the element was a component type (in the Tapestry namespace).
  `String`
  `getId()`
  Returns the simple (or local) id of the component.
  `Locale`
  `getLocale()`
  Returns the locale for the page containing this component.
  `org.slf4j.Logger`
  `getLogger()`
  Returns the log instance associated with the component (which is based on the component or mixin's class name).
  `String`
  `getNestedId()`
  Return a string consisting the concatenated ids of all containing components, separated by periods.
  `String`
  `getPageName()`
  Returns the logical name of the page containing this component.
  `ComponentResourceSelector`
  `getResourceSelector()`
  Returns the selector used when constructing the component and its containing page.
  `boolean`
  `hasBody()`
  Returns true if the element has a body and false otherwise.
  `boolean`
  `isRendering()`
  Returns true if the component is currently rendering, false otherwise.
  `boolean`
  `triggerContextEvent(String eventType, EventContext context, ComponentEventCallback callback)`
  Triggers a component event.
  `boolean`
  `triggerEvent(String eventType, Object[] contextValues, ComponentEventCallback callback)`
  A convenience method for invoking `triggerContextEvent(String, EventContext, ComponentEventCallback)`.

  ### Methods inherited from interface org.apache.tapestry5.commons.Locatable

  `getLocation`

- ## Method Details

  - ### getId

    String getId()
    Returns the simple (or local) id of the component. The id will be unique within the component's immediate container. For a page's root component, the value null is returned.

  - ### getNestedId

    String getNestedId()
    Return a string consisting the concatenated ids of all containing components, separated by periods. In addition, nested ids are always all lower case. I.e., "foo.bar.baz". Returns null for the root component of a page.

  - ### getCompleteId

    String getCompleteId()
    Returns a string consisting of the logical name of the containing page, and the `nested id` of this component, separated by a colon. I.e., "MyPage:foo.bar.baz". For a page, returns just the page's name. This value is often used to obtain an equivalent component instance in a later request.
    See Also:
      - `ComponentSource.getComponent(String)`

  - ### triggerEvent

    boolean triggerEvent(String eventType, Object[] contextValues, ComponentEventCallback callback)
    A convenience method for invoking `triggerContextEvent(String, EventContext, ComponentEventCallback)`. Wraps the context values into an `EventContext`.
    Parameters:
      `eventType` - event type (as determined from the request, or otherwise by design)
      `contextValues` - Values that may be provided to the event handler method as method parameters, or null if no context values are available
      `callback` - the handler to be informed of the result, or null if the event is a notification that does not support return values from event handler methods (the value true is allowed even if the handler is null).
    Returns:
      true if any event handler was invoked (even if no event handler method returns a non-null value)
    Throws:
      `ComponentEventException` - if an event handler method throws a checked or unchecked exception
    See Also:
      - `OnEventWorker`
      - `OnEvent`

  - ### triggerContextEvent

    boolean triggerContextEvent(String eventType, EventContext context, ComponentEventCallback callback)
    Triggers a component event. A search for an event handling method will occur, first in the component, then its container, and so on. When a matching event handler method is located, it is invoked. If the method returns a value, the value is passed to the callback (if callback is null, then it is an error for a method to return a non-null value). Resolution of event type to event handler methods is case insensitive.
    Parameters:
      `eventType` - event type (as determined from the request, or otherwise by design)
      `context` - the context (as extracted from the request, or provided by the triggering component); these values may be provided to event handler methods via their parameters (may not be null)
      `callback` - the handler to be informed of the result, or null if the event is a notification that does not support return values from event handler methods (the value true is allowed even if the handler is null).
    Returns:
      true if any event handler was invoked (even if no event handler method returns a non-null value)
    Throws:
      `ComponentEventException` - if an event handler method throws a checked or unchecked exception
    See Also:
      - `OnEventWorker`
      - `OnEvent`

  - ### isRendering

    boolean isRendering()
    Returns true if the component is currently rendering, false otherwise. This is most often used to determine if parameter values should be cached.

  - ### getLogger

    org.slf4j.Logger getLogger()
    Returns the log instance associated with the component (which is based on the component or mixin's class name).
    See Also:
      - `ComponentModel.getLogger()`

  - ### getLocale

    Locale getLocale()
    Returns the locale for the page containing this component.
    See Also:
      - `getResourceSelector()`

  - ### getResourceSelector

    ComponentResourceSelector getResourceSelector()
    Returns the selector used when constructing the component and its containing page.
    Since:
      5.3

  - ### getElementName

    String getElementName(String defaultElementName)
    Returns the name of element that represents the component in its template, or the provided default element name if the element was a component type (in the Tapestry namespace).
    Parameters:
      `defaultElementName` - element name to return if the element name is not known (may be null)
    Returns:
      the element name

  - ### getBlock

    Block getBlock(String blockId)
    Returns a block from the component's template, referenced by its id.
    Parameters:
      `blockId` - the id of the block (case insensitive)
    Returns:
      the identified Block
    Throws:
      `BlockNotFoundException` - if no block with the given id exists
    See Also:
      - `findBlock(String)`

  - ### findBlock

    Block findBlock(String blockId)
    As with `getBlock(String)`, but returns null if the block is not found.
    Parameters:
      `blockId` - the id of the block (case insensitive)
    Returns:
      the block, or null

  - ### getPageName

    String getPageName()
    Returns the logical name of the page containing this component. This is the short name (it often appears in URLs)
    Returns:
      the logical name of the page which contains this component

  - ### hasBody

    boolean hasBody()
    Returns true if the element has a body and false otherwise. Only components may have a body; pages and mixins will return false.

  - ### getBody

    Block getBody()
    Returns the body of this component as a (possibly empty) block. When invoked on a mixin, returns the containing component's body.

  - ### createEventLink

    Link createEventLink(String eventType, Object... context)
    Creates a component event request link as a callback for this component. The event type and context (as well as the page name and nested component id) will be encoded into a URL. A request for the URL will triggerEvent(String, Object[], org.apache.tapestry5.ComponentEventCallback) trigger} the named event on the component.
    Parameters:
      `eventType` - the type of event to be triggered. Event types should be Java identifiers (contain only letters, numbers and the underscore).
      `context` - additional objects to be encoded into the path portion of the link; each is converted to a string and URI encoded
    Returns:
      link object for the callback

  - ### createFormEventLink

    Link createFormEventLink(String eventType, Object... context)
    Creates a component event request link as a callback for this component. The event type and context (as well as the page name and nested component id) will be encoded into a URL. A request for the URL will triggerEvent(String, Object[], org.apache.tapestry5.ComponentEventCallback) trigger} the named event on the component. This is only used for form submission events, as extra data may be encoded in the form as hidden fields.
    Parameters:
      `eventType` - the type of event to be triggered. Event types should be Java identifiers (contain only letters, numbers and the underscore).
      `context` - additional objects to be encoded into the path portion of the link; each is converted to a string and URI encoded
    Returns:
      link object for the callback