package com.smartgwt.sample.showcase.client;
// DetailsReport allows us to limit the reported error details,
// if desired. Note, we cannot extend final class StringBuffer.
public class DetailsReport {
private StringBuffer buffer;
private final int maxLength;
DetailsReport() {
buffer = new StringBuffer("");
maxLength = ShowcaseConfiguration.getSingleton().getMaximumDetailsLength();
}
// append; remove excess and insert ellipsis if needed
public void addDetails(String s) {
if( maxLength > 0 ) {
if (buffer.length() <= maxLength) {
buffer.append(s);
if (buffer.length() > maxLength) {
int extra = buffer.length() - maxLength;
int start = buffer.length() / 2 - extra / 2;
buffer.delete(start, start + extra);
buffer.insert(start, "...");
}
}
} else {
buffer.append(s);
}
}
public boolean isEmpty() {
return buffer.length() == 0;
}
public String toString() {
return buffer.toString();
}
}