--- /dev/null
+package net.sourceforge.phpeclipse.wiki.builder;
+
+import net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin;
+import net.sourceforge.phpeclipse.wiki.preferences.Util;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.radeox.api.engine.WikiRenderEngine;
+import org.radeox.api.engine.context.InitialRenderContext;
+import org.radeox.api.engine.context.RenderContext;
+import org.radeox.engine.BaseRenderEngine;
+import org.plog4u.wiki.filter.FilterUtil;
+
+public class BuilderRenderEngine extends BaseRenderEngine implements WikiRenderEngine {
+ IProject fProject;
+
+ IPath fPath;
+
+ int fLevel;
+
+ public BuilderRenderEngine(IProject project, InitialRenderContext context) {
+ super(context);
+ fProject = project;
+ fPath = fProject.getFullPath();
+ fLevel = 0;
+ }
+
+ /**
+ *
+ * @param location -
+ * the absolute basepath or <code>null</code>
+ * @param name -
+ * the name of the wiki link
+ * @param extension -
+ * the file extension of the wiki text ( *.wp prefered )
+ * @param createHTMLLevel -
+ * if true prepend the directory level before the link i.e. <code>../../</code>
+ * @return
+ */
+ public String createHTMLLink(String location, String name, String extension, boolean createHTMLLevel) {
+ return FilterUtil.createHTMLLink(location, name, extension, createHTMLLevel, fLevel);
+ }
+
+ public boolean exists(String name) {
+
+ java.io.File file = new java.io.File(createHTMLLink(Util.getWikiTextsPath(fProject), name, "wp", false));
+ return file.exists();
+ // return name.equals("SnipSnap") || name.equals("stephan");
+ }
+
+ public boolean showCreate() {
+ return true;
+ }
+
+ public void appendLink(StringBuffer buffer, String name, String view, String anchor) {
+ String basePath = Util.getProjectsWikiOutputPath(fProject, WikiEditorPlugin.HTML_OUTPUT_PATH);
+ // String basePath = WikiEditorPlugin.getDefault().getPreferenceStore().getString(WikiConstants.HTML_OUTPUT_PATH);
+ buffer.append("<a href=\"");
+ buffer.append(createHTMLLink(null, name, "html", true));
+ buffer.append("#");
+ buffer.append(anchor);
+ buffer.append("\">");
+ buffer.append(view);
+ buffer.append("</a>");
+ //buffer.append("link:"+name+"|"+view+"#"+anchor);
+ }
+
+ public void appendLink(StringBuffer buffer, String name, String view) {
+ String basePath = Util.getProjectsWikiOutputPath(fProject, WikiEditorPlugin.HTML_OUTPUT_PATH);
+ // String basePath = WikiEditorPlugin.getDefault().getPreferenceStore().getString(WikiConstants.HTML_OUTPUT_PATH);
+ buffer.append("<a href=\"");
+ buffer.append(createHTMLLink(null, name, "html", true));
+ buffer.append("\">");
+ buffer.append(view);
+ buffer.append("</a>");
+ // buffer.append("link:" + name + "|" +view);
+ }
+
+ public void appendCreateLink(StringBuffer buffer, String name, String view) {
+ // if showCreate is true this method will be used to create a link to a
+ // "Wiki creationpage"
+ buffer.append(view);
+
+ // buffer.append("'").append(name).append("' - ");
+ // buffer.append("'").append(Encoder.escape(name)).append("'");
+ }
+
+ public String getName() {
+ return "BuilderRenderEngine";
+ }
+
+ public void setLevel(int level) {
+ fLevel = level;
+ }
+
+}
\ No newline at end of file