1 package net.sf.maia.core.view;
2
3 import net.sf.maia.core.storage.PageStore;
4
5 import org.radeox.api.engine.WikiRenderEngine;
6 import org.radeox.engine.BaseRenderEngine;
7
8 /***
9 *
10 *
11 * @author Magnus Grimsell
12 */
13 public class MaiaRenderEngine extends BaseRenderEngine implements WikiRenderEngine
14 {
15 private PageStore mPageStore;
16
17 public void setPageStore(PageStore pageStore)
18 {
19 mPageStore = pageStore;
20 }
21
22 /***
23 *
24 * @see WikiRenderEngine#exists(String)
25 */
26 public boolean exists(String path)
27 {
28 if(!path.startsWith("/"))
29 {
30 path = "/" + path;
31 }
32
33 return mPageStore.getPage(path) != null;
34 }
35
36 /***
37 * TODO: implement by asking security framework
38 * @see WikiRenderEngine#showCreate()
39 */
40 public boolean showCreate()
41 {
42 return true;
43 }
44
45 /***
46 * @see WikiRenderEngine#appendLink(StringBuffer, String, String, String)
47 */
48 public void appendLink(StringBuffer buffer, String name, String view, String anchor)
49 {
50 buffer.append("<a href=\"");
51 buffer.append(name);
52 if(anchor != null)
53 {
54 buffer.append("#");
55 buffer.append(anchor);
56 }
57 buffer.append("\">");
58 buffer.append(view);
59 buffer.append("</a>");
60 }
61
62 /***
63 * @see WikiRenderEngine#appendLink(StringBuffer, String, String)
64 */
65 public void appendLink(StringBuffer buffer, String name, String view)
66 {
67 appendLink(buffer, name, view, null);
68 }
69
70 /***
71 * @see WikiRenderEngine#appendCreateLink(StringBuffer, String, String)
72 */
73 public void appendCreateLink(StringBuffer buffer, String name, String view)
74 {
75 buffer.append("[[<a href=\"/create?new=");
76 buffer.append(name);
77 buffer.append("//\">");
78 buffer.append(view);
79 buffer.append("</a>]]");
80 }
81
82 }