diff options
Diffstat (limited to 'bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/handlers/HTMLFindOccurrencesHandler.java')
-rw-r--r-- | bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/handlers/HTMLFindOccurrencesHandler.java | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/handlers/HTMLFindOccurrencesHandler.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/handlers/HTMLFindOccurrencesHandler.java deleted file mode 100644 index 060c844871..0000000000 --- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/handlers/HTMLFindOccurrencesHandler.java +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2008 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.ui.internal.handlers; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.core.commands.AbstractHandler; -import org.eclipse.core.commands.ExecutionEvent; -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.commands.IHandler; -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.text.BadLocationException; -import org.eclipse.jface.text.IDocument; -import org.eclipse.jface.text.ITextSelection; -import org.eclipse.jface.text.ITypedRegion; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.ui.handlers.HandlerUtil; -import org.eclipse.ui.texteditor.ITextEditor; -import org.eclipse.wst.html.ui.internal.search.HTMLFindOccurrencesProcessor; -import org.eclipse.wst.sse.ui.internal.ExtendedConfigurationBuilder; -import org.eclipse.wst.sse.ui.internal.SSEUIMessages; -import org.eclipse.wst.sse.ui.internal.search.FindOccurrencesProcessor; -import org.eclipse.wst.sse.ui.internal.util.PlatformStatusLineUtil; - -public class HTMLFindOccurrencesHandler extends AbstractHandler implements IHandler { - private List fProcessors; - - - public Object execute(ExecutionEvent event) throws ExecutionException { - IEditorPart editor = HandlerUtil.getActiveEditor(event); - ITextEditor textEditor = null; - boolean okay = false; - - if (editor instanceof ITextEditor) - textEditor = (ITextEditor) editor; - else { - Object o = editor.getAdapter(ITextEditor.class); - if (o != null) - textEditor = (ITextEditor) o; - } - - if (textEditor != null) { - IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput()); - if (document != null) { - ITextSelection textSelection = getTextSelection(textEditor); - FindOccurrencesProcessor findOccurrenceProcessor = getProcessorForCurrentSelection(document, textSelection); - if (findOccurrenceProcessor != null) { - if (textEditor.getEditorInput() instanceof IFileEditorInput) { - IFile file = ((IFileEditorInput) textEditor.getEditorInput()).getFile(); - okay = findOccurrenceProcessor.findOccurrences(document, textSelection, file); - } - } - } - } - if (okay) { - // clear status message - PlatformStatusLineUtil.clearStatusLine(); - } - else { - String errorMessage = SSEUIMessages.FindOccurrencesActionProvider_0; //$NON-NLS-1$ - PlatformStatusLineUtil.displayErrorMessage(errorMessage); - PlatformStatusLineUtil.addOneTimeClearListener(); - } - return null; - } - - /** - * Get the appropriate find occurrences processor - * - * @param document - - * assumes not null - * @param textSelection - * @return - */ - private FindOccurrencesProcessor getProcessorForCurrentSelection(IDocument document, ITextSelection textSelection) { - // check if we have an action that's enabled on the current partition - ITypedRegion tr = getPartition(document, textSelection); - String partition = tr != null ? tr.getType() : ""; //$NON-NLS-1$ - - Iterator it = getProcessors().iterator(); - FindOccurrencesProcessor processor = null; - while (it.hasNext()) { - processor = (FindOccurrencesProcessor) it.next(); - // we just choose the first action that can handle the partition - if (processor.enabledForParitition(partition)) - return processor; - } - - List extendedFindOccurrencesProcessors = ExtendedConfigurationBuilder.getInstance().getConfigurations(FindOccurrencesProcessor.class.getName(), partition); - for (int i = 0; i < extendedFindOccurrencesProcessors.size(); i++) { - Object o = extendedFindOccurrencesProcessors.get(i); - if (o instanceof FindOccurrencesProcessor) { - /* - * We just choose the first registered processor that - * explicitly says it can handle the partition - */ - processor = (FindOccurrencesProcessor) it.next(); - if (processor.enabledForParitition(partition)) - return processor; - } - } - return null; - } - - private ITypedRegion getPartition(IDocument document, ITextSelection textSelection) { - ITypedRegion region = null; - if (textSelection != null) { - try { - region = document.getPartition(textSelection.getOffset()); - } - catch (BadLocationException e) { - region = null; - } - } - return region; - } - - private ITextSelection getTextSelection(ITextEditor textEditor) { - ITextSelection textSelection = null; - ISelection selection = textEditor.getSelectionProvider().getSelection(); - if (selection instanceof ITextSelection && !selection.isEmpty()) { - textSelection = (ITextSelection) selection; - } - return textSelection; - } - - protected List getProcessors() { - if (fProcessors == null) { - fProcessors = new ArrayList(); - HTMLFindOccurrencesProcessor htmlProcessor = new HTMLFindOccurrencesProcessor(); - fProcessors.add(htmlProcessor); - } - return fProcessors; - } - -} |