Package org.itsnat.core

Examples of org.itsnat.core.ClientDocument


            if (itsNatEvt.getItsNatDocument() == null)
            {
                // Hemos perdido la sesi�n o la p�gina
                // El ClientDocument es especial para el caso de documento no encontrado
                // a�n as� algunas cosas funcionan.
                ClientDocument clientDoc = itsNatEvt.getClientDocument();
                clientDoc.addCodeToSend("if (confirm('Session or page is lost. Reloading...'))");
                clientDoc.addCodeToSend("  window.location.reload(true);");

                itsNatEvt.getItsNatEventListenerChain().stop();
            }
        }
    }
View Full Code Here


        itsNatDoc.addEventListener(this);
    }

    public static void testSerialization(ItsNatServletRequest request)
    {
        ClientDocument clientDoc = request.getClientDocument();
        //String file = "c:\\tmp\\itsnat_serialize_test.tmp";

        ByteArrayOutputStream ostream = null;
        ByteArrayInputStream istream = null;
        try
        {
            ItsNatSession session = clientDoc.getItsNatSession();

           ostream = new ByteArrayOutputStream();
           ObjectOutputStream p = new DebuggingObjectOutputStream(ostream);
           p.writeObject(session);
           // p.writeObject(clientDoc); // Write the tree to the stream.
View Full Code Here

    }

    public void fireEventsFromServer()
    {
        final ItsNatDocument itsNatDoc = getItsNatDocument();
        final ClientDocument clientDoc = itsNatDoc.getClientDocumentOwner();

        Runnable dispCode = new Runnable()
        {
            public void run()
            {
                for(int i = 0; i < buttonElems.length; i++)
                {
                    Element buttonElem;
                    MouseEvent mouseEvt;
                    synchronized(itsNatDoc)
                    {
                        Document doc = itsNatDoc.getDocument();
                        AbstractView view = ((DocumentView)doc).getDefaultView();

                        mouseEvt = (MouseEvent)((DocumentEvent)doc).createEvent("MouseEvents");
                        mouseEvt.initMouseEvent("click",true,true,view,0,
                                0,0,0,0,false,false,false,false,(short)0/*left button*/,null);

                        buttonElem = buttonElems[i];
                    }

                    ((EventTarget)buttonElem).dispatchEvent(mouseEvt);
                    // Alternatives:
                    // itsNatDoc.dispatchEvent((EventTarget)buttonElem,mouseEvt);
                    // clientDoc.dispatchEvent((EventTarget)buttonElem,mouseEvt);
                }

                ItsNatUserEvent userEvt;
                synchronized(itsNatDoc)
                {
                    Document doc = itsNatDoc.getDocument();
                    userEvt = (ItsNatUserEvent)((DocumentEvent)doc).createEvent("itsnat:UserEvents");
                    userEvt.initEvent("itsnat:user:myEvent",false,false);
                }

                ((EventTarget)userButton).dispatchEvent(userEvt);
            }
        };

        clientDoc.startEventDispatcherThread(dispCode);
    }
View Full Code Here

                input1.getParentNode().removeChild(input1);
                div.getParentNode().removeChild(div);
            }
        };

        ClientDocument clientDoc = ((ItsNatEvent)evt).getClientDocument();
        clientDoc.addContinueEventListener((EventTarget)doc, listener);
    }
View Full Code Here

            }
        };

        // Evitamos ejecutar el test como parte del evento load pues en el evento load el contexto es window (el currentTarget)
        // y queremos probar que el contexto sea autom�ticamente window
        ClientDocument clientDoc = ((ItsNatEvent)evt).getClientDocument();
        clientDoc.addContinueEventListener(null, listener);
    }
View Full Code Here

    {
        //ItsNatDocument itsNatDoc = event.getItsNatDocument();

        int phase = event.getPhase();

        ClientDocument observer = event.getClientDocument();
        ItsNatDocument itsNatDoc = event.getItsNatDocument();
        ServletResponse response = event.getItsNatServletResponse().getServletResponse();

        switch(phase)
        {
            case ItsNatAttachedClientEvent.REQUEST:
                if (event instanceof ItsNatAttachedClientTimerEvent)
                {
                    ItsNatAttachedClientTimerEvent timerEvent = (ItsNatAttachedClientTimerEvent)event;
                    boolean accepted = (timerEvent.getRefreshInterval() >= 1000);
                    if (!accepted)
                    {
                        try
                        {
                            Writer out = response.getWriter();
                            out.write("<html><body><h1>Remote control request rejected. Interval too short: ");
                            out.write(Integer.toString(timerEvent.getRefreshInterval()));
                            out.write("</h1></body></html>");
                        }
                        catch(IOException ex) { throw new RuntimeException(ex); }
                    }
                    event.setAccepted(accepted);
                }
                else if (event instanceof ItsNatAttachedClientCometEvent)
                {
                    event.setAccepted(true); // Nothing to check
                }
                else // "None" refresh mode
                {
                    event.setAccepted(true); // Nothing to check
                }

                if (event.getWaitDocTimeout() > 30000) // Demasiado tiempo de espera
                    event.setAccepted(false);
               
                if (!event.isAccepted())
                    return;

                break;

            case ItsNatAttachedClientEvent.LOAD:
                 //event.setAccepted(false);
                break;
            case ItsNatAttachedClientEvent.REFRESH:
                if (itsNatDoc.isInvalid())
                {
                    observer.addCodeToSend("alert('Observed document was destroyed');");
                }
                else if (event instanceof ItsNatAttachedClientTimerEvent)
                {
                    // Esto no es lo normal (modificar a trav�s de un visor el documento)
                    // pero es para probar.
                    // Lo normal es a partir del estado del DOM hacer algo en consecuencia
                    // junto con la sessi�n del "observado" que tenemos acceso a ella via ItsNatDocument
                    ItsNatAttachedClientTimerEvent timerEvent = (ItsNatAttachedClientTimerEvent)event;

                    long initTime = timerEvent.getItsNatServletRequest().getClientDocument().getCreationTime();
                    long currentTime = System.currentTimeMillis();
                    int limitMilisec = 15*60*1000; // 15 minutos, para evitar que est� indefinidamente
                    if (currentTime - initTime > limitMilisec)
                    {
                        event.setAccepted(false);
                        observer.addCodeToSend("alert('Remote Control Timeout');");
                    }
                    else if (refreshMsg)
                    {
                        Document doc = itsNatDoc.getDocument();
                        if (doc instanceof HTMLDocument) // En el ejemplo SVG no funciona obviamente
View Full Code Here

    }

    public void handleEvent(final Event evt)
    {
        ItsNatDOMStdEvent itsNatEvent = (ItsNatDOMStdEvent)evt;
        ClientDocument clientDoc = itsNatEvent.getClientDocument();

        EventListener listener = new EventListenerSerial()
        {
            public void handleEvent(Event evt)
            {
                ItsNatContinueEvent contEvt = (ItsNatContinueEvent)evt;
                String title = (String)contEvt.getExtraParam("title");
                Text text = (Text)link.getFirstChild();
                text.setData(text.getData() + " => " + title);
            }
        };

        ParamTransport[] extraParams = new ParamTransport[] { new CustomParamTransport("title","document.title") };
        clientDoc.addContinueEventListener(null,listener,itsNatEvent.getCommMode(),extraParams,null,-1);
    }
View Full Code Here

            StringBuilder code = new StringBuilder();
            code.append("var elem = " + ref + ";");
            code.append("var doc = elem.contentDocument ? elem.contentDocument : elem.contentWindow.document;"); // contentWindow in MSIE
            code.append("doc.getItsNatDoc().fireUserEvent(null,'update');");

            ClientDocument clientDoc = ((ItsNatEvent)evt).getClientDocument();
            clientDoc.addCodeToSend(code.toString());
        }
    }
View Full Code Here

    }

    public void handleEvent(final Event evt)
    {
        ItsNatDOMStdEvent itsNatEvent = (ItsNatDOMStdEvent)evt;
        final ClientDocument clientDoc = itsNatEvent.getClientDocument();
        final ItsNatHTMLDocument itsNatDoc = (ItsNatHTMLDocument)itsNatEvent.getItsNatDocument();
        outText("OK " + evt.getType() + " "); // Para que se vea

        final boolean lockDoc = (evt.getCurrentTarget() == buttonLock);

        final EventListener listener = new EventListenerSerial()
        {
            public void handleEvent(final Event evt)
            {
                outText("OK End Async Task Lock Doc: " + lockDoc + " 2-2 ");
            }
        };

        Runnable task = new Runnable()
        {
            public void run()
            {
                try
                {
                    Thread.sleep(2000);
                }
                catch(InterruptedException ex) { }

                synchronized(itsNatDoc) // Si se registr� la tarea con lockDoc = true entonces es redundante (no hace nada, ya est� bloqueado)
                {
                    outText("OK End Async Task Lock Doc: " + lockDoc + " 1-2 ");
                }
            }
        };
        clientDoc.addAsynchronousTask(task,lockDoc,0,null,listener,CommMode.XHR_ASYNC,null,null,-1);
    }
View Full Code Here

                // Limpiamos
                style.getParentNode().removeChild(style);
            }
        };

        ClientDocument clientDoc = ((ItsNatEvent)evt).getClientDocument();
        clientDoc.addContinueEventListener((EventTarget)doc, listener);
    }
View Full Code Here

TOP

Related Classes of org.itsnat.core.ClientDocument

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.