Example usage for org.apache.wicket.event IEvent dontBroadcastDeeper

List of usage examples for org.apache.wicket.event IEvent dontBroadcastDeeper

Introduction

In this page you can find the example usage for org.apache.wicket.event IEvent dontBroadcastDeeper.

Prototype

void dontBroadcastDeeper();

Source Link

Document

Stops the broadcast of this event any deeper into the hierarchy of the current sink

Usage

From source file:org.onexus.website.api.events.EventPanel.java

License:Apache License

@Override
public void onEvent(IEvent<?> event) {

    if (event.getPayload() instanceof AbstractEvent) {
        AjaxRequestTarget target = RequestCycle.get().find(AjaxRequestTarget.class);

        if (target != null) {
            Class<?> currentEventClass = event.getPayload().getClass();
            for (Class<?> eventClass : registeredEvents) {
                if (eventClass.isAssignableFrom(currentEventClass)) {
                    onRegisteredEvent(target, (AbstractEvent) event.getPayload());
                    event.dontBroadcastDeeper();
                    return;
                }/*from   ww w  . ja v  a  2  s .c  o m*/
            }
        }
    }
}

From source file:org.wicketstuff.event.annotation.AnnotationEventSink.java

License:Apache License

private void onEvent(final Set<Method> onEventMethods, final Object sink, final Object payload,
        final IEvent<?> event) {
    try {//from   w  w  w . j  av  a 2  s  . c  o m
        for (Method method : onEventMethods) {
            if (canCallListenerInterface(sink, method)) {
                OnEvent onEvent = method.getAnnotation(OnEvent.class);
                if (isPayloadApplicableToHandler(onEvent, payload)) {
                    Object result = method.invoke(sink, payload);
                    if (result instanceof Visit<?>) {
                        Visit<?> visit = (Visit<?>) result;
                        if (visit.isDontGoDeeper()) {
                            event.dontBroadcastDeeper();
                        } else if (visit.isStopped()) {
                            event.stop();
                            break;
                        }
                    } else if (onEvent.stop()) {
                        event.stop();
                        break;
                    }
                }
            }
        }
    } catch (InvocationTargetException e) {
        if (e.getCause() instanceof ReplaceHandlerException) {
            throw ((ReplaceHandlerException) e.getCause());
        } else {
            throw new IllegalStateException("Failed to invoke @OnEvent method", e);
        }
    } catch (IllegalAccessException e) {
        throw new IllegalStateException("Failed to invoke @OnEvent method", e);
    }
}