package dom4wspart3;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.util.*;
import java.io.File;
//Events:
import org.w3c.dom.events.EventTarget;
import org.w3c.dom.events.EventListener;
import org.w3c.dom.events.Event;
import org.w3c.dom.events.MutationEvent;
public class DOMSampleEvents {
public static void main(String argv[]) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
if (!db.getDOMImplementation().hasFeature("Events", "2.0") ) {
System.out.println("Events not supported");
return;
}
Document doc = db.newDocument();
Element wrapper = doc.createElementNS(
"http://domsamples.wrapper",
"Wrapper");
doc.appendChild(wrapper);
EventTarget docEventTarget = (EventTarget)doc;
docEventTarget.addEventListener("DOMAttrModified", new MyEventListener(), false);
wrapper.setAttribute("test", "value");
wrapper.setAttribute("test", "value1");
}//try
catch (Exception e) {
e.printStackTrace(System.err);
}//catch
}//main
}//DOMSampleEvents
class MyEventListener implements EventListener {
public void handleEvent(Event ev) {
System.out.println("Handler called");
System.out.println("Type of the event:"+ev.getType());
if (ev.getType().equals("DOMAttrModified")) {
MutationEvent mev = (MutationEvent)ev;
System.out.println(mev.getAttrChange());
System.out.println("Old value:"+mev.getPrevValue() );
System.out.println("New value:"+mev.getNewValue() );
}//if
}//handleEvent
}//MyEventListener