/* * RHQ Management Platform * Copyright (C) 2005-2010 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.gui.content; import javax.servlet.http.HttpServletRequest; public class HtmlRenderer { public static String formStart(String title, String currentURI) { StringBuffer sb = new StringBuffer(); formStart(sb, title, currentURI); return sb.toString(); } public static void formStart(StringBuffer sb, String title, String currentURI) { sb.append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n"); sb.append("<html>\n"); sb.append("<head>\n"); sb.append("<title>Index of " + currentURI + "</title>\n"); sb.append("</head>\n"); sb.append("<body>\n"); sb.append("<h1>Index of " + currentURI + "</h1>\n"); sb.append("<table><tr><th><img src=\"" + getIconPath("/icons/blank.gif") + "\" alt=\"[ICO]\" width=\"20\" height=\"22\"></th>"); sb.append("<th>Name</th><th>Last modified</th><th>Size</th></tr>\n"); sb.append("<tr><th colspan=\"4\"><hr></th></tr>\n"); } public static String formParentLink(String parentURI) { StringBuffer sb = new StringBuffer(); formParentLink(sb, parentURI); return sb.toString(); } public static void formParentLink(StringBuffer sb, String parentURI) { sb.append("<tr><td valign=\"top\"><img src=\"" + getIconPath("/icons/back.gif") + "\" alt=\"[DIR]\" width=\"20\" height=\"22\"></td><td><a href=\"" + parentURI + "\">Parent Directory</a></td><td> </td><td align=\"right\"> - </td><td> </td></tr>"); } public static String formEnd() { StringBuffer sb = new StringBuffer(); formEnd(sb); return sb.toString(); } public static void formEnd(StringBuffer sb) { sb.append("<tr><th colspan=\"4\"><hr></th></tr>\n" + "</table>\n" + "</body></html>\n"); } public static String formDirEntry(HttpServletRequest request, String dirName, String lastMod) { StringBuffer sb = new StringBuffer(); formDirEntry(sb, request, dirName, lastMod); return sb.toString(); } public static void formDirEntry(StringBuffer sb, HttpServletRequest request, String dirName, String lastMod) { if (!dirName.endsWith("/")) { dirName = dirName + "/"; } sb.append("<tr><td valign=\"top\"><img src=\"" + getIconPath("/icons/folder.gif") + "\" alt=\"[DIR]\" width=\"20\" height=\"22\"></td>\n"); sb.append("<td><a href=\"" + getLink(request, dirName) + "\">" + dirName + "</a></td>\n"); sb.append("<td align=\"right\">" + lastMod + "</td><td align=\"right\"> - </td><td> </td></tr>\n"); } public static String formFileEntry(HttpServletRequest request, String fileName, String lastModDate, long fileSize) { StringBuffer sb = new StringBuffer(); formFileEntry(sb, request, fileName, lastModDate, fileSize); return sb.toString(); } public static void formFileEntry(StringBuffer sb, HttpServletRequest request, String fileName, String lastMod, long fileSize) { String fSize = new Long(fileSize).toString(); if (fileSize < 0) { fSize = "-"; } sb.append("<tr><td valign=\"top\"><img src=\"" + getIconPath("/icons/unknown.gif") + "\" alt=\"[DIR]\" width=\"20\" height=\"22\"></td>\n"); sb.append("<td><a href=\"" + getLink(request, fileName) + "\">" + fileName + "</a></td>\n"); sb.append("<td align=\"right\">" + lastMod + "</td><td align=\"right\">" + fSize + "</td><td> </td></tr>\n"); } protected static String getIconPath(String path) { if (!ContentHTTPServlet.CONTENT_URI.endsWith("/")) { if (!path.startsWith("/")) { path = "/" + path; } } return ContentHTTPServlet.CONTENT_URI + path; } protected static String getLink(HttpServletRequest request, String path) { String reqUri = request.getRequestURI(); if (!reqUri.endsWith("/")) { reqUri = reqUri + "/"; // we need to ensure this ends with a "/" } if (path.startsWith("/")) { path = path.substring(1); // this is just to make the link look nice, it's not "needed" } return reqUri + path; } }