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 Details

    • 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

      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

      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:
    • 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:
    • 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:
    • 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:
    • getLocale

      Returns the locale for the page containing this component.
      See Also:
    • 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

      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

      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

      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