package org.richfaces.view.facelets;
import javax.faces.view.facelets.FaceletContext;
import javax.faces.view.facelets.Metadata;
import javax.faces.view.facelets.TagAttribute;
import org.richfaces.event.MethodExpressionTreeSelectionChangeListener;
import org.richfaces.event.TreeSelectionChangeEvent;
import org.richfaces.event.TreeSelectionChangeSource;
/**
* @author Nick Belaevski
*
*/
final class TreeSelectionChangeListenerExpressionMetadata extends Metadata {
private static final Class<?>[] SIGNATURE = new Class[] { TreeSelectionChangeEvent.class };
private final TagAttribute attr;
TreeSelectionChangeListenerExpressionMetadata(TagAttribute attr) {
this.attr = attr;
}
@Override
public void applyMetadata(FaceletContext ctx, Object instance) {
((TreeSelectionChangeSource) instance).addTreeSelectionChangeListener(new MethodExpressionTreeSelectionChangeListener(
this.attr.getMethodExpression(ctx, null, SIGNATURE)));
}
}