### Eclipse Workspace Patch 1.0 #P org.eclipse.jface.text Index: src/org/eclipse/jface/text/source/AnnotationBarHoverManager.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jface.text/src/org/eclipse/jface/text/source/AnnotationBarHoverManager.java,v retrieving revision 1.55 diff -u -r1.55 AnnotationBarHoverManager.java --- src/org/eclipse/jface/text/source/AnnotationBarHoverManager.java 25 Feb 2010 11:28:07 -0000 1.55 +++ src/org/eclipse/jface/text/source/AnnotationBarHoverManager.java 25 Feb 2010 14:03:33 -0000 @@ -653,9 +653,9 @@ * Returns the annotation hover for this hover manager. * * @return the annotation hover for this hover manager or null if none - * @since 3.6 public, was protected since 2.1 + * @since 2.1 */ - public IAnnotationHover getAnnotationHover() { + protected IAnnotationHover getAnnotationHover() { return fAnnotationHover; } Index: src/org/eclipse/jface/text/source/ISourceViewerExtension5.java =================================================================== RCS file: src/org/eclipse/jface/text/source/ISourceViewerExtension5.java diff -N src/org/eclipse/jface/text/source/ISourceViewerExtension5.java --- src/org/eclipse/jface/text/source/ISourceViewerExtension5.java 24 Feb 2010 19:05:36 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,32 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 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.jface.text.source; - - -/** - * Extension interface for {@link org.eclipse.jface.text.source.ISourceViewer}. - *

- * It provides access to the annotation hover. - *

- * - * @since 3.6 - */ -public interface ISourceViewerExtension5 { - - /** - * Returns the annotation hover if any, null otherwise. - * - * @return the annotation hover or null - * @since 3.6 - */ - IAnnotationHover getAnnotationHover(); - -} Index: src/org/eclipse/jface/text/source/SourceViewer.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java,v retrieving revision 1.91 diff -u -r1.91 SourceViewer.java --- src/org/eclipse/jface/text/source/SourceViewer.java 24 Feb 2010 19:05:36 -0000 1.91 +++ src/org/eclipse/jface/text/source/SourceViewer.java 25 Feb 2010 14:03:33 -0000 @@ -80,7 +80,7 @@ *

* Clients may subclass this class but should expect some breakage by future releases.

*/ -public class SourceViewer extends TextViewer implements ISourceViewer, ISourceViewerExtension, ISourceViewerExtension2, ISourceViewerExtension3, ISourceViewerExtension4, ISourceViewerExtension5 { +public class SourceViewer extends TextViewer implements ISourceViewer, ISourceViewerExtension, ISourceViewerExtension2, ISourceViewerExtension3, ISourceViewerExtension4 { /** @@ -1190,14 +1190,4 @@ return null; return fVerticalRulerHoveringController.getCurrentAnnotationHover(); } - - /** - * @see org.eclipse.jface.text.source.ISourceViewerExtension5#getAnnotationHover() - * @since 3.6 - */ - public IAnnotationHover getAnnotationHover() { - if (fVerticalRulerHoveringController == null) - return null; - return fVerticalRulerHoveringController.getAnnotationHover(); - } } #P org.eclipse.ui.editors Index: src/org/eclipse/ui/texteditor/AbstractDecoratedTextEditor.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.ui.editors/src/org/eclipse/ui/texteditor/AbstractDecoratedTextEditor.java,v retrieving revision 1.138 diff -u -r1.138 AbstractDecoratedTextEditor.java --- src/org/eclipse/ui/texteditor/AbstractDecoratedTextEditor.java 24 Feb 2010 19:05:39 -0000 1.138 +++ src/org/eclipse/ui/texteditor/AbstractDecoratedTextEditor.java 25 Feb 2010 14:03:34 -0000 @@ -84,8 +84,8 @@ import org.eclipse.jface.text.hyperlink.IHyperlinkDetector; import org.eclipse.jface.text.revisions.IRevisionRulerColumn; import org.eclipse.jface.text.revisions.IRevisionRulerColumnExtension; -import org.eclipse.jface.text.revisions.RevisionInformation; import org.eclipse.jface.text.revisions.IRevisionRulerColumnExtension.RenderingMode; +import org.eclipse.jface.text.revisions.RevisionInformation; import org.eclipse.jface.text.source.Annotation; import org.eclipse.jface.text.source.AnnotationRulerColumn; import org.eclipse.jface.text.source.ChangeRulerColumn; @@ -100,7 +100,6 @@ import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.jface.text.source.ISourceViewerExtension; import org.eclipse.jface.text.source.ISourceViewerExtension3; -import org.eclipse.jface.text.source.ISourceViewerExtension5; import org.eclipse.jface.text.source.IVerticalRuler; import org.eclipse.jface.text.source.IVerticalRulerColumn; import org.eclipse.jface.text.source.LineChangeHover; @@ -1251,7 +1250,7 @@ action= new ResourceAction(TextEditorMessages.getBundleForConstructedKeys(), "Editor.ShowChangeRulerInformation.", IAction.AS_PUSH_BUTTON) { //$NON-NLS-1$ public void run() { - showRulerInformation(true); + showChangeRulerInformation(); } }; action.setActionDefinitionId(ITextEditorActionDefinitionIds.SHOW_CHANGE_RULER_INFORMATION_ID); @@ -1259,7 +1258,7 @@ action= new ResourceAction(TextEditorMessages.getBundleForConstructedKeys(), "Editor.ShowRulerAnnotationInformation.", IAction.AS_PUSH_BUTTON) { //$NON-NLS-1$ public void run() { - showRulerInformation(false); + showRulerAnnotationInformation(); } }; action.setActionDefinitionId(ITextEditorActionDefinitionIds.SHOW_RULER_ANNOTATION_INFORMATION_ID); @@ -1267,14 +1266,12 @@ } /** - * Opens a sticky ruler hover for the caret line. Does nothing if no hover is available. + * Opens a sticky change ruler hover for the caret line. Does nothing if no change hover is + * available. * - * @param changeHover true to show change hover, false to show - * annotation hover - * - * @since 3.6 + * @since 3.5 */ - private void showRulerInformation(boolean changeHover) { + private void showChangeRulerInformation() { IVerticalRuler ruler= getVerticalRuler(); if (!(ruler instanceof CompositeRuler) || fLineColumn == null) return; @@ -1292,14 +1289,35 @@ compositeRuler.setLocationOfLastMouseButtonActivity(x, y); - IAnnotationHover hover= null; - if (changeHover) { - hover= fLineColumn.getHover(); - } else { - if (sourceViewer instanceof ISourceViewerExtension5) { - hover= ((ISourceViewerExtension5)sourceViewer).getAnnotationHover(); - } - } + IAnnotationHover hover= fLineColumn.getHover(); + showFocusedRulerHover(hover, sourceViewer, caretOffset); + } + + /** + * Opens a sticky annotation ruler hover for the caret line. Does nothing if no annotation hover + * is available. + * + * @since 3.6 + */ + private void showRulerAnnotationInformation() { + ISourceViewer sourceViewer= getSourceViewer(); + IAnnotationHover hover= getSourceViewerConfiguration().getAnnotationHover(sourceViewer); + int caretOffset= sourceViewer.getTextWidget().getCaretOffset(); + + showFocusedRulerHover(hover, sourceViewer, caretOffset); + } + + /** + * Shows a focused hover at the specified offset. + * Does nothing if hover is null or cannot be shown. + * + * @param hover the hover to be shown, can be null + * @param sourceViewer the source viewer + * @param caretOffset the caret offset + * + * @since 3.6 + */ + private void showFocusedRulerHover(IAnnotationHover hover, ISourceViewer sourceViewer, int caretOffset) { if (hover == null) return; @@ -1320,7 +1338,7 @@ } catch (BadLocationException e) { return; } - } + } /** * Creates and registers the print action.