throws GeoWebCacheException {
StringBuffer buf = new StringBuffer();
Set<String> layerList = new TreeSet<String>(tileLayerDispatcher.getLayerNames());
for(String layerName : layerList) {
TileLayer layer = tileLayerDispatcher.getTileLayer(layerName);
buf.append("<tr><td style=\"min-width: 100px;\"><strong>"+layer.getName() + "</strong><br />\n");
buf.append("<a href=\"rest/seed/"+layer.getName()+"\">Seed this layer</a>\n");
buf.append("</td><td>" + layer.isEnabled() + "</td>");
buf.append("<td><table width=\"100%\">");
int count = 0;
Iterator<GridSubset> iter = layer.getGridSubsets().values().iterator();
while(iter.hasNext()) {
GridSubset gridSubset = iter.next();
String gridSetName = gridSubset.getName();
if(gridSetName.length() > 20) {
gridSetName = gridSetName.substring(0, 20) + "...";
}
buf.append("<tr><td style=\"width: 170px;\">").append(gridSetName);
buf.append("</td><td>OpenLayers: [");
Iterator<MimeType> mimeIter = layer.getMimeTypes().iterator();
boolean prependComma = false;
while(mimeIter.hasNext()) {
MimeType mime = mimeIter.next();
if(mime instanceof ImageMime) {
if(prependComma) {
buf.append(", ");
} else {
prependComma = true;
}
buf.append(generateDemoUrl(layer.getName(), gridSubset.getName(), (ImageMime) mime));
}
}
buf.append("]</td><td>\n");
if(gridSubset.getName().equals(gridSetBroker.WORLD_EPSG4326.getName())) {
buf.append(" KML: [");
String prefix = "";
prependComma = false;
Iterator<MimeType> kmlIter = layer.getMimeTypes().iterator();
while(kmlIter.hasNext()) {
MimeType mime = kmlIter.next();
if(mime instanceof ImageMime || mime == XMLMime.kml) {
if(prependComma) {
buf.append(", ");
} else {
prependComma = true;
}
buf.append("<a href=\""+prefix+"service/kml/"+layer.getName()+"."+mime.getFileExtension()+".kml\">"+mime.getFileExtension()+"</a>");
} else if(mime == XMLMime.kmz) {
if(prependComma) {
buf.append(", ");
} else {
prependComma = true;
}
buf.append("<a href=\""+prefix+"service/kml/"+layer.getName()+".kml.kmz\">kmz</a>");
}
}
buf.append("]");
} else {
// No Google Earth support