Changeset 355

Show
Ignore:
Timestamp:
08/26/08 17:46:29 (4 months ago)
Author:
arneke
Message:

Making demo page work regardless of whether you're accessing demo or demo/

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/geowebcache/src/main/java/org/geowebcache/demo/Demo.java

    r344 r355  
    4949 
    5050        } else { 
    51             page = generateHTML(tileLayerDispatcher); 
     51            if(request.getRequestURI().endsWith("demo/")) { 
     52                page = generateHTML(tileLayerDispatcher, true); 
     53            } else { 
     54                page = generateHTML(tileLayerDispatcher, false); 
     55            } 
     56             
    5257        } 
    5358        response.setContentType("text/html"); 
     
    6065    } 
    6166     
    62     private static String generateHTML(TileLayerDispatcher tileLayerDispatcher)  
     67    private static String generateHTML(TileLayerDispatcher tileLayerDispatcher, boolean trailingSlash)  
    6368    throws GeoWebCacheException { 
    6469        String header =  
     
    8590            +"</tr>\n"; 
    8691         
    87         String rows = tableRows(tileLayerDispatcher); 
     92        String rows = tableRows(tileLayerDispatcher, trailingSlash); 
    8893         
    8994        String footer = "</table>\n</body></html>"; 
     
    9297    } 
    9398     
    94     private static String tableRows(TileLayerDispatcher tileLayerDispatcher) 
     99    private static String tableRows(TileLayerDispatcher tileLayerDispatcher, boolean trailingSlash) 
    95100    throws GeoWebCacheException { 
    96101        Iterator<Entry<String,TileLayer>> it =  
     
    103108            buf.append("<tr><td>"+layer.getName()+"</td>"); 
    104109            if(layer.supportsSRS(SRS.getEPSG4326())) { 
    105                 buf.append("<td><a href=\"demo/"+layer.getName()+"?srs=EPSG:4326\">EPSG:4326</a></td>"); 
     110                buf.append("<td>"+generateDemoUrl(layer.getName(), 4326,"EPSG:4326", trailingSlash)+"</td>"); 
    106111            } else { 
    107112                buf.append("<td>EPSG:4326 not supported</td>"); 
     
    109114             
    110115            if(layer.supportsSRS(SRS.getEPSG900913())) { 
    111                 buf.append("<td><a href=\"demo/"+layer.getName()+"?srs=EPSG:900913\">EPSG:900913</a></td>"); 
     116                buf.append("<td>"+generateDemoUrl(layer.getName(), 900913,"EPSG:900913", trailingSlash)+"</td>"); 
    112117            } else { 
    113118                buf.append("<td>EPSG:900913 not supported</td>"); 
     
    115120             
    116121            if(layer.supportsSRS(SRS.getEPSG4326())) { 
    117                 buf.append("<td><a href=\"service/kml/"+layer.getName()+".png.kmz\">KML (PNG)</a></td>" 
    118                 + "<td><a href=\"service/kml/"+layer.getName()+".kml.kmz\">KML (vector)</a></td>"); 
     122                String prefix = ""; 
     123                if(trailingSlash) { 
     124                    prefix = "../"; 
     125                } 
     126                buf.append("<td><a href=\""+prefix+"service/kml/"+layer.getName()+".png.kmz\">KML (PNG)</a></td>" 
     127                + "<td><a href=\""+prefix+"service/kml/"+layer.getName()+".kml.kmz\">KML (vector)</a></td>"); 
    119128            } else { 
    120129                buf.append("<td colspan=\"2\"> Google Earth requires EPSG:4326 support</td>"); 
     
    128137                SRS curSRS = iter.next(); 
    129138                if(curSRS.getNumber() != 4326 && curSRS.getNumber() != 900913) {  
    130                     buf.append("<a href=\"demo/"+layer.getName()+"?srs="+curSRS.toString()+"\">" 
    131                         + curSRS.toString()+"</a><br />"); 
     139                    buf.append(generateDemoUrl(layer.getName(), curSRS.getNumber(),curSRS.toString(), trailingSlash)+"<br />"); 
    132140                    count++; 
    133141                } 
     
    140148        } 
    141149        return buf.toString(); 
     150    } 
     151     
     152    private static String generateDemoUrl(String layerName, int epsgNumber, String text, boolean trailingSlash) { 
     153        if(trailingSlash) { 
     154            return "<a href=\"./"+layerName+"?srs=EPSG:"+epsgNumber+"\">"+text+"</a>"; 
     155        } else { 
     156            return "<a href=\"demo/"+layerName+"?srs=EPSG:"+epsgNumber+"\">"+text+"</a>"; 
     157        } 
    142158    } 
    143159