Package org.itsnat.impl.core.clientdoc

Examples of org.itsnat.impl.core.clientdoc.ClientDocumentStfulImpl


        ItsNatStfulDocumentImpl itsNatDoc = (ItsNatStfulDocumentImpl)getItsNatDocument();
        ClientDocumentStfulImpl[] clientList = itsNatDoc.getAllClientDocumentStfulsCopy();

        for(int i = 0; i < clientList.length; i++)
        {
            ClientDocumentStfulImpl clientDoc = clientList[i];
            ItsNatCellEditorClientImpl editClient = ItsNatCellEditorClientImpl.getItsNatHTMLCellEditorClient(clientDoc.getBrowser(),compEditor);
            editClient.unregisterEventListeners(this, clientDoc);
        }

        itsNatDoc.removeEventListener(globalEventListener); // No pasa nada por eliminarse mientras se est�n procesando los globales, el framework est� preparado
    }
View Full Code Here


            if ((target instanceof HTMLOptionElement) &&
                (((Node)target).getParentNode() == nodeEditor))
            {
                // En BlackBerry un <option> es el target cuando una opci�n de un select es pulsada (curioso)
                ClientDocumentStfulImpl clientDoc = (ClientDocumentStfulImpl)((ItsNatEvent)evt).getClientDocument();
                Browser browser = clientDoc.getBrowser();
                if (browser instanceof BrowserBlackBerryOld) return;
            }

            parent.stopCellEditing();
        }
View Full Code Here

        JSRenderMethodCallImpl render = JSRenderMethodCallImpl.getJSRenderMethodCall(elem);

        ClientDocumentStfulImpl[] allClient = itsNatDoc.getAllClientDocumentStfulsCopy();
        for(int i = 0; i < allClient.length; i++)
        {
            ClientDocumentStfulImpl clientDoc = allClient[i];
            Browser browser = clientDoc.getBrowser();
            if (clientDoc.isSendCodeEnabled() && !render.isFocusOrBlurMethodWrong("focus",elem,browser))
            {
                // S�lo generamos la llamada a focus() si es procesada correctamente
                // si no lo es el usuario tendr� que pulsar el elemento, no pasa nada por ello
                // En esos casos no tiene sentido enviar un evento focus "manualmente" pues ya lo har� el usuario
                // cuando pulse elemento as� evitamos enviar dos eventos focus.
                String code = JSRenderMethodCallImpl.getCallFormControlFocusBlurCodeDefault(elem, "focus", true, clientDoc);
                clientDoc.addCodeToSend( code );
            }
        }
    }
View Full Code Here

        // el objeto padre.

        // Usamos el documento ItsNat para las variables y colecciones auxiliares para evitar el lio
        // entre window y _window_impl

        ClientDocumentStfulImpl clientDoc = getClientDocumentStful();
        if (!clientDoc.isScriptingEnabled()) return;

        StringBuilder code = new StringBuilder();

        code.append("var func = function(func,delay)");
        code.append("{");
        code.append("  if (!this.set_timeout_count) this.set_timeout_count = 0;");
        code.append("  var funcId = \"set_timeout_func_\" + (++this.set_timeout_count);");
        code.append("  var funcWrap = function()");
        code.append("  {");
        code.append("    var thisF = arguments.callee;");
        code.append("    try{ delete thisF.itsNatDoc[thisF.funcId]; }catch(e){}");
        code.append("    try{ delete thisF.itsNatDoc[thisF.handleId]; }catch(e){}");
        code.append("    thisF.func();");
        code.append("  };");
        code.append("  funcWrap.func = func;");
        code.append("  funcWrap.itsNatDoc = this;");
        code.append("  funcWrap.funcId = funcId;");
        code.append("  this[funcId] = funcWrap;");
        code.append("  var handle = this.win.setTimeout(\"var funcWrap = document.getItsNatDoc()['\" + funcId + \"']; funcWrap.call(this);\",delay);");
        code.append("  var handleId = \"set_timeout_hnd_\" + handle;")// handle es una string en ASV
        code.append("  funcWrap.handleId = handleId;");
        code.append("  this[handleId] = funcId;");
        code.append("  return handle;");
        code.append("};");
        code.append("itsNatDoc.setTimeout = func;\n");

        code.append("var func = function(handle)");
        code.append("{");
        code.append("  this.win.clearTimeout(handle);");
        code.append("  var handleId = \"set_timeout_hnd_\" + handle;")// handle es una string en ASV
        code.append("  var funcId = this[handleId];");
        code.append("  try{ delete this[handleId]; }catch(e){}");
        code.append("  try{ delete this[funcId]; }catch(e){}");
        code.append("};");
        code.append("itsNatDoc.clearTimeout = func;\n");

        clientDoc.addCodeToSend(code.toString());
    }
View Full Code Here

                // padre del todo, el script de inicio de ItsNat no se ha ejecutado todav�a en el padre.
                // Hay que recordar que el documento padre es siempre Internet Explorer desktop


                ItsNatStfulDocumentImpl parentDoc = parent.getItsNatStfulDocument();
                ClientDocumentStfulImpl parentClientDoc = parentDoc.getClientDocumentStfulOwner();


                StringBuilder code = new StringBuilder();

                code.append("\n");
View Full Code Here

        return finalMarkup.toString();
    }

    protected void rewriteClientHTMLTextAreaProperties(HTMLTextAreaElement elem,StringBuilder code)
    {
        ClientDocumentStfulImpl clientDoc = getClientDocumentStful();
        // Los <textarea> fuera de X/HTML ignoran el nodo de texto hijo
        processUIControlProperty(elem,"value",code,clientDoc);
    }
View Full Code Here

        // Hay que estudiar si por ejemplo listbox tiene una colecci�n tipo "listitems"
        // al igual que "options" en HTML select con el fin de optimizar un poco.

        if (NamespaceUtil.isXULElement(elem))
        {
            ClientDocumentStfulImpl clientDoc = getClientDocumentStful();

            String localName = elem.getLocalName();
            if ("button".equals(localName))
            {
                processUIControlProperty(elem,"checkState",code,clientDoc);
View Full Code Here

        return code.toString();
    }

    public void afterLoadRewriteClientUIControlProperties()
    {
        final ClientDocumentStfulImpl clientDoc = getClientDocumentStful();
        if (!clientDoc.isScriptingEnabled())
            return;

        // En Opera Desktop 9 el autofill no es el habitual,
        // cuando termina de ejecutarse el evento load inmediatamente despu�s
        // autorellena los forms con valores cacheados,
        // por lo que el "forzado" ha de realizarse DESPUES del autofill de Opera
        // Otro problema es que este llenado genera eventos "change" simulando que lo hubiera hecho el usuario,
        // aparte de que en componentes ItsNat checkbox y radio no se procesa el change,
        // nos interesa que el cliente muestre el estado inicial de la p�gina no un estado
        // anterior (aunque la m�xima prioridad es que cliente y servidor est�n sincronizados)
        // Por ello antes del autofill de Opera evitamos los eventos "change" para que
        // los cambios no lleguen al servidor (total, vamos a imponer los valores del servidor de nuevo)
        // y los volvemos a restaurar el modo normal tras el autofill.

        // Haremos por tanto dos "revertimientos" (en cierto modo es ejecutarlo dos veces):
        // 1) Los cambios hechos por el usuario al cargar, como en los dem�s navegadores (con el fin de que el comportamiento sea el mismo que en los dem�s)
        // 2) Los cambios hechos por el autofill de Opera tras el load.

        ItsNatStfulDocumentImpl itsNatDoc = getItsNatStfulDocument();
        Document doc = itsNatDoc.getDocument();
        AbstractView view = ((DocumentView)doc).getDefaultView();

        EventListener listener = new RewriteClientUIControlPropsOperaLoadListenerImpl(clientDoc);

        int commMode;
        int syncDefaultMode = clientDoc.getCommMode();
        if (CommModeImpl.isXHRMode(syncDefaultMode))
            commMode = CommMode.XHR_SYNC;
        else
            commMode = syncDefaultMode; // Caso SCRIPT o SCRIPT_HOLD, no se si funcionar� correctamente (as�ncronos), hay que probar
        clientDoc.addEventListener((EventTarget)view,"load",listener,false,commMode); //
        // Nota: este evento load es registrado/ejecutado el �LTIMO y DEBE ser as� pues se desactivan los eventos temporalmente
    }
View Full Code Here

    public void processRequest(ClientDocumentStfulImpl clientDocStateless)
    {
        String clientId = getAttrOrParamExist("itsnat_client_id"); // Si no est� dar� error

        ItsNatSessionImpl session = getItsNatSession();
        final ClientDocumentStfulImpl clientDoc = session.getClientDocumentStfulById(clientId);
        // Es raro que clientDoc sea nulo, si es as� es que fue
        // invalidado por el c�digo del cliente en carga
        // No procesamos por ahora un posible error pero deber�a hacerse.

        ItsNatDocumentImpl itsNatDoc = clientDoc.getItsNatDocumentImpl();

        // La verdad es que no es necesario sincronizar los padres porque este solo afecta al actual documento pero por ser sistem�tico...
        ItsNatDocSynchronizerImpl syncTask = new ItsNatDocSynchronizerImpl()
        {
            protected void syncMethod()
View Full Code Here

    {
        if (getRequestNormalLoadDoc().isStateless())
        {
            // Descuidadamente es posible que el programador genere nodos cacheados en fase de carga del documento stateless por ejemplo al usar un getNodeReference
            // por eso hacemos un clearNodeCache() al ppio en el cliente para que esos cacheos no tengan ning�n problema con alg�n posible resto de nodos cacheados en el cliente
            ClientDocumentStfulImpl clientDoc = getClientDocumentStful();
            clientDoc.getNodeCacheRegistry().clearCache();
            clientDoc.addCodeToSend("document.getItsNatDoc().clearNodeCache();\n");            
           
            responseDelegate.dispatchRequestListeners(); // Evitamos la serializaci�n innecesaria del ItsNatDocument
           
            // En la fase del evento stateless se hace otro clearNodeCache
        }
        else
        {
            responseDelegate.processResponse();
        }
       
        ClientDocumentStfulImpl clientDoc = getClientDocumentStful();
        if (!clientDoc.canReceiveSOMENormalEvents())
        {
            // No hay eventos y por tanto no hay posibilidad de unload
            ItsNatStfulDocumentImpl itsNatDoc = getItsNatStfulDocument();
            itsNatDoc.setInvalid();
        }
View Full Code Here

TOP

Related Classes of org.itsnat.impl.core.clientdoc.ClientDocumentStfulImpl

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.