Upload/Download of multiple files now possible
[phpeclipse.git] / archive / net.sourceforge.phpeclipse.wiki / src / net / sourceforge / phpeclipse / wiki / actions / OpenWikiLinkEditorAction.java
index de7a91f..8f38c48 100644 (file)
@@ -9,6 +9,7 @@ import net.sourceforge.phpeclipse.wiki.preferences.Util;
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceStatus;
 import org.eclipse.core.resources.ResourcesPlugin;
@@ -31,11 +32,11 @@ import org.eclipse.ui.ide.IDE;
 import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
 import org.eclipse.ui.texteditor.AbstractTextEditor;
 
-public final class OpenWikiLinkEditorAction implements IEditorActionDelegate {
+public class OpenWikiLinkEditorAction implements IEditorActionDelegate {
 
-  private IWorkbenchWindow window;
+  protected IWorkbenchWindow window;
 
-  private AbstractTextEditor editor;
+  protected AbstractTextEditor editor;
 
   public void dispose() {
   }
@@ -143,10 +144,30 @@ public final class OpenWikiLinkEditorAction implements IEditorActionDelegate {
     
     String textRegion = getWikiString(editor, doc, pos);
     IFileEditorInput ei = (IFileEditorInput) editor.getEditorInput();
-    openWikiFile(ei.getFile(), textRegion);
+    openWikiFile(ei.getFile(), textRegion, true);
   }
 
-  void openWikiFile(IFile cfile, String word) {
+  public void openWikiUrl(IProject project, String word) {
+    if (word != null && !word.equals("")) {
+      IFile cfile = project.getFile("dummy.wp");
+      IFile file = getWikiFile(cfile, word);
+      try {
+        createNewFileIfNeeded(file, word);
+        //                             if (WikiEditorPlugin.getDefault().getPreferenceStore().getBoolean(WikiConstants.REUSE_EDITOR)) {
+        //                                     saveIfNeeded();
+        //                                     getActivePage().reuseEditor(reusableEditor, new FileEditorInput(file));
+        //                             } else {
+        IDE.openEditor(WikiEditorPlugin.getDefault().getActivePage(), file, true);
+        //                                     redrawText();
+        //                             }
+      } catch (Exception e) {
+        //                       WikiEditorPlugin.getDefault().logAndReport(WikiEditorPlugin.getResourceString(WikiConstants.RESOURCE_WIKI_ERROR_DIALOGUE_OPEN_WIKI_FILE_TITLE),
+        // WikiPlugin.getResourceString(WikiConstants.RESOURCE_WIKI_ERROR_DIALOGUE_OPEN_WIKI_FILE_TEXT), e);
+      }
+    } 
+  } 
+  
+  protected void openWikiFile(IFile cfile, String word, boolean openEditor) {
     if (word != null && !word.equals("")) {
       IFile file = getWikiFile(cfile, word);
       try {
@@ -165,13 +186,13 @@ public final class OpenWikiLinkEditorAction implements IEditorActionDelegate {
     } 
   }
 
-  private void createNewFileIfNeeded(IFile file, String word) throws CoreException {
+  protected void createNewFileIfNeeded(IFile file, String word) throws CoreException {
     if (!file.exists()) {
-      createWikiFile(file, word);
+      createWikiFile(file);
     }
   }
 
-  private IFile getWikiFile(IFile file, String word) {
+  protected IFile getWikiFile(IFile file, String word) {
     String wikiFileName = Util.getWikiFileName(word, file, WikiEditorPlugin.HTML_OUTPUT_PATH);
     IPath path = new Path(wikiFileName);
     return ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
@@ -186,11 +207,11 @@ public final class OpenWikiLinkEditorAction implements IEditorActionDelegate {
    * @return the new folder resource handle
    * @see #createFolder
    */
-  private IFolder createFolderHandle(IPath folderPath) {
+  private static IFolder createFolderHandle(IPath folderPath) {
     return IDEWorkbenchPlugin.getPluginWorkspace().getRoot().getFolder(folderPath);
   }
 
-  private void createFolder(IFolder folderHandle, IProgressMonitor monitor) throws CoreException {
+  private static void createFolder(IFolder folderHandle, IProgressMonitor monitor) throws CoreException {
     try {
       // Create the folder resource in the workspace
       // Recursive to create any folders which do not exist already
@@ -213,12 +234,12 @@ public final class OpenWikiLinkEditorAction implements IEditorActionDelegate {
     }
   }
 
-  private void createWikiFile(IFile file, String word) throws CoreException {
+  private void createWikiFile(IFile file) throws CoreException {
     IContainer parent = file.getParent();
     if (parent instanceof IFolder && (!((IFolder) parent).exists())) {
       createFolder((IFolder) parent, null);
     }
-    String newText = "<!--" + word + "-->";
+    String newText = WikiEditorPlugin.AUTOMATICALLY_CREATED;
     byte[] buffer = newText.getBytes();
     ByteArrayInputStream source = new ByteArrayInputStream(buffer);
     file.create(source, true, null);