public void apply(final FaceletContext faceletContext, final UIComponent parent) throws IOException {
if (parent instanceof ActionSource) {
if (ComponentHandler.isNew(parent)) {
final ActionSource actionSource = (ActionSource) parent;
if (forComponent.isLiteral()) {
actionSource.addActionListener(new PopupActionListener(forComponent.getValue()));
} else {
final ValueExpression forValueExpression = forComponent.getValueExpression(faceletContext, String.class);
actionSource.addActionListener(new ValueExpressionPopupActionListener(forValueExpression));
}
}