X-Git-Url: http://secure.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/OpenWikiLinkEditorAction.java b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/OpenWikiLinkEditorAction.java index de7a91f..8f38c48 100644 --- a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/OpenWikiLinkEditorAction.java +++ b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/OpenWikiLinkEditorAction.java @@ -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 = ""; + String newText = WikiEditorPlugin.AUTOMATICALLY_CREATED; byte[] buffer = newText.getBytes(); ByteArrayInputStream source = new ByteArrayInputStream(buffer); file.create(source, true, null);