initial contribution
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.wiki / src / net / sourceforge / phpeclipse / wiki / builder / BuilderRenderEngine.java
diff --git a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/builder/BuilderRenderEngine.java b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/builder/BuilderRenderEngine.java
new file mode 100644 (file)
index 0000000..56555fa
--- /dev/null
@@ -0,0 +1,96 @@
+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