X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/BestMatchHover.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/BestMatchHover.java deleted file mode 100644 index 929bb67..0000000 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/text/java/hover/BestMatchHover.java +++ /dev/null @@ -1,140 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package net.sourceforge.phpdt.internal.ui.text.java.hover; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import net.sourceforge.phpdt.ui.PreferenceConstants; -import net.sourceforge.phpdt.ui.text.java.hover.IJavaEditorTextHover; -import net.sourceforge.phpeclipse.PHPeclipsePlugin; - -import org.eclipse.jface.text.IInformationControlCreator; -import org.eclipse.jface.text.IRegion; -import org.eclipse.jface.text.ITextHover; -import org.eclipse.jface.text.ITextHoverExtension; -import org.eclipse.jface.text.ITextViewer; -import org.eclipse.jface.text.information.IInformationProviderExtension2; -import org.eclipse.ui.IEditorPart; - -/** - * Caution: this implementation is a layer breaker and contains some "shortcuts" - */ -public class BestMatchHover extends AbstractJavaEditorTextHover implements - ITextHoverExtension, IInformationProviderExtension2 { - - private List fTextHoverSpecifications; - - private List fInstantiatedTextHovers; - - private ITextHover fBestHover; - - public BestMatchHover() { - installTextHovers(); - } - - public BestMatchHover(IEditorPart editor) { - this(); - setEditor(editor); - } - - /** - * Installs all text hovers. - */ - private void installTextHovers() { - - // initialize lists - indicates that the initialization happened - fTextHoverSpecifications = new ArrayList(2); - fInstantiatedTextHovers = new ArrayList(2); - - // populate list - JavaEditorTextHoverDescriptor[] hoverDescs = PHPeclipsePlugin - .getDefault().getJavaEditorTextHoverDescriptors(); - for (int i = 0; i < hoverDescs.length; i++) { - // ensure that we don't add ourselves to the list - if (!PreferenceConstants.ID_BESTMATCH_HOVER.equals(hoverDescs[i] - .getId())) - fTextHoverSpecifications.add(hoverDescs[i]); - } - } - - private void checkTextHovers() { - if (fTextHoverSpecifications.size() == 0) - return; - - for (Iterator iterator = new ArrayList(fTextHoverSpecifications) - .iterator(); iterator.hasNext();) { - JavaEditorTextHoverDescriptor spec = (JavaEditorTextHoverDescriptor) iterator - .next(); - - IJavaEditorTextHover hover = spec.createTextHover(); - if (hover != null) { - hover.setEditor(getEditor()); - addTextHover(hover); - fTextHoverSpecifications.remove(spec); - } - } - } - - protected void addTextHover(ITextHover hover) { - if (!fInstantiatedTextHovers.contains(hover)) - fInstantiatedTextHovers.add(hover); - } - - /* - * @see ITextHover#getHoverInfo(ITextViewer, IRegion) - */ - public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) { - - checkTextHovers(); - fBestHover = null; - - if (fInstantiatedTextHovers == null) - return null; - - for (Iterator iterator = fInstantiatedTextHovers.iterator(); iterator - .hasNext();) { - ITextHover hover = (ITextHover) iterator.next(); - - String s = hover.getHoverInfo(textViewer, hoverRegion); - if (s != null && s.trim().length() > 0) { - fBestHover = hover; - return s; - } - } - - return null; - } - - /* - * @see org.eclipse.jface.text.ITextHoverExtension#getHoverControlCreator() - * @since 3.0 - */ - public IInformationControlCreator getHoverControlCreator() { - if (fBestHover instanceof ITextHoverExtension) - return ((ITextHoverExtension) fBestHover).getHoverControlCreator(); - - return null; - } - - /* - * @see org.eclipse.jface.text.information.IInformationProviderExtension2#getInformationPresenterControlCreator() - * @since 3.0 - */ - public IInformationControlCreator getInformationPresenterControlCreator() { - if (fBestHover instanceof IInformationProviderExtension2) - return ((IInformationProviderExtension2) fBestHover) - .getInformationPresenterControlCreator(); - - return null; - } -} \ No newline at end of file