/*package*/ EventQueueImpl() { _dummy.addEventListener("onQueue", new EventListener() { public void onEvent(Event event) throws Exception { final Event evt = (Event)event.getData(); for (Iterator it = _listeners.iterator(); it.hasNext();) ((EventListener)it.next()).onEvent(evt); } }); }
private FulfillListener(String fulfill, ComponentInfo compInfo, Component comp) { _fulfill = fulfill; _compInfo = compInfo; _comp = comp; init(); for (int j = _targets.length; --j >= 0;) _targets[j].addEventListener(10000, _evtnms[j], this); }
/** * Wire change listener to all input elements of child form. * * @param root Root element. */ private void wireListener(Component root) { for (Component child : root.getChildren()) { if (child instanceof MeshElement) { child.addEventListener(Events.ON_SELECT, changeListener); } else if (child instanceof InputElement) { child.addEventListener(Events.ON_CHANGING, changeListener); } else if (child instanceof Button) { child.addEventListener(Events.ON_CLICK, changeListener); } else { wireListener(child); } } }
public DesktopEventQueue() { _dummyTarget.addEventListener(ON_QUEUE, new QueueListener()); }
public BinderKeeper(final Component comp) { _host = comp; _queue = new LinkedList<Loader>(); // ensure the keeper will always cleaned up Events.postEvent("onRootBinderHostDone", comp, null); comp.addEventListener("onRootBinderHostDone", new EventListener<Event>() { public void onEvent(Event event) throws Exception { //suicide first... _host.removeEventListener("onRootBinderHostDone", this); BinderKeeper keeper = (BinderKeeper) _host.getAttribute(KEY_BINDER_KEEPER); if (keeper == null) { // suppose to be null... } else { // The App is in trouble. // some error might happened during page processing // which cause loadComponent() never invoked. _host.removeAttribute(KEY_BINDER_KEEPER); } } }); }
private CommandEventListener getCommandEventListener(Component comp, String evtnm) { final BindingKey bkey = getBindingKey(comp, evtnm); CommandEventListener listener = _listenerMap.get(bkey); if (listener == null) { listener = new CommandEventListener(comp); comp.addEventListener(evtnm, listener); _listenerMap.put(bkey, listener); } return listener; }
protected void onHostAttached(Component host) { Iterable<EventListener<? extends Event>> eventListeners = host.getEventListeners(ON_REBUILD_SHADOW_TREE_LATER); if (!eventListeners.iterator().hasNext()) { host.addEventListener(ON_REBUILD_SHADOW_TREE_LATER, new SerializableEventListener<Event>() { public void onEvent(Event event) throws Exception { Component target = event.getTarget(); if (target instanceof ComponentCtrl && target.getDesktop() != null) { for (ShadowElement se : new ArrayList<ShadowElement>( ((ComponentCtrl) target).getShadowRoots())) { if (se instanceof HtmlShadowElement) { ((HtmlShadowElement) se).rebuildShadowTree(); } } } else { // cleanup Iterable<EventListener<? extends Event>> eventListeners = target .getEventListeners(ON_REBUILD_SHADOW_TREE_LATER); for (EventListener<? extends Event> listener : eventListeners) { target.removeEventListener(ON_REBUILD_SHADOW_TREE_LATER, listener); } } } }); } }
public void schedule(EventListener<T> listener, T event) { if (log.isDebugEnabled()) { log.debug("scheduleServerPush: [{}]", event); } synchronized (_schedInfos) { //must be thread safe if (_dummyTarget == null) { _dummyTarget = new AbstractComponent(); _dummyTarget.addEventListener(ON_SCHEDULE, new ScheduleListener()); } _schedInfos.add(new ScheduleInfo<T>(listener, event)); } } });
/** * A convenient method that help you register this event listener * to the specified target component. * * <p>All public methods whose names start with "on" are considered * as event handlers and the corresponding event is listened. * For example, if the derived class has a method named onOK, * then the onOK event is listened and the onOK method is called * when the event is received. * * @param comp the target component to register this event listener. */ public void bindComponent(Component comp) { final Method[] metds = getController().getClass().getMethods(); for (int i = 0; i < metds.length; i++) { final String evtnm = metds[i].getName(); if (Events.isValid(evtnm)) comp.addEventListener(evtnm, this); } }
/** * Auto wire accessible variables of the specified component into a * controller Java object; a subclass that * override this method should remember to call super.doAfterCompose(comp) * or it will not work. */ public void doAfterCompose(T comp) throws Exception { super.doAfterCompose(comp); //wire variables to reference fields (include implicit objects) ASAP ConventionWires.wireVariables(comp, this, _separator, _ignoreZScript, _ignoreXel); //register event to wire variables just before component onCreate comp.addEventListener(1000, "onCreate", new BeforeCreateWireListener()); }
public void doAfterCompose(T comp) throws Exception { _self = comp; // just in case Selectors.wireComponents(comp, this, false); Selectors.wireEventListeners(comp, this); // first event listener wiring if (_subsInfo != null) { getUtilityHandler().postSubscriptionHandling(_subsInfo, _self); _subsInfo = null; //will not use in further lifetime } // register event to wire variables just before component onCreate comp.addEventListener(1000, "onCreate", new BeforeCreateWireListener()); comp.addEventListener("onCreate", new AfterCreateWireListener()); }
/** * Create a drilldown event listener for the specified component. * * @param component The component to which the event listener will be attached. * @param dataObject Data object for the drilldown. * @param drillDownDisplayClass Dialog class for the drilldown display. */ public DrillDownListener(Component component, T dataObject, Class<?> drillDownDisplayClass) { super(); this.component = component; this.dataObject = dataObject; this.drillDownDisplayClass = drillDownDisplayClass; component.addEventListener(Events.ON_CLICK, this); if (component instanceof HtmlBasedComponent) { ((HtmlBasedComponent) component).setStyle(StringUtils.trimToEmpty(((HtmlBasedComponent) component).getStyle()) .concat("cursor:pointer;")); } }
/** <p>This implementation forward request to onAcegiLogin command.</p> */ public void commence(ServletRequest request, ServletResponse response, AuthenticationException authException) throws IOException, ServletException { final Component comp = (Component) request.getAttribute(ZkEventExceptionFilter.COMPONENT); //remember the original event that cause the security login in session final Event evt = (Event) request.getAttribute(ZkEventExceptionFilter.EVENT); ((HttpServletRequest) request).getSession().setAttribute(ZkEventExceptionFilter.EVENT, evt); if (!comp.isListenerAvailable(ON_ACEGILOGIN, true)) { final EventListener<Event> listener = new ShowWindowEventListener<Event>(); comp.setAttribute(ON_ACEGILOGIN, listener); comp.addEventListener(ON_ACEGILOGIN, listener); } final String url = getLoginFormUrl(); Events.postEvent(new Event(ON_ACEGILOGIN, comp, url != null ? url : "~./acegilogin.zul")); } }
if (set.contains(mhash)) continue; c.addEventListener(prio, name, new ComposerEventListener(method, controller)); set.add(mhash);
public void handle(ServletRequest request, ServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { // Put exception into request scope (perhaps of use to a view) ((HttpServletRequest) request).setAttribute(AccessDeniedHandlerImpl.ACEGI_SECURITY_ACCESS_DENIED_EXCEPTION_KEY, accessDeniedException); final Component comp = (Component) request.getAttribute(ZkEventExceptionFilter.COMPONENT); if (!comp.isListenerAvailable(ON_ACCESSDENIED, true)) { final EventListener<Event> listener = new ShowWindowEventListener<Event>(); comp.setAttribute(ON_ACCESSDENIED, listener); comp.addEventListener(ON_ACCESSDENIED, listener); } final String url = getErrorPage(); Events.postEvent(new Event(ON_ACCESSDENIED, comp, url != null ? url : "~./accessDenied.zul")); } }
listener = new SaveEventListener(); target.setAttribute("zk.SaveEventListener." + evtname, listener); target.addEventListener(1000, evtname, listener); listener = new SaveAfterEventListener(); target.setAttribute("zk.SaveAfterEventListener." + evtname, listener); target.addEventListener(evtname, listener); target.addEventListener(evtname + "SaveAfter", listener);
protected void sendRedirect(HttpServletRequest request, HttpServletResponse response, String url) throws IOException { if (url == null) { return; //skip } final Event evt = (Event) (request).getSession().getAttribute(ZkEventExceptionFilter.EVENT); final Component comp = evt.getTarget(); final String updateURI = comp.getDesktop().getUpdateURI(null); if (url.indexOf(updateURI) >= 0) { //saved request Events.postEvent(new Event(ON_LOGIN_OK, comp, null)); //post onLoginOK event if (_resendZkEvent) { (request).getSession().removeAttribute(ZkEventExceptionFilter.EVENT); Events.postEvent(evt); } return; } //must redirect if (url.startsWith("http://") || url.startsWith("https://")) { Executions.getCurrent().sendRedirect(url); return; } //other url, assume login fail if (!comp.isListenerAvailable(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, true)) { final EventListener<Event> listener = new ShowWindowEventListener<Event>(); comp.setAttribute(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, listener); comp.addEventListener(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, listener); } Events.postEvent(new Event(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, comp, url)); }
/** Internal use only. Call-back method of CloneComposerListener. You shall * not call this method directly. Clone this Composer when its applied * component is cloned. * @param comp the clone of the applied component * @return A clone of this Composer. * @since 3.5.2 */ public Object willClone(Component comp) { try { final Execution exec = Executions.getCurrent(); final int idcode = System.identityHashCode(comp); Composer composerClone = (Composer) exec.getAttribute(COMPOSER_CLONE + idcode); if (composerClone == null) { composerClone = (Composer) Classes.newInstance(getClass(), null); exec.setAttribute(COMPOSER_CLONE + idcode, composerClone); //cannot call doAfterCompose directly because the clone //component might not be attach to Page yet comp.addEventListener(ON_CLONE_DO_AFTER_COMPOSE, new CloneDoAfterCompose()); Events.postEvent(new Event(ON_CLONE_DO_AFTER_COMPOSE, comp, composerClone)); } return composerClone; } catch (Exception ex) { throw UiException.Aide.wrap(ex); } }
post.addEventListener(ON_WIRE_CLONE, l); Events.postEvent(evt);
protected void handleComponentDetached(Component comp) { comp.addEventListener(10000, BinderImpl.ON_BIND_CLEAN, new EventListener<Event>() { public void onEvent(Event event) throws Exception { final Component comp = event.getTarget();