initial contribution
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.wiki / src / net / sourceforge / phpeclipse / wiki / builder / BuilderRenderEngine.java
1 package net.sourceforge.phpeclipse.wiki.builder;
2
3 import net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin;
4 import net.sourceforge.phpeclipse.wiki.preferences.Util;
5
6 import org.eclipse.core.resources.IProject;
7 import org.eclipse.core.runtime.IPath;
8 import org.radeox.api.engine.WikiRenderEngine;
9 import org.radeox.api.engine.context.InitialRenderContext;
10 import org.radeox.api.engine.context.RenderContext;
11 import org.radeox.engine.BaseRenderEngine;
12 import org.plog4u.wiki.filter.FilterUtil;
13
14 public class BuilderRenderEngine extends BaseRenderEngine implements WikiRenderEngine {
15   IProject fProject;
16
17   IPath fPath;
18
19   int fLevel;
20
21   public BuilderRenderEngine(IProject project, InitialRenderContext context) {
22     super(context);
23     fProject = project;
24     fPath = fProject.getFullPath();
25     fLevel = 0;
26   }
27
28   /**
29    * 
30    * @param location -
31    *          the absolute basepath or <code>null</code>
32    * @param name -
33    *          the name of the wiki link
34    * @param extension -
35    *          the file extension of the wiki text ( *.wp prefered )
36    * @param createHTMLLevel -
37    *          if true prepend the directory level before the link i.e. <code>../../</code>
38    * @return
39    */
40   public String createHTMLLink(String location, String name, String extension, boolean createHTMLLevel) {
41     return FilterUtil.createHTMLLink(location, name, extension, createHTMLLevel, fLevel);
42   }
43
44   public boolean exists(String name) {
45
46     java.io.File file = new java.io.File(createHTMLLink(Util.getWikiTextsPath(fProject), name, "wp", false));
47     return file.exists();
48     //      return name.equals("SnipSnap") || name.equals("stephan");
49   }
50
51   public boolean showCreate() {
52     return true;
53   }
54
55   public void appendLink(StringBuffer buffer, String name, String view, String anchor) {
56     String basePath = Util.getProjectsWikiOutputPath(fProject, WikiEditorPlugin.HTML_OUTPUT_PATH);
57     //    String basePath = WikiEditorPlugin.getDefault().getPreferenceStore().getString(WikiConstants.HTML_OUTPUT_PATH);
58     buffer.append("<a href=\"");
59     buffer.append(createHTMLLink(null, name, "html", true));
60     buffer.append("#");
61     buffer.append(anchor);
62     buffer.append("\">");
63     buffer.append(view);
64     buffer.append("</a>");
65     //buffer.append("link:"+name+"|"+view+"#"+anchor);
66   }
67
68   public void appendLink(StringBuffer buffer, String name, String view) {
69     String basePath = Util.getProjectsWikiOutputPath(fProject, WikiEditorPlugin.HTML_OUTPUT_PATH);
70     //    String basePath = WikiEditorPlugin.getDefault().getPreferenceStore().getString(WikiConstants.HTML_OUTPUT_PATH);
71     buffer.append("<a href=\""); 
72     buffer.append(createHTMLLink(null, name, "html", true));
73     buffer.append("\">");
74     buffer.append(view);
75     buffer.append("</a>");
76     //      buffer.append("link:" + name + "|" +view);
77   }
78
79   public void appendCreateLink(StringBuffer buffer, String name, String view) {
80     // if showCreate is true this method will be used to create a link to a
81     // "Wiki creationpage"
82     buffer.append(view);
83
84     //      buffer.append("'").append(name).append("' - ");
85     //      buffer.append("'").append(Encoder.escape(name)).append("'");
86   }
87
88   public String getName() {
89     return "BuilderRenderEngine";
90   }
91
92   public void setLevel(int level) {
93     fLevel = level;
94   }
95
96 }