1 2 57 58 package dom.events; 59 60 import org.w3c.dom.Attr ; 61 import org.w3c.dom.Document ; 62 import org.w3c.dom.Element ; 63 import org.w3c.dom.NamedNodeMap ; 64 import org.w3c.dom.Node ; 65 import org.w3c.dom.events.EventTarget ; 66 67 public class Test 68 { 69 EventReporter sharedReporter=new EventReporter(); 70 71 public static void main(String [] args) 72 { 73 Test met=new Test(); 74 met.runTest(); 75 } 76 77 void runTest() 78 { 79 Document doc=new org.enhydra.apache.xerces.dom.DocumentImpl(); 80 reportAllMutations(doc); 81 82 Element root=addNoisyElement(doc,doc,0); 83 Element e=null; 84 int i; 85 86 e=addNoisyElement(doc,root,0); 88 Attr a=addNoisyAttr(doc,e,0); 89 a.setNodeValue("Updated A0 of E0, prepare to be acidulated."); 90 NamedNodeMap nnm=e.getAttributes(); 91 nnm.removeNamedItem(a.getName()); 92 nnm.setNamedItem(a); 93 94 System.out.println("\nAdd/remove a preconstructed tree; tests AddedToDocument\n"); 98 sharedReporter.off(); 99 Element lateAdd=doc.createElement("lateAdd"); 100 reportAllMutations(lateAdd); 101 e=lateAdd; 102 for(i=0;i<2;++i) 103 { 104 e=addNoisyElement(doc,e,i); 105 addNoisyAttr(doc,e,i); 106 } 107 sharedReporter.on(); 108 root.appendChild(lateAdd); 109 root.removeChild(lateAdd); 110 111 System.out.println("\nReplace a preconstructed tree; tests AddedToDocument\n"); 112 113 sharedReporter.off(); 114 Node e0=root.replaceChild(lateAdd,root.getFirstChild()); 115 sharedReporter.on(); 116 root.replaceChild(e0,lateAdd); 117 118 119 System.out.println("Done"); 120 } 121 122 Element addNoisyElement(Document doc,Node parent,int index) 123 { 124 String nodeName="Root"; 125 if(parent!=doc) 126 nodeName=parent.getNodeName()+"_E"+index; 127 Element e=doc.createElement(nodeName); 128 reportAllMutations(e); 129 parent.appendChild(e); 130 return e; 131 } 132 133 Attr addNoisyAttr(Document doc,Element parent,int index) 134 { 135 String attrName=parent.getNodeName()+"_A"+index; 136 Attr a=doc.createAttribute(attrName); 137 reportAllMutations(a); 138 a.setNodeValue("Initialized A"+index+" of "+parent.getNodeName()); 139 parent.setAttributeNode(a); 140 return a; 141 } 142 143 void reportAllMutations(Node n) 144 { 145 String [] evtNames={ 146 "DOMSubtreeModified","DOMAttrModified","DOMCharacterDataModified", 147 "DOMNodeInserted","DOMNodeRemoved", 148 "DOMNodeInsertedIntoDocument","DOMNodeRemovedFromDocument", 149 }; 150 151 EventTarget t=(EventTarget )n; 152 153 for(int i=evtNames.length-1; 154 i>=0; 155 --i) 156 { 157 t.addEventListener(evtNames[i], sharedReporter, true); 158 t.addEventListener(evtNames[i], sharedReporter, false); 159 } 160 161 } 162 } 163 | Popular Tags |