1 19 20 package org.netbeans.modules.junit.output; 21 22 import org.openide.nodes.AbstractNode; 23 import org.openide.nodes.Children; 24 import org.openide.util.NbBundle; 25 26 30 final class TestsuiteNode extends AbstractNode { 31 32 private String suiteName; 33 private Report report; 34 private boolean filtered; 35 36 42 TestsuiteNode(final String suiteName, final boolean filtered) { 43 this(null, suiteName, filtered); 44 } 45 46 49 TestsuiteNode(final Report report, final boolean filtered) { 50 this(report, null, filtered); 51 } 52 53 59 private TestsuiteNode(final Report report, 60 final String suiteName, 61 final boolean filtered) { 62 super(report != null ? new TestsuiteNodeChildren(report, filtered) 63 : Children.LEAF); 64 65 this.report = report; 66 this.suiteName = (report != null) ? report.suiteClassName : suiteName; 67 this.filtered = filtered; 68 69 assert this.suiteName != null; 70 71 setDisplayName(); 72 setIconBaseWithExtension( 73 "org/netbeans/modules/junit/output/res/class.gif"); } 75 76 78 void displayReport(final Report report) { 79 assert (this.report == null) && (report != null); 80 assert report.suiteClassName.equals(this.suiteName) 81 || (this.suiteName == ResultDisplayHandler.ANONYMOUS_SUITE); 82 83 this.report = report; 84 suiteName = report.suiteClassName; 85 86 setDisplayName(); 87 setChildren(new TestsuiteNodeChildren(report, filtered)); 88 } 89 90 96 Report getReport() { 97 return report; 98 } 99 100 102 private void setDisplayName() { 103 String displayName; 104 if (report == null) { 105 if (suiteName != ResultDisplayHandler.ANONYMOUS_SUITE) { 106 displayName = NbBundle.getMessage( 107 getClass(), 108 "MSG_TestsuiteRunning", suiteName); 110 } else { 111 displayName = NbBundle.getMessage( 112 getClass(), 113 "MSG_TestsuiteRunningNoname"); } 115 } else { 116 boolean containsFailed = containsFailed(); 117 displayName = containsFailed 118 ? NbBundle.getMessage( 119 getClass(), 120 "MSG_TestsuiteFailed", suiteName) 122 : suiteName; 123 } 124 setDisplayName(displayName); 125 } 126 127 129 public String getHtmlDisplayName() { 130 131 assert suiteName != null; 132 133 StringBuffer buf = new StringBuffer (60); 134 if (suiteName != ResultDisplayHandler.ANONYMOUS_SUITE) { 135 buf.append(suiteName); 136 buf.append(" "); } else { 138 buf.append(NbBundle.getMessage(getClass(), 139 "MSG_TestsuiteNoname")); buf.append(" "); 141 } 142 if (report != null) { 143 final boolean containsFailed = containsFailed(); 144 145 buf.append("<font color='#"); buf.append(containsFailed ? "FF0000'>" : "00CC00'>"); buf.append(NbBundle.getMessage( 148 getClass(), 149 containsFailed 150 ? "MSG_TestsuiteFailed_HTML" : "MSG_TestsuitePassed_HTML")); buf.append("</font>"); } else { 154 buf.append(NbBundle.getMessage( 155 getClass(), 156 "MSG_TestsuiteRunning_HTML")); } 158 return buf.toString(); 159 } 160 161 163 void setFiltered(final boolean filtered) { 164 if (filtered == this.filtered) { 165 return; 166 } 167 this.filtered = filtered; 168 169 Children children = getChildren(); 170 if (children != Children.LEAF) { 171 ((TestsuiteNodeChildren) children).setFiltered(filtered); 172 } 173 } 174 175 177 private boolean containsFailed() { 178 return (report != null) && (report.failures + report.errors != 0); 179 } 180 181 } 182 | Popular Tags |