if (log.isDebugEnabled()) {
log.debug("valueChanged : selected node - " + node);
}
StyledDocument statsDoc = stats.getStyledDocument();
try {
statsDoc.remove(0, statsDoc.getLength());
sampleDataField.setText(""); // $NON-NLS-1$
results.setText(""); // $NON-NLS-1$
if (node != null) {
Object userObject = node.getUserObject();
if(userObject instanceof SampleResult) {
SampleResult res = (SampleResult) userObject;
// We are displaying a SampleResult
setupTabPaneForSampleResult();
if (log.isDebugEnabled()) {
log.debug("valueChanged1 : sample result - " + res);
}
// load time label
log.debug("valueChanged1 : load time - " + res.getTime());
String sd = res.getSamplerData();
if (sd != null) {
String rh = res.getRequestHeaders();
if (rh != null) {
StringBuffer sb = new StringBuffer(sd.length() + rh.length()+20);
sb.append(sd);
sb.append("\n"); //$NON-NLS-1$
sb.append(JMeterUtils.getResString("view_results_request_headers")); //$NON-NLS-1$
sb.append("\n"); //$NON-NLS-1$
sb.append(rh);
sd = sb.toString();
}
sampleDataField.setText(sd);
}
StringBuffer statsBuff = new StringBuffer(200);
statsBuff.append(JMeterUtils.getResString("view_results_thread_name")).append(res.getThreadName()).append(NL); //$NON-NLS-1$
String startTime = dateFormat.format(new Date(res.getStartTime()));
statsBuff.append(JMeterUtils.getResString("view_results_sample_start")).append(startTime).append(NL); //$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_load_time")).append(res.getTime()).append(NL); //$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_latency")).append(res.getLatency()).append(NL); //$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_size_in_bytes")).append(res.getBytes()).append(NL); //$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_sample_count")).append(res.getSampleCount()).append(NL); //$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_error_count")).append(res.getErrorCount()).append(NL); //$NON-NLS-1$
statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
statsBuff = new StringBuffer(); //reset for reuse
String responseCode = res.getResponseCode();
log.debug("valueChanged1 : response code - " + responseCode);
int responseLevel = 0;
if (responseCode != null) {
try {
responseLevel = Integer.parseInt(responseCode) / 100;
} catch (NumberFormatException numberFormatException) {
// no need to change the foreground color
}
}
Style style = null;
switch (responseLevel) {
case 3:
style = statsDoc.getStyle(STYLE_REDIRECT);
break;
case 4:
style = statsDoc.getStyle(STYLE_CLIENT_ERROR);
break;
case 5:
style = statsDoc.getStyle(STYLE_SERVER_ERROR);
break;
}
statsBuff.append(JMeterUtils.getResString("view_results_response_code")).append(responseCode).append(NL); //$NON-NLS-1$
statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), style);
statsBuff = new StringBuffer(100); //reset for reuse
// response message label
String responseMsgStr = res.getResponseMessage();
log.debug("valueChanged1 : response message - " + responseMsgStr);
statsBuff.append(JMeterUtils.getResString("view_results_response_message")).append(responseMsgStr).append(NL); //$NON-NLS-1$
statsBuff.append(NL);
statsBuff.append(JMeterUtils.getResString("view_results_response_headers")).append(NL); //$NON-NLS-1$
statsBuff.append(res.getResponseHeaders()).append(NL);
statsBuff.append(NL);
final String samplerClass = res.getClass().getName();
statsBuff.append(samplerClass.substring(1+samplerClass.lastIndexOf('.'))).append(" " + JMeterUtils.getResString("view_results_fields")).append(NL); //$NON-NLS-1$
statsBuff.append("ContentType: ").append(res.getContentType()).append(NL);
statsBuff.append("DataEncoding: ").append(res.getDataEncodingNoDefault()).append(NL);
statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
statsBuff = null; // Done
// get the text response and image icon
// to determine which is NOT null
if ((SampleResult.TEXT).equals(res.getDataType())) // equals(null) is OK
{
String response = getResponseAsString(res);
if (command.equals(TEXT_COMMAND)) {
showTextResponse(response);
} else if (command.equals(HTML_COMMAND)) {
showRenderedResponse(response, res);
} else if (command.equals(JSON_COMMAND)) {
showRenderJSONResponse(response);
} else if (command.equals(XML_COMMAND)) {
showRenderXMLResponse(res);
}
} else {
byte[] responseBytes = res.getResponseData();
if (responseBytes != null) {
showImage(new ImageIcon(responseBytes)); //TODO implement other non-text types
}
}
}
else if(userObject instanceof AssertionResult) {
AssertionResult res = (AssertionResult) userObject;
// We are displaying an AssertionResult
setupTabPaneForAssertionResult();
if (log.isDebugEnabled()) {
log.debug("valueChanged1 : sample result - " + res);
}
StringBuffer statsBuff = new StringBuffer(100);
statsBuff.append(JMeterUtils.getResString("view_results_assertion_error")).append(res.isError()).append(NL); //$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_assertion_failure")).append(res.isFailure()).append(NL); //$NON-NLS-1$
statsBuff.append(JMeterUtils.getResString("view_results_assertion_failure_message")).append(res.getFailureMessage()).append(NL); //$NON-NLS-1$
statsDoc.insertString(statsDoc.getLength(), statsBuff.toString(), null);
statsBuff = null;
}
}
} catch (BadLocationException exc) {
log.error("Error setting statistics text", exc);