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); } }
public static boolean mustAddRemove(ItsNatCompNormalEventListenersJoystick listeners) { if (!listeners.isJoystickEnabled()) return false; if (!listeners.hasEnabledNormalEvents()) return false; ItsNatDocumentImpl itsNatDoc = listeners.getItsNatDocumentImpl(); if (itsNatDoc.isLoadingPhaseAndFastLoadMode()) return false; // Se hace de una vez cuando termina la carga return true; }
public static void removeInternalEventListenerJoystick( ItsNatCompNormalEventListenersJoystick listeners, Element contentElem, String type) { if (contentElem == null) return; ItsNatDocumentImpl itsNatDoc = listeners.getItsNatDocumentImpl(); ClientDocumentImpl[] clients = itsNatDoc.getAllClientDocumentsCopy(); for (int i = 0; i < clients.length; i++) { removeInternalEventListenerJoystick(listeners, clients[i], contentElem, type); } }