protected void renderContent()

in src/main/java/org/apache/sling/commons/fsclassloader/impl/FSClassLoaderWebConsole.java [288:363]


	protected void renderContent(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		Map<String, ScriptFiles> scripts = new LinkedHashMap<String, ScriptFiles>();
		readFiles(root, root, scripts);

		Writer w = response.getWriter();

		w.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + RES_LOC + "/prettify.css\"></link>");
		w.write("<script type=\"text/javascript\" src=\"" + RES_LOC + "/prettify.js\"></script>");
		w.write("<script type=\"text/javascript\" src=\"" + RES_LOC + "/fsclassloader.js\"></script>");
		w.write("<script>$(document).ready(prettyPrint);</script>");
		w.write("<style>.prettyprint ol.linenums > li { list-style-type: decimal; } pre.prettyprint { white-space: pre-wrap; }</style>");
		String file = request.getParameter("view");
		File toView = new File(root + file);
		w.write("<div id=\"classes\">");
		if (!StringUtils.isEmpty(file)) {
			if (isValid(toView)) {

				w.write("<p class=\"statline ui-state-highlight\">Viewing Script: " + root + file + "</p><br/><br/>");

				ScriptFiles scriptFiles = new ScriptFiles(root, toView);

				w.write("<table class=\"nicetable ui-widget\">");
				w.write("<tr class=\"header ui-widget-header\">");
				w.write("<th>Script</th>");
				w.write("<th>Class</th>");
				w.write("<th>Deps</th>");
				w.write("<th>Java</th>");
				w.write("</tr>");
				w.write("<tr class=\"ui-state-default\">");
				w.write("<td>" + scriptFiles.getScript() + "</td>");
				w.write("<td>[<a href=\"?download=" + scriptFiles.getClassFile()
						+ "\" target=\"_blank\">download</a>]</td>");
				w.write("<td>[<a href=\"?download=" + scriptFiles.getDepsFile()
						+ "\" target=\"_blank\">download</a>]</td>");
				w.write("<td>[<a href=\"?download=" + scriptFiles.getJavaFile()
						+ "\" target=\"_blank\">download</a>]</td>");
				w.write("</tr>");
				w.write("</table><br/><br/>");
				InputStream is = null;
				try {
					is = new FileInputStream(toView);
					String contents = IOUtils.toString(is, "UTF-8");
					w.write("<pre class=\"prettyprint linenums\">");
					w.write(StringEscapeUtils.escapeHtml4(contents));
					w.write("</pre>");
				} finally {
					IOUtils.closeQuietly(is);
				}
			} else {
				response.sendError(404, "File " + file + " not found");
			}
		} else {
			w.write("<p class=\"statline ui-state-highlight\">File System ClassLoader Root: " + root
					+ " <span style=\"float: right\"><button type='button' id='clear'>Clear Class Loader</button></span></p>");
			if (scripts.values().size() > 0) {
				w.write("<table class=\"nicetable ui-widget fsclassloader-has-classes\">");
			} else {
				w.write("<table class=\"nicetable ui-widget\">");
			}
			w.write("<tr class=\"header ui-widget-header\">");
			w.write("<th>View</th>");
			w.write("<th>Script</th>");
			w.write("</tr>");
			int i = 0;
			for (ScriptFiles scriptFiles : scripts.values()) {
				w.write("<tr class=\"" + (i % 2 == 0 ? "even" : "odd") + " ui-state-default\">");
				w.write("<td>[<a href=\"?view=" + scriptFiles.getJavaFile() + "\">view</a>]</td>");
				w.write("<td>" + scriptFiles.getScript() + "</td>");
				w.write("</tr>");
				i++;
			}
			w.write("</table>");
		}
		w.write("</div>");
	}