Package org.itsnat.impl.core.event.client.domstd.w3c

Examples of org.itsnat.impl.core.event.client.domstd.w3c.W3CMutationEventImpl


        String type = mutEvent.getType();

        if (type.equals("DOMNodeInserted"))
        {
            Element parent = (Element)mutEvent.getRelatedNode();
            W3CMutationEventImpl w3cMutEvent = (W3CMutationEventImpl)mutEvent;
            Node refNode = w3cMutEvent.getRefChild();

            /* El target deber�a ser el nuevo nodo pero en este caso el nodo se obtiene a partir del node path
             obtenido en el cliente a partir del nuevo nodo, si se us� un insertBefore el nuevo nodo ocupar�
             el lugar (respecto al orden) del nodo usado como referencia al insertar (el refNode), por ello el servidor con dicho path
             obtenemos el nodo de referencia lo cual es genial pues sabemos donde insertar.
             Si se us� appendChild el path del nuevo nodo no existe en el servidor y el refNode ser� nulo, as� sabemos que se us� appendChild
             (o insertBefore con referencia nula).
             Este tipo de cosas son las usadas para formar el path enviado por el cliente y usado en getRefChild()
             */

            // http://webfx.eae.net/dhtml/ieemu/htmlmodel.html
            // Con getNewValue() obtenemos el markup como string del nuevo nodo, esto no es est�ndar pero nos vale.
            String newValue = mutEvent.getNewValue();
            DocumentFragment newNodeFragment = itsNatDoc.getItsNatDocumentTemplateVersion().parseFragmentToDocFragment(newValue,itsNatDoc);
            Node newNode = newNodeFragment.getFirstChild();
            parent.insertBefore(newNode,refNode); // refNode puede ser null
            w3cMutEvent.setTargetNodeInserted((EventTarget)newNode); // De esta manera el usuario ver� el target de una forma est�ndar
        }
        else if (type.equals("DOMNodeRemoved"))
        {
            // El evento "DOMNodeRemoved" se procesa antes de que se haya quitado
            // de forma efectiva el nodo, por lo que al servidor le llega el path del nodo a quitar (el target)
            // La eliminaci�n ha de hacerse despu�s del despachado de listeners de acuerdo con el W3C DOM Events
        }
        else if (type.equals("DOMAttrModified"))
        {
            Attr attr = (Attr)mutEvent.getRelatedNode();
            Element targetElem = (Element)mutEvent.getTarget();
            int changeType = mutEvent.getAttrChange();
            switch(changeType)
            {
                case MutationEvent.ADDITION:
                    String attrName = mutEvent.getAttrName();
                    DOMUtilInternal.setAttribute(targetElem,attrName,mutEvent.getNewValue());
                    attr = targetElem.getAttributeNode(attrName);
                    W3CMutationEventImpl w3cMutEvent = (W3CMutationEventImpl)mutEvent;
                    w3cMutEvent.setRelatedNodeAddedAttr(attr);
                    break;
                case MutationEvent.MODIFICATION:
                    attr.setValue(mutEvent.getNewValue());
                    break;
                case MutationEvent.REMOVAL:
View Full Code Here

TOP

Related Classes of org.itsnat.impl.core.event.client.domstd.w3c.W3CMutationEventImpl

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.