package com.wooki.core.components; import org.apache.tapestry5.BindingConstants; import org.apache.tapestry5.ComponentResources; import org.apache.tapestry5.Link; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.corelib.base.AbstractComponentEventLink; import org.apache.tapestry5.corelib.components.EventLink; import org.apache.tapestry5.ioc.annotations.Inject; /** * Same as {@link EventLink} but link is generated from root page and not current component. * * @author ccordenier */ public class RootEventLink extends AbstractComponentEventLink { /** * The name of the event to be triggered in the parent component. Defaults to the id of the * component. An {@link org.apache.tapestry5.corelib.components.ActionLink} triggers an "action" * event on itself, and EventLink component triggers any arbitrary event on * <em>its container</em>. */ @Parameter(defaultPrefix = BindingConstants.LITERAL) private String event; @Inject private ComponentResources resources; String defaultEvent() { return resources.getId(); } @Override protected Link createLink(Object[] eventContext) { ComponentResources containerResources = resources.getPage().getComponentResources(); return containerResources.createEventLink(event, eventContext); } }