((EditableValueHolder)innerComponent).addValidator( validator );
mctx.addMethodExpressionTargeted(innerComponent, attributeName, validator);
}
else if ("valueChangeListener".equals(attributeName))
{
ValueChangeListener o = (ValueChangeListener) mctx.removeMethodExpressionTargeted(innerComponent, attributeName);
if (o != null)
{
((EditableValueHolder)innerComponent).removeValueChangeListener(o);
}
// target is EditableValueHolder
methodExpression = reWrapMethodExpression(context.getApplication().getExpressionFactory().
createMethodExpression(elContext,
attributeExpressionString, Void.TYPE,
VALUE_CHANGE_LISTENER_SIGNATURE), attributeNameValueExpression);
methodExpression2 = reWrapMethodExpression(context.getApplication().getExpressionFactory().
createMethodExpression(elContext,
attributeExpressionString, Void.TYPE,
EMPTY_CLASS_ARRAY), attributeNameValueExpression);
ValueChangeListener valueChangeListener = new MethodExpressionValueChangeListener(methodExpression, methodExpression2);
((EditableValueHolder)innerComponent).addValueChangeListener( valueChangeListener );
mctx.addMethodExpressionTargeted(innerComponent, attributeName, valueChangeListener);
}
}
}