((ActionSource2)innerComponent).setActionExpression(methodExpression);
}
else if ("actionListener".equals(attributeName))
{
//First try to remove any prevous target if any
ActionListener o = (ActionListener) mctx.removeMethodExpressionTargeted(innerComponent, attributeName);
if (o != null)
{
((ActionSource2)innerComponent).removeActionListener(o);
}
// target is ActionSource2
methodExpression = reWrapMethodExpression(context.getApplication().getExpressionFactory().
createMethodExpression(elContext,
attributeExpressionString, Void.TYPE, ACTION_LISTENER_SIGNATURE), attributeNameValueExpression);
methodExpression2 = reWrapMethodExpression(context.getApplication().getExpressionFactory().
createMethodExpression(elContext,
attributeExpressionString, Void.TYPE, EMPTY_CLASS_ARRAY), attributeNameValueExpression);
ActionListener actionListener = new MethodExpressionActionListener(methodExpression, methodExpression2);
((ActionSource2)innerComponent).addActionListener(actionListener);
mctx.addMethodExpressionTargeted(innerComponent, attributeName, actionListener);
}
else if ("validator".equals(attributeName))
{