}
}
public void updateEvent(IRenderingContext context, Widget control,
IEvent event, String handler) {
IEventHandler eventController = UserData
.updateEventController(control);
Method method = null;
Object clrObject = null;
LoadingData current = this;
ResourceLoader currentParentLoader = parentLoader;
while (current != null) {
Object receiver = current.getClr();
if (receiver != null) {
Class<?> clazz = receiver.getClass();
method = ObjectUtil.findMethod(clazz, handler,
control.getClass(), Event.class);
if (method == null) {
method = ObjectUtil.findMethod(clazz, handler,
Event.class);
}
if (method == null) {
// Load again.
clazz = ClassLoaderUtil.loadClass(context
.getLoadingContext(), clazz.getName());
method = ObjectUtil.findMethod(clazz, handler,
Event.class);
}
if (method != null) {
clrObject = receiver;
if (event.getName().equalsIgnoreCase(
IEventConstants.XWT_LOADED)) {
method.setAccessible(true);
this.loadedObject = receiver;
this.loadedMethod = method;
this.hostCLRWidget = control;
}
eventController.setEvent(event, control, clrObject,
control, method);
break;
}
}
current = current.getParent();