/** * Add an additional name/value pair to be included in the GET paramter * list. The added name will be the LowLevelEventId of the LowLevelEventListener. * * @param value the value of the parameter * @return a reference to <code>this</code> to simplify 'call chaining' */ public RequestURL addParameter(LowLevelEventListener comp, String value) { addParameter(comp.getLowLevelEventId(), value); return this; }
@Override public void fireFinalEvents() { if (editorComponent instanceof LowLevelEventListener) { LowLevelEventListener lowLevelEventListener = (LowLevelEventListener) editorComponent; lowLevelEventListener.fireFinalEvents(); } }
@Override public boolean isEpochCheckEnabled() { return requestTarget == null || requestTarget.isEpochCheckEnabled(); }
for (Object aL : l) { LowLevelEventListener gl = (LowLevelEventListener) aL; if (gl.isEnabled()) { if (!gl.isEpochCheckEnabled() || isEventEpochValid(gl)) { if (!"focus".equals(suffix) || gl instanceof SFrame) { if (log.isDebugEnabled()) { log.debug("processing event '" + name + "' by " + gl.getClass() + '(' + gl.getLowLevelEventId() + ')'); gl.processLowLevelEvent(name, values); result = true;
iterator.remove(); } else { component.fireIntermediateEvents(); LowLevelEventListener component = (LowLevelEventListener) iterator.next(); component.fireFinalEvents();
@Override public void processLowLevelEvent(String name, String... values) { if (name.endsWith("_panel")) { if ("ok".equals(values[0])) okFinalEvents = true; else if ("cancel".equals(values[0])) cancelFinalEvents = true; } else if (name.endsWith("_ed") && editorComponent instanceof LowLevelEventListener) { LowLevelEventListener lowLevelEventListener = (LowLevelEventListener) editorComponent; lowLevelEventListener.processLowLevelEvent(name, values); } SForm.addArmedComponent(this); }
protected boolean isEventEpochValid(LowLevelEventListener gl) { if (eventEpoch != null) { SFrame frame = ((SComponent) gl).getParentFrame(); if (frame == null) { if (log.isDebugEnabled()) { log.debug("request for dangling component '" + gl.getName() + '\''); } unregister(gl); return false; } if (!eventEpoch.equals(frame.getEventEpoch())) { if (log.isDebugEnabled()) { log.debug("### got outdated event '" + gl.getName() + "' from frame '" + frame.getName() + "' --> received epoch: " + eventEpoch + " | expected epoch: " + frame.getEventEpoch()); } frame.fireInvalidLowLevelEventListener(gl); frame.reload(); return false; } } return true; }
@Override public void processLowLevelEvent(String action, String... values) { processKeyEvents(values); if (action.endsWith("_keystroke")) return; if (isEditing() && action.contains("_e_") && cellEditorComponent != null) { cellEditorComponent.processLowLevelEvent(action, values); } else { if (this.lastReceivedLowLevelEvents == null) { this.lastReceivedLowLevelEvents = values; } else if (values != null && values.length > 0) { // more than one parameter targets the table. collecting parameter values String[] joinedParameters = new String[this.lastReceivedLowLevelEvents.length + values.length]; System.arraycopy(this.lastReceivedLowLevelEvents, 0, joinedParameters, 0, this.lastReceivedLowLevelEvents.length); System.arraycopy(values, 0, joinedParameters, this.lastReceivedLowLevelEvents.length, values.length); this.lastReceivedLowLevelEvents = joinedParameters; } } SForm.addArmedComponent(this); }
@Override public PortletRequestURL addParameter(LowLevelEventListener comp, String value) { addParameter(comp.getLowLevelEventId(), value); return this; }
public void unregister(LowLevelEventListener gl) { if (gl != null) { final String id = gl.getLowLevelEventId(); log.debug("unregister id '" + id + "' (type: " + gl.getClass() + ')'); removeLowLevelEventListener(gl, id); } }
/** * Registers a low level event listeners (for HTTP request processing). * <p/> * The NamePrefix of the listeners id is used as HTTP requestr parameter name. . * * @param gl listeners */ public void register(LowLevelEventListener gl) { if (gl != null) { final String id = gl.getLowLevelEventId(); log.debug("register id '" + id + "' (type: " + gl.getClass() + ')'); addLowLevelEventListener(gl, id); } }
/** * Returns the according event ID for the given component. */ public static String event(SComponent component) { if (component instanceof SClickable) return ((SClickable)component).getEventTarget().getLowLevelEventId(); else return component.getLowLevelEventId(); }