Examples of ClientDocument


Examples of org.itsnat.core.ClientDocument

        this.linkToStart = doc.getElementById("linkToStartId");

        ((EventTarget)linkToStart).addEventListener("click",this,false);

        ClientDocument clientDoc = itsNatDoc.getClientDocumentOwner();
        this.timer = clientDoc.createItsNatTimer();
    }
View Full Code Here

Examples of org.itsnat.core.ClientDocument

        code.append("var itsNatDoc = document.getItsNatDoc();");
        code.append("var evt = itsNatDoc.createUserEvent('rem_ctrl_request');");
        code.append("var res = confirm('A Remote User Wants To Monitor (" + readWriteStr + ") Your Page. Accept?');");
        code.append("evt.setExtraParam('answer',res);");
        code.append("itsNatDoc.dispatchUserEvent(null,evt);");
        ClientDocument clientOwner = itsNatDoc.getClientDocumentOwner();
        clientOwner.addCodeToSend(code.toString());

        itsNatDoc.removeEventListener(this); // No longer needed
    }
View Full Code Here

Examples of org.itsnat.core.ClientDocument

                    boolean accepted = askToUser(event,msg);
                    event.setAccepted(accepted);
                    if (accepted && !event.isReadOnly())
                    {
                        ItsNatDocument itsNatDoc = event.getItsNatDocument();
                        final ClientDocument clientOwner = itsNatDoc.getClientDocumentOwner();
                        StringBuilder note = new StringBuilder();
                        note.append("alert(\"Dear user, you have accepted that another user can modify the document in server ");
                        note.append("in the same way you can. To help you almost instantaneously see ");
                        note.append("what the other user is doing, a timer has been added to update your page ");
                        note.append("each 3 seconds for 30 minutes\");");
                        clientOwner.addCodeToSend(note);
                       
                        EventListener listener = new EventListener()
                        {
                            public void handleEvent(Event evt)
                            {
                                ItsNatTimerEvent timerEvt = (ItsNatTimerEvent)evt;
                                ItsNatTimerHandle handle = timerEvt.getItsNatTimerHandle();
                                long firstTime = handle.getFirstTime();
                                if ((new Date().getTime() - firstTime) > 30*60*1000) // 30 minutes
                                {
                                    handle.cancel();
                                    clientOwner.addCodeToSend("The timer for updating the client has finished");
                                }
                            }
                        };
                        ItsNatTimer timer = clientOwner.createItsNatTimer();
                        timer.schedule(null,listener,1000,3000);
                    }
                }
            }

            if (!event.isAccepted())
            {
                ItsNatServletResponse response = event.getItsNatServletResponse();
                ItsNatServlet servlet = response.getItsNatServlet();
                @SuppressWarnings("unchecked")
                Map<String,String[]> newParams = new HashMap<String,String[]>(servRequest.getParameterMap());
                newParams.remove("itsnat_action"); // Removes: itsnat_action=attach_doc
                newParams.put("itsnat_doc_name",new String[]{"feashow.ext.core.misc.remCtrlReqRejected"});
                newParams.put("reason", msg); // submitted as array
                servRequest = servlet.createServletRequest(servRequest, newParams);
                servlet.processRequest(servRequest,response.getServletResponse());
            }
        }
        else if (phase == ItsNatAttachedClientEvent.REFRESH)
        {
            ClientDocument observer = event.getClientDocument();
            if (observer.getItsNatDocument().isInvalid())
            {
                observer.addCodeToSend("alert('Observed document was destroyed');");
            }
            else
            {
                long initTime = observer.getCreationTime();
                long currentTime = System.currentTimeMillis();
                long limitMilisec = 15*60*1000;
                // 15 minutes (to avoid a long monitoring session)
                if (currentTime - initTime > limitMilisec)
                {
                    event.setAccepted(false);
                    observer.addCodeToSend("alert('Remote Control Timeout');\n");
                }
            }
        }
        // ItsNatAttachedClientEvent.LOAD & UNLOAD : nothing to do

View Full Code Here

Examples of org.itsnat.core.ClientDocument

    public boolean askToUser(ItsNatAttachedClientEvent event,String[] msg)
    {
        final boolean[] ready = new boolean[] { false };
        final boolean[] answer = new boolean[] { false };

        ClientDocument observer = event.getClientDocument();
        ItsNatDocument itsNatDoc = observer.getItsNatDocument();

        RemoteControlUserRequestEventListener listener =
                new RemoteControlUserRequestEventListener(event.isReadOnly(),ready,answer);

        synchronized(itsNatDoc)
View Full Code Here

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

Examples of org.itsnat.core.ClientDocument

        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

Examples of org.itsnat.core.ClientDocument

    }

    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

Examples of org.itsnat.core.ClientDocument

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

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

Examples of org.itsnat.core.ClientDocument

            }
        };

        // 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

Examples of org.itsnat.core.ClientDocument

    {
        //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
TOP
Copyright © 2018 www.massapi.com. 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.