Package org.itsnat.feashow.features.core.listeners

Source Code of org.itsnat.feashow.features.core.listeners.AutoSyncServerFromClientTreeNode

/*
* This file is not part of the ItsNat framework.
*
* Original source code use and closed source derivatives are authorized
* to third parties with no restriction or fee.
* The original source code is owned by the author.
*
* This program is distributed AS IS in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* (C) Innowhere Software a service of Jose Maria Arranz Santamaria, Spanish citizen.
*/

package org.itsnat.feashow.features.core.listeners;

import org.itsnat.core.ItsNatDocument;
import org.itsnat.core.event.NodeAttributeTransport;
import org.itsnat.core.event.NodeCompleteTransport;
import org.itsnat.core.event.NodeInnerTransport;
import org.itsnat.core.event.NodePropertyTransport;
import org.itsnat.feashow.FeatureTreeNode;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
import org.w3c.dom.events.Event;
import org.w3c.dom.events.EventListener;
import org.w3c.dom.events.EventTarget;
import org.w3c.dom.html.HTMLInputElement;

public class AutoSyncServerFromClientTreeNode extends FeatureTreeNode implements EventListener
{
    protected Element linkSyncAttr;
    protected Element linkSyncNodeInner;
    protected Element linkSyncNodeComp;
    protected HTMLInputElement inputSyncProp;

    public AutoSyncServerFromClientTreeNode()
    {
    }

    public void startExamplePanel()
    {
        ItsNatDocument itsNatDoc = getItsNatDocument();
        Document doc = itsNatDoc.getDocument();

        this.linkSyncAttr = doc.getElementById("linkSyncAttrId");
        itsNatDoc.addEventListener((EventTarget)linkSyncAttr,"click",this,false,new NodeAttributeTransport("style"));
        // Alternative:
        // itsNatDoc.addEventListener((EventTarget)linkSyncAttr,"click",this,false,new NodeAllAttribTransport());

        this.linkSyncNodeInner = doc.getElementById("linkSyncNodeInnerId");
        itsNatDoc.addEventListener((EventTarget)linkSyncNodeInner,"click",this,false,new NodeInnerTransport());

        this.linkSyncNodeComp = doc.getElementById("linkSyncNodeCompId");
        itsNatDoc.addEventListener((EventTarget)linkSyncNodeComp,"click",this,false,new NodeCompleteTransport());

        this.inputSyncProp = (HTMLInputElement)doc.getElementById("linkSyncPropId");
        itsNatDoc.addEventListener((EventTarget)inputSyncProp,"change",this,false,new NodePropertyTransport("value"));
        // Alternative:
        //itsNatDoc.addEventListener((EventTarget)inputSyncProp,"change",this,false,new NodePropertyTransport("value",String.class));
    }

    public void endExamplePanel()
    {
        ((EventTarget)linkSyncAttr).removeEventListener("click",this,false);
        this.linkSyncAttr = null;

        ((EventTarget)linkSyncNodeInner).removeEventListener("click",this,false);
        this.linkSyncNodeInner = null;

        ((EventTarget)linkSyncNodeComp).removeEventListener("click",this,false);
        this.linkSyncNodeComp = null;

        ((EventTarget)inputSyncProp).removeEventListener("change",this,false);
        this.inputSyncProp = null;
    }

    public void handleEvent(Event evt)
    {
        Element currTarget = (Element)evt.getCurrentTarget();
        if (currTarget == linkSyncAttr)
        {
            log("New style value: " + currTarget.getAttribute("style"));
        }
        else if (currTarget == linkSyncNodeInner)
        {
            Node newNode = currTarget.getLastChild();
            Text text = (Text)newNode.getFirstChild();
            log("New node : " + newNode + " " + text.getData());
        }
        else if (currTarget == linkSyncNodeComp)
        {
            Node newNode = currTarget.getLastChild();
            Text text = (Text)newNode.getFirstChild();
            log("New node : " + newNode + " " + text.getData());
            log("New style value: " + currTarget.getAttribute("style"));
        }
        else if (currTarget == inputSyncProp)
        {
            log("New value: " + inputSyncProp.getValue());
        }
    }

}
TOP

Related Classes of org.itsnat.feashow.features.core.listeners.AutoSyncServerFromClientTreeNode

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.