public void onEvent(Event evt) throws Exception { final Object controller = getController(); final Method mtd = ComponentsCtrl.getEventMethod(controller.getClass(), evt.getName()); if (mtd != null) { if (mtd.getParameterTypes().length == 0) mtd.invoke(controller); else if (evt instanceof ForwardEvent) { //ForwardEvent final Class paramcls = mtd.getParameterTypes()[0]; //paramcls is ForwardEvent || Event if (ForwardEvent.class.isAssignableFrom(paramcls) || Event.class.equals(paramcls)) { mtd.invoke(controller, evt); } else { do { evt = ((ForwardEvent) evt).getOrigin(); } while (evt instanceof ForwardEvent); mtd.invoke(controller, evt); } } else mtd.invoke(controller, evt); } }
public void service(Event event, Scope scope) throws Exception { final String evtnm = event.getName(); final Method mtd = ComponentsCtrl.getEventMethod(getClass(), evtnm); if (_auxinf != null) service(event, scope, _auxinf.listeners != null ? _auxinf.listeners.get(evtnm) : null, _auxinf.evthds != null ? _auxinf.evthds.get(this, evtnm) : null, mtd, false); else service(event, scope, null, null, mtd, false); }
return true; if (ComponentsCtrl.getEventMethod(comp.getClass(), evtnm) != null || comp.isListenerAvailable(evtnm, asap)) return true;