X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/mediawiki/RefreshWikiTextEditorAction.java b/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/mediawiki/RefreshWikiTextEditorAction.java deleted file mode 100644 index f00d446..0000000 --- a/archive/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/mediawiki/RefreshWikiTextEditorAction.java +++ /dev/null @@ -1,195 +0,0 @@ -package net.sourceforge.phpeclipse.wiki.actions.mediawiki; - -import java.io.ByteArrayInputStream; -import java.util.ArrayList; -import java.util.Collections; - -import net.sourceforge.phpeclipse.wiki.editor.WikiEditor; -import net.sourceforge.phpeclipse.wiki.editor.WikiEditorPlugin; -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.IResource; -import org.eclipse.core.resources.IResourceStatus; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.SubProgressMonitor; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITextSelection; -import org.eclipse.jface.text.TextSelection; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.window.Window; -import org.eclipse.ui.IEditorActionDelegate; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.dialogs.ListSelectionDialog; -import org.eclipse.ui.internal.dialogs.ListContentProvider; -import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin; -import org.eclipse.ui.texteditor.AbstractTextEditor; - -public final class RefreshWikiTextEditorAction implements IEditorActionDelegate { - - private IWorkbenchWindow window; - - private AbstractTextEditor fEditor; - - public void dispose() { - } - - public void init(IWorkbenchWindow window) { - this.window = window; - } - - public void selectionChanged(IAction action, ISelection selection) { - if (selection.isEmpty()) { - return; - } - if (selection instanceof TextSelection) { - action.setEnabled(true); - return; - } - if (window.getActivePage() != null && window.getActivePage().getActivePart() != null) { - action.setEnabled(window.getActivePage().getActivePart().getClass().equals(WikiEditor.class)); - } - } - - public void run(IAction action) { - if (fEditor == null) { - IEditorPart targetEditor = window.getActivePage().getActiveEditor(); - if (targetEditor != null && (targetEditor instanceof AbstractTextEditor)) { - fEditor = (AbstractTextEditor) targetEditor; - } - } - if (fEditor != null) { - openWikiLinkOnSelection(); - } - } - - public void setActiveEditor(IAction action, IEditorPart targetEditor) { - if (targetEditor != null && (targetEditor instanceof AbstractTextEditor)) { - fEditor = (AbstractTextEditor) targetEditor; - } - } - - public IDocument getDocument() { - IDocument doc = fEditor.getDocumentProvider().getDocument(fEditor.getEditorInput()); - return doc; - } - - public void openWikiLinkOnSelection() { - IDocument doc = getDocument(); - ITextSelection selection = (ITextSelection) fEditor.getSelectionProvider().getSelection(); - int pos = selection.getOffset(); - // String textRegion = getWikiString(fEditor, doc, pos); - IFileEditorInput ei = (IFileEditorInput) fEditor.getEditorInput(); - openWikiFile(ei.getFile()); - } - - void openWikiFile(IFile cfile) { - String wikiName = getWikiFile(cfile); - try { - if (fEditor != null) { - selectWiki(wikiName); - } - } catch (Exception e) { - } - - } - - private void selectWiki(String wikiName) { - String exampleWikiURL = "http://en.wikibooks.org/w/wiki.phtml"; - String selectedWikiURL = null; - ArrayList locationsList = new ArrayList(); - locationsList.add(exampleWikiURL); - - Collections.sort(locationsList); - - ListSelectionDialog listSelectionDialog = new ListSelectionDialog(WikiEditorPlugin.getDefault().getWorkbench() - .getActiveWorkbenchWindow().getShell(), locationsList, new ListContentProvider(), new LabelProvider(), - "Select the refresh URL."); - listSelectionDialog.setTitle("Multiple active configuration found"); - if (listSelectionDialog.open() == Window.OK) { - Object[] locations = listSelectionDialog.getResult(); - if (locations != null) { - for (int i = 0; i < locations.length; i++) { - selectedWikiURL = (String) locations[i]; - break; - } - } - } - - if (selectedWikiURL != null && !selectedWikiURL.equals("")) { - String wikiContent = MediaWikiConnector.getWikiText(wikiName, selectedWikiURL); - if (wikiContent != null) { - IDocument doc = fEditor.getDocumentProvider().getDocument(fEditor.getEditorInput()); - doc.set(wikiContent); - } - } - } - - private void createNewFileIfNeeded(IFile file, String word) throws CoreException { - if (!file.exists()) { - createWikiFile(file, word); - } - } - - private String getWikiFile(IFile file) { - return Util.getFileWikiName(file, WikiEditorPlugin.HTML_OUTPUT_PATH); - // IPath path = new Path(wikiFileName); - // return ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path); - } - - /** - * Creates a folder resource handle for the folder with the given workspace path. This method does not create the folder resource; - * this is the responsibility of createFolder. - * - * @param folderPath - * the path of the folder resource to create a handle for - * @return the new folder resource handle - * @see #createFolder - */ - private IFolder createFolderHandle(IPath folderPath) { - return IDEWorkbenchPlugin.getPluginWorkspace().getRoot().getFolder(folderPath); - } - - private 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 - if (!folderHandle.exists()) { - IContainer parent = folderHandle.getParent(); - if (parent instanceof IFolder && (!((IFolder) parent).exists())) { - createFolder((IFolder) parent, monitor); - } - // if (linkTargetPath != null) - // folderHandle.createLink(linkTargetPath, IResource.ALLOW_MISSING_LOCAL, monitor); - // else - folderHandle.create(false, true, monitor); - } - } catch (CoreException e) { - // If the folder already existed locally, just refresh to get contents - if (e.getStatus().getCode() == IResourceStatus.PATH_OCCUPIED) - folderHandle.refreshLocal(IResource.DEPTH_INFINITE, new SubProgressMonitor(monitor, 500)); - else - throw e; - } - } - - private void createWikiFile(IFile file, String word) throws CoreException { - IContainer parent = file.getParent(); - if (parent instanceof IFolder && (!((IFolder) parent).exists())) { - createFolder((IFolder) parent, null); - } - String newText = ""; - byte[] buffer = newText.getBytes(); - ByteArrayInputStream source = new ByteArrayInputStream(buffer); - file.create(source, true, null); - } - -} \ No newline at end of file