package fitnesse.responders.editing; import static fitnesse.wiki.PageData.PAGE_TYPE_ATTRIBUTES; import fitnesse.FitNesseContext; import fitnesse.Responder; import fitnesse.authentication.SecureOperation; import fitnesse.authentication.SecureReadOperation; import fitnesse.http.Request; import fitnesse.http.Response; import fitnesse.http.SimpleResponse; import fitnesse.responders.templateUtilities.HtmlPage; import fitnesse.responders.templateUtilities.PageTitle; import fitnesse.wiki.PageType; import fitnesse.wiki.PathParser; public class NewPageResponder implements Responder { public Response makeResponse(FitNesseContext context, Request request) { SimpleResponse response = new SimpleResponse(); response.setContent(doMakeHtml(context, request)); return response; } private String doMakeHtml(FitNesseContext context, Request request) { HtmlPage html = context.pageFactory.newPage(); html.setTitle("New page:"); html.setPageTitle(new PageTitle("New Page", PathParser.parse(request.getResource()))); html.setMainTemplate("editPage"); makeEditForm(html, context, request); return html.html(); } private void makeEditForm(HtmlPage html, FitNesseContext context, Request request) { html.put("resource", request.getResource()); html.put("isNewPage", true); html.put(EditResponder.HELP_TEXT, ""); html.put(EditResponder.CONTENT_INPUT_NAME, context.defaultNewPageContent); if (request.hasInput("pageType")) { String pageType = (String) request.getInput("pageType"); // Validate page type: PageType.fromString(pageType); html.put(EditResponder.PAGE_TYPE, pageType); } else { html.put("pageTypes", PAGE_TYPE_ATTRIBUTES); } } public SecureOperation getSecureOperation() { return new SecureReadOperation(); } }