Support classes that allows an object to expose listener methods instead of listener properties.

Normally, a listener property must be an object that implements either {@link com.primix.tapestry.IActionListener} or {@link com.primix.tapestry.IDirectListener}. This can be cumbersome, in practice, as it typically involves creating an anonymous inner class.

Using this mechanism, classes can instead implement listener methods. A listener method takes one of two forms:

The first option can act like either an {@link com.primix.tapestry.IActionListener} or a {@link com.primix.tapestry.IDirectListener}, the second must be a {@link com.primix.tapestry.IDirectListener}. In both cases, the throws clause is optional.

Tapestry will create an appropriate listener object that will invoke the corresponding method.

The methods can be accessed using the property path "listeners.method-name" @see com.primix.tapestry.listener.ListenerMap @see com.primix.tapestry.AbstractComponent#getListeners() @see com.primix.tapestry.engine.AbstractEngine#getListeners() @author Howard Ship hship@primix.com @since 1.0.2