01: // Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
02: // Released under the terms of the GNU General Public License version 2 or later.
03: package fitnesse.responders;
04:
05: import fitnesse.http.*;
06: import fitnesse.wikitext.widgets.WikiWordWidget;
07: import fitnesse.*;
08: import fitnesse.html.*;
09:
10: import java.util.regex.Pattern;
11:
12: public class NotFoundResponder implements Responder {
13: private String resource;
14:
15: public Response makeResponse(FitNesseContext context,
16: Request request) throws Exception {
17: SimpleResponse response = new SimpleResponse(404);
18: resource = request.getResource();
19:
20: response.setContent(makeHtml(context));
21: return response;
22: }
23:
24: private String makeHtml(FitNesseContext context) throws Exception {
25: HtmlPage page = context.htmlPageFactory.newPage();
26: HtmlUtil.addTitles(page, "Not Found:" + resource);
27: page.main.use(makeRightColumn(resource));
28: return page.html();
29: }
30:
31: private String makeRightColumn(String name) throws Exception {
32: StringBuffer buffer = new StringBuffer();
33: buffer.append("The requested resource: <i>" + name
34: + "</i> was not found.");
35: if (Pattern.matches(WikiWordWidget.REGEXP, name)) {
36: HtmlTag unorderedListTag = new HtmlTag("ul");
37: HtmlTag item = new HtmlTag("li");
38: item.add(HtmlUtil.makeLink(name + "?edit",
39: "create this page"));
40: unorderedListTag.add(item);
41: buffer.append(unorderedListTag.html());
42: }
43: return buffer.toString();
44: }
45:
46: }
|