1 19 20 package org.netbeans.modules.junit.output; 21 22 import java.util.Collection ; 23 import java.util.Collections ; 24 import java.util.Iterator ; 25 import org.openide.nodes.Children; 26 import org.openide.nodes.Node; 27 28 32 final class TestsuiteNodeChildren extends Children.Keys<Report.Testcase> { 33 34 35 private static final Node[] EMPTY_NODE_ARRAY = new Node[0]; 36 37 38 private final Report report; 39 40 private boolean filtered; 41 42 private boolean live = true; 44 47 48 51 TestsuiteNodeChildren(final Report report, final boolean filtered) { 52 this.report = report; 53 this.filtered = filtered; 54 } 55 56 58 protected void addNotify() { 59 super.addNotify(); 60 61 if (live) { 62 setKeys(report.getTests()); 63 } 64 } 66 67 69 protected void removeNotify() { 70 super.removeNotify(); 71 72 final Collection <Report.Testcase> emptySet = Collections.emptySet(); 73 setKeys(emptySet); 74 } 76 77 79 protected Node[] createNodes(final Report.Testcase testcase) { 80 if (filtered && (testcase.trouble == null)) { 81 return EMPTY_NODE_ARRAY; 82 } 83 return new Node[] {new TestMethodNode(testcase)}; 84 } 85 86 88 void setFiltered(final boolean filtered) { 89 if (filtered == this.filtered) { 90 return; 91 } 92 this.filtered = filtered; 93 94 if ((report.errors + report.failures) == report.totalTests) { 95 return; 96 } 97 98 if (isInitialized()) { 99 for (Report.Testcase testcase : report.getTests()) { 100 if (testcase.trouble == null) { 101 refreshKey(testcase); 102 } 103 } 104 } 105 } 106 107 } 108 | Popular Tags |