public static void removeInternalEventListenerJoystick( ItsNatCompNormalEventListenersJoystick listeners, ClientDocumentImpl clientDoc, String type, boolean useCapture, boolean updateClient) { ItsNatDocumentImpl itsNatDoc = listeners.getItsNatDocumentImpl(); if (itsNatDoc.isLoadingPhaseAndFastLoadMode()) { EventListener listener = listeners.getLoadScheduledMap().remove(type + "_" + useCapture); Document doc = itsNatDoc.getDocument(); Browser browser = clientDoc.getBrowser(); EventTarget target; String eventType; if (!(browser instanceof BrowserSVGPlugin)) { target = (EventTarget) ((DocumentView) doc).getDefaultView(); eventType = "load"; } else { target = (EventTarget) doc.getDocumentElement(); eventType = "SVGLoad"; } clientDoc.removeEventListener(target, eventType, listener, false); } else { removeInternalEventListenerJoystick2(listeners, clientDoc, type, useCapture, updateClient); } }
public static void addInternalEventListenerJoystick( final ItsNatCompNormalEventListenersJoystick listeners, final ClientDocumentImpl clientDoc, final String type, final boolean useCapture, final int commMode, final ParamTransport[] extraParams, final String preSendCode, final long eventTimeout, final String bindToCustomFunc) { ItsNatDocumentImpl itsNatDoc = listeners.getItsNatDocumentImpl(); if (itsNatDoc.isLoadingPhaseAndFastLoadMode()) { // En tiempo de carga en modo fast load el acceso a nodos no tolera cambios en el DOM de // elementos eliminados/cambiados de posición // y eso puede ocurrir mientras se construye la lista // Tenemos que delegar el proceso a después de la carga EventListener listener = new EventListenerSerializableInternal() { @Override public void handleEvent(Event evt) { addInternalEventListenerJoystick2( listeners, clientDoc, type, useCapture, commMode, extraParams, preSendCode, eventTimeout, bindToCustomFunc); } }; Document doc = itsNatDoc.getDocument(); Browser browser = clientDoc.getBrowser(); EventTarget target; String eventType; if (!(browser instanceof BrowserSVGPlugin)) { target = (EventTarget) ((DocumentView) doc).getDefaultView(); eventType = "load"; } else { target = (EventTarget) doc.getDocumentElement(); eventType = "SVGLoad"; } clientDoc.addEventListener(target, eventType, listener, false); listeners.getLoadScheduledMap().put(type + "_" + useCapture, listener); } else { addInternalEventListenerJoystick2( listeners, clientDoc, type, useCapture, commMode, extraParams, preSendCode, eventTimeout, bindToCustomFunc); } }