Package test.core

Source Code of test.core.TestEventListenerChain

/*
* OnClickFireEventFromServerTest.java
*
* Created on 6 de agosto de 2007, 15:19
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/

package test.core;


import java.io.Serializable;
import org.itsnat.core.ClientDocument;
import org.itsnat.core.ItsNatDocument;
import org.itsnat.core.event.ItsNatEventListenerChain;
import org.itsnat.core.event.ItsNatEvent;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
import org.w3c.dom.events.Event;
import org.w3c.dom.events.EventListener;
import org.w3c.dom.events.EventTarget;
import test.shared.EventListenerSerial;

/**
*
* @author jmarranz
*/
public class TestEventListenerChain implements EventListener,Serializable
{
    protected ItsNatDocument itsNatDoc;
    protected Element link;

    /** Creates a new instance of OnClickFireEventFromServerTest */
    public TestEventListenerChain(ItsNatDocument itsNatDoc)
    {
        this.itsNatDoc = itsNatDoc;
        load();
    }

    public void load()
    {
        final Document doc = itsNatDoc.getDocument();
        this.link = doc.getElementById("testEventListenerChainId");
        ((EventTarget)link).addEventListener("click",this,false);
    }

    public void handleEvent(Event evt)
    {
        ClientDocument clientDoc = ((ItsNatEvent)evt).getClientDocument();

        EventListener global = new EventListenerSerial()
        {
            public void handleEvent(Event evt)
            {
                ItsNatEvent itsNatEvt = ((ItsNatEvent)evt);
                ItsNatEventListenerChain chain = itsNatEvt.getItsNatEventListenerChain();
                try
                {
                    chain.continueChain();
                }
                catch(Exception ex)
                {
                    if (!ex.getMessage().equals("Must be catched"))
                        throw new RuntimeException("FAILED TEST");

                    Text text = (Text)link.getFirstChild();
                    text.setData(text.getData() + " => OK 1-2");
                    itsNatDoc.removeEventListener(this);
                }
            }
        };
        itsNatDoc.addEventListener(global)// Para despu�s, cuando se ejecute el evento continue

        EventListener contListener1 = new EventListenerSerial()
        {
            public void handleEvent(Event evt)
            {
                throw new RuntimeException("Must be catched");
            }
        };
        clientDoc.addContinueEventListener(null, contListener1);

        EventListener contListener2 = new EventListenerSerial()
        {
            public void handleEvent(Event evt)
            {
                Text text = (Text)link.getFirstChild();
                text.setData(text.getData() + " => OK 2-2");
            }
        };
        clientDoc.addContinueEventListener(null, contListener2);
    }
}
TOP

Related Classes of test.core.TestEventListenerChain

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.