Package test.core

Source Code of test.core.TestAsyncServerTask

/*
* TestAsyncServerTask.java
*
* Created on 3 de enero de 2007, 12:33
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package test.core;

import org.itsnat.core.ClientDocument;
import org.itsnat.core.CommMode;
import org.itsnat.core.html.ItsNatHTMLDocument;
import org.itsnat.core.event.ItsNatDOMStdEvent;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.events.Event;
import org.w3c.dom.events.EventListener;
import org.w3c.dom.events.EventTarget;
import org.w3c.dom.html.HTMLButtonElement;
import org.w3c.dom.html.HTMLDocument;
import test.shared.EventListenerSerial;
import test.shared.TestBaseHTMLDocument;

/**
*
* @author jmarranz
*/
public class TestAsyncServerTask extends TestBaseHTMLDocument implements EventListener
{
    protected HTMLButtonElement buttonLock;
    protected HTMLButtonElement buttonNoLock;

    /**
     * Creates a new instance of TestAsyncServerTask
     */
    public TestAsyncServerTask(ItsNatHTMLDocument itsNatDoc)
    {
        super(itsNatDoc);

        load();
    }

    public void load()
    {
        Document doc = itsNatDoc.getDocument();
        this.buttonLock = (HTMLButtonElement)doc.getElementById("asyncTaskLockTestId");
        itsNatDoc.addEventListener((EventTarget)buttonLock,"click", this, false, CommMode.XHR_SYNC);

        this.buttonNoLock = (HTMLButtonElement)doc.getElementById("asyncTaskNoLockTestId");
        itsNatDoc.addEventListener((EventTarget)buttonLock,"click", this, false, CommMode.XHR_SYNC);
    }

    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);
    }

    public void outText(String msg)
    {
        HTMLDocument doc = (HTMLDocument)itsNatDoc.getDocument();
        Element parent = doc.getElementById("asyncTaskLogId");
        parent.appendChild(doc.createTextNode(msg)); // Para que se vea
    }
}
TOP

Related Classes of test.core.TestAsyncServerTask

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.