View | Details | Raw Unified | Return to bug 272172 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/jface/text/source/AnnotationBarHoverManager.java (-2 / +2 lines)
Lines 653-661 Link Here
653
	 * Returns the annotation hover for this hover manager.
653
	 * Returns the annotation hover for this hover manager.
654
	 *
654
	 *
655
	 * @return the annotation hover for this hover manager or <code>null</code> if none
655
	 * @return the annotation hover for this hover manager or <code>null</code> if none
656
	 * @since 3.6 public, was protected since 2.1
656
	 * @since 2.1
657
	 */
657
	 */
658
	public IAnnotationHover getAnnotationHover() {
658
	protected IAnnotationHover getAnnotationHover() {
659
		return fAnnotationHover;
659
		return fAnnotationHover;
660
	}
660
	}
661
661
(-)src/org/eclipse/jface/text/source/ISourceViewerExtension5.java (-32 lines)
Removed Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2010 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     IBM Corporation - initial API and implementation
10
 *******************************************************************************/
11
package org.eclipse.jface.text.source;
12
13
14
/**
15
 * Extension interface for {@link org.eclipse.jface.text.source.ISourceViewer}.
16
 * <p>
17
 * It provides access to the annotation hover.
18
 * </p>
19
 * 
20
 * @since 3.6
21
 */
22
public interface ISourceViewerExtension5 {
23
24
	/**
25
	 * Returns the annotation hover if any, <code>null</code> otherwise.
26
	 * 
27
	 * @return the annotation hover or <code>null</code>
28
	 * @since 3.6
29
	 */
30
	IAnnotationHover getAnnotationHover();
31
32
}
(-)src/org/eclipse/jface/text/source/SourceViewer.java (-11 / +1 lines)
Lines 80-86 Link Here
80
 * <p>
80
 * <p>
81
 * Clients may subclass this class but should expect some breakage by future releases.</p>
81
 * Clients may subclass this class but should expect some breakage by future releases.</p>
82
 */
82
 */
83
public class SourceViewer extends TextViewer implements ISourceViewer, ISourceViewerExtension, ISourceViewerExtension2, ISourceViewerExtension3, ISourceViewerExtension4, ISourceViewerExtension5 {
83
public class SourceViewer extends TextViewer implements ISourceViewer, ISourceViewerExtension, ISourceViewerExtension2, ISourceViewerExtension3, ISourceViewerExtension4 {
84
84
85
85
86
	/**
86
	/**
Lines 1190-1203 Link Here
1190
    		return null;
1190
    		return null;
1191
    	return fVerticalRulerHoveringController.getCurrentAnnotationHover();
1191
    	return fVerticalRulerHoveringController.getCurrentAnnotationHover();
1192
    }
1192
    }
1193
1194
	/**
1195
	 * @see org.eclipse.jface.text.source.ISourceViewerExtension5#getAnnotationHover()
1196
	 * @since 3.6
1197
	 */
1198
	public IAnnotationHover getAnnotationHover() {
1199
		if (fVerticalRulerHoveringController == null)
1200
			return null;
1201
		return fVerticalRulerHoveringController.getAnnotationHover();
1202
	}
1203
}
1193
}
(-)src/org/eclipse/ui/texteditor/AbstractDecoratedTextEditor.java (-19 / +37 lines)
Lines 84-91 Link Here
84
import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
84
import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
85
import org.eclipse.jface.text.revisions.IRevisionRulerColumn;
85
import org.eclipse.jface.text.revisions.IRevisionRulerColumn;
86
import org.eclipse.jface.text.revisions.IRevisionRulerColumnExtension;
86
import org.eclipse.jface.text.revisions.IRevisionRulerColumnExtension;
87
import org.eclipse.jface.text.revisions.RevisionInformation;
88
import org.eclipse.jface.text.revisions.IRevisionRulerColumnExtension.RenderingMode;
87
import org.eclipse.jface.text.revisions.IRevisionRulerColumnExtension.RenderingMode;
88
import org.eclipse.jface.text.revisions.RevisionInformation;
89
import org.eclipse.jface.text.source.Annotation;
89
import org.eclipse.jface.text.source.Annotation;
90
import org.eclipse.jface.text.source.AnnotationRulerColumn;
90
import org.eclipse.jface.text.source.AnnotationRulerColumn;
91
import org.eclipse.jface.text.source.ChangeRulerColumn;
91
import org.eclipse.jface.text.source.ChangeRulerColumn;
Lines 100-106 Link Here
100
import org.eclipse.jface.text.source.ISourceViewer;
100
import org.eclipse.jface.text.source.ISourceViewer;
101
import org.eclipse.jface.text.source.ISourceViewerExtension;
101
import org.eclipse.jface.text.source.ISourceViewerExtension;
102
import org.eclipse.jface.text.source.ISourceViewerExtension3;
102
import org.eclipse.jface.text.source.ISourceViewerExtension3;
103
import org.eclipse.jface.text.source.ISourceViewerExtension5;
104
import org.eclipse.jface.text.source.IVerticalRuler;
103
import org.eclipse.jface.text.source.IVerticalRuler;
105
import org.eclipse.jface.text.source.IVerticalRulerColumn;
104
import org.eclipse.jface.text.source.IVerticalRulerColumn;
106
import org.eclipse.jface.text.source.LineChangeHover;
105
import org.eclipse.jface.text.source.LineChangeHover;
Lines 1251-1257 Link Here
1251
		
1250
		
1252
		action= new ResourceAction(TextEditorMessages.getBundleForConstructedKeys(), "Editor.ShowChangeRulerInformation.", IAction.AS_PUSH_BUTTON) { //$NON-NLS-1$
1251
		action= new ResourceAction(TextEditorMessages.getBundleForConstructedKeys(), "Editor.ShowChangeRulerInformation.", IAction.AS_PUSH_BUTTON) { //$NON-NLS-1$
1253
			public void run() {
1252
			public void run() {
1254
				showRulerInformation(true);
1253
				showChangeRulerInformation();
1255
			}
1254
			}
1256
		};
1255
		};
1257
		action.setActionDefinitionId(ITextEditorActionDefinitionIds.SHOW_CHANGE_RULER_INFORMATION_ID);
1256
		action.setActionDefinitionId(ITextEditorActionDefinitionIds.SHOW_CHANGE_RULER_INFORMATION_ID);
Lines 1259-1265 Link Here
1259
1258
1260
		action= new ResourceAction(TextEditorMessages.getBundleForConstructedKeys(), "Editor.ShowRulerAnnotationInformation.", IAction.AS_PUSH_BUTTON) { //$NON-NLS-1$
1259
		action= new ResourceAction(TextEditorMessages.getBundleForConstructedKeys(), "Editor.ShowRulerAnnotationInformation.", IAction.AS_PUSH_BUTTON) { //$NON-NLS-1$
1261
			public void run() {
1260
			public void run() {
1262
				showRulerInformation(false);
1261
				showRulerAnnotationInformation();
1263
			}
1262
			}
1264
		};
1263
		};
1265
		action.setActionDefinitionId(ITextEditorActionDefinitionIds.SHOW_RULER_ANNOTATION_INFORMATION_ID);
1264
		action.setActionDefinitionId(ITextEditorActionDefinitionIds.SHOW_RULER_ANNOTATION_INFORMATION_ID);
Lines 1267-1280 Link Here
1267
	}
1266
	}
1268
1267
1269
	/**
1268
	/**
1270
	 * Opens a sticky ruler hover for the caret line. Does nothing if no hover is available.
1269
	 * Opens a sticky change ruler hover for the caret line. Does nothing if no change hover is
1270
	 * available.
1271
	 * 
1271
	 * 
1272
	 * @param changeHover <code>true</code> to show change hover, <code>false</code> to show
1272
	 * @since 3.5
1273
	 *            annotation hover
1274
	 * 
1275
	 * @since 3.6
1276
	 */
1273
	 */
1277
	private void showRulerInformation(boolean changeHover) {
1274
	private void showChangeRulerInformation() {
1278
		IVerticalRuler ruler= getVerticalRuler();
1275
		IVerticalRuler ruler= getVerticalRuler();
1279
		if (!(ruler instanceof CompositeRuler) || fLineColumn == null)
1276
		if (!(ruler instanceof CompositeRuler) || fLineColumn == null)
1280
			return;
1277
			return;
Lines 1292-1305 Link Here
1292
		
1289
		
1293
		compositeRuler.setLocationOfLastMouseButtonActivity(x, y);
1290
		compositeRuler.setLocationOfLastMouseButtonActivity(x, y);
1294
		
1291
		
1295
		IAnnotationHover hover= null;
1292
		IAnnotationHover hover= fLineColumn.getHover();
1296
		if (changeHover) {
1293
		showFocusedRulerHover(hover, sourceViewer, caretOffset);
1297
			hover= fLineColumn.getHover();
1294
    }
1298
		} else {
1295
1299
			if (sourceViewer instanceof ISourceViewerExtension5) {
1296
	/**
1300
				hover= ((ISourceViewerExtension5)sourceViewer).getAnnotationHover();
1297
	 * Opens a sticky annotation ruler hover for the caret line. Does nothing if no annotation hover
1301
			}
1298
	 * is available.
1302
		}
1299
	 * 
1300
	 * @since 3.6
1301
	 */
1302
	private void showRulerAnnotationInformation() {
1303
		ISourceViewer sourceViewer= getSourceViewer();
1304
		IAnnotationHover hover= getSourceViewerConfiguration().getAnnotationHover(sourceViewer);
1305
		int caretOffset= sourceViewer.getTextWidget().getCaretOffset();
1306
		
1307
		showFocusedRulerHover(hover, sourceViewer, caretOffset);
1308
	}
1309
1310
	/**
1311
	 * Shows a focused hover at the specified offset.
1312
	 * Does nothing if <code>hover</code> is <code>null</code> or cannot be shown. 
1313
	 * 
1314
	 * @param hover the hover to be shown, can be <code>null</code>
1315
	 * @param sourceViewer the source viewer
1316
	 * @param caretOffset the caret offset
1317
	 * 
1318
	 * @since 3.6
1319
	 */
1320
	private void showFocusedRulerHover(IAnnotationHover hover, ISourceViewer sourceViewer, int caretOffset) {
1303
		if (hover == null)
1321
		if (hover == null)
1304
			return;
1322
			return;
1305
		
1323
		
Lines 1320-1326 Link Here
1320
		} catch (BadLocationException e) {
1338
		} catch (BadLocationException e) {
1321
			return;
1339
			return;
1322
		}
1340
		}
1323
    }
1341
	}
1324
1342
1325
	/**
1343
	/**
1326
	 * Creates and registers the print action.
1344
	 * Creates and registers the print action.

Return to bug 272172