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.wikitext.widgets;
04:
05: import java.util.regex.Matcher;
06: import java.util.regex.Pattern;
07: import fitnesse.wikitext.WidgetBuilder;
08:
09: public class PreformattedWidget extends ParentWidget {
10: public static final String REGEXP = "\\{\\{\\{.+?\\}\\}\\}";
11: private static final Pattern pattern = Pattern.compile(
12: "\\{{3}(.+?)\\}{3}", Pattern.DOTALL);
13:
14: public PreformattedWidget(ParentWidget parent, String text)
15: throws Exception {
16: super (parent);
17: Matcher match = pattern.matcher(text);
18: if (match.find())
19: addChildWidgets(match.group(1));
20: }
21:
22: public String render() throws Exception {
23: StringBuffer html = new StringBuffer("<pre>");
24: html.append(childHtml()).append("</pre>");
25:
26: return html.toString();
27: }
28:
29: public String asWikiText() throws Exception {
30: return "{{{" + childWikiText() + "}}}";
31: }
32:
33: public WidgetBuilder getBuilder() {
34: return WidgetBuilder.literalAndVariableWidgetBuilder;
35: }
36: }
|