diff options
author | angelozerr | 2017-12-18 14:22:41 +0000 |
---|---|---|
committer | Mickael Istria | 2017-12-21 16:24:59 +0000 |
commit | fbf48eb2c866c228064cd1e70e4164a19449eeac (patch) | |
tree | f45d387e6d25ac33c13348aa07449651e2905c1f | |
parent | b70fdcd63eab02c88bac2a93fb8cf73535b6fcbf (diff) | |
download | eclipse.platform.text-fbf48eb2c866c228064cd1e70e4164a19449eeac.tar.gz eclipse.platform.text-fbf48eb2c866c228064cd1e70e4164a19449eeac.tar.xz eclipse.platform.text-fbf48eb2c866c228064cd1e70e4164a19449eeac.zip |
Bug 528851 - [CodeMining] Problem while getting bad AnnotationPainter
(with JDT Editor)
Change-Id: I04710e6a04d7bdcdd3a53869d3e0dacd6cbf99b6
Signed-off-by: angelozerr <angelo.zerr@gmail.com>
4 files changed, 15 insertions, 7 deletions
diff --git a/org.eclipse.jface.text.examples/src/org/eclipse/jface/text/examples/codemining/CodeMiningDemo.java b/org.eclipse.jface.text.examples/src/org/eclipse/jface/text/examples/codemining/CodeMiningDemo.java index 64fb47d11d4..903a2617be7 100644 --- a/org.eclipse.jface.text.examples/src/org/eclipse/jface/text/examples/codemining/CodeMiningDemo.java +++ b/org.eclipse.jface.text.examples/src/org/eclipse/jface/text/examples/codemining/CodeMiningDemo.java @@ -102,6 +102,8 @@ public class CodeMiningDemo { };
AnnotationPainter painter = new AnnotationPainter(viewer, annotationAccess);
((ITextViewerExtension2) viewer).addPainter(painter);
+ // Register this annotation painter as CodeMining annotation painter.
+ ((ISourceViewerExtension5) viewer).setCodeMiningAnnotationPainter(painter);
}
}
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/ISourceViewerExtension5.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/ISourceViewerExtension5.java index 6cfa66cdeb6..2ed4f97bdac 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/ISourceViewerExtension5.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/ISourceViewerExtension5.java @@ -26,6 +26,13 @@ import org.eclipse.jface.text.codemining.ICodeMiningProvider; public interface ISourceViewerExtension5 { /** + * Set the {@link AnnotationPainter} to use to draw code minings. + * + * @param painter the {@link AnnotationPainter} to use to draw code minings. + */ + void setCodeMiningAnnotationPainter(AnnotationPainter painter); + + /** * Update the code minings. * * Clients and implementors are responsible of calling this method when needed. A typical diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java index 824486d6920..93d7db84826 100644 --- a/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java +++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/source/SourceViewer.java @@ -40,7 +40,6 @@ import org.eclipse.jface.text.DocumentRewriteSessionType; import org.eclipse.jface.text.IBlockTextSelection; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IDocumentExtension4; -import org.eclipse.jface.text.IPainter; import org.eclipse.jface.text.IPositionUpdater; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.IRewriteTarget; @@ -1308,12 +1307,9 @@ public class SourceViewer extends TextViewer implements ISourceViewer, ISourceVi } @Override - public void addPainter(IPainter painter) { - if (painter instanceof AnnotationPainter) { - fAnnotationPainter= (AnnotationPainter) painter; - ensureCodeMiningManagerInstalled(); - } - super.addPainter(painter); + public void setCodeMiningAnnotationPainter(AnnotationPainter painter) { + fAnnotationPainter= painter; + ensureCodeMiningManagerInstalled(); } } diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/SourceViewerDecorationSupport.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/SourceViewerDecorationSupport.java index b16c2464854..9342f2c6e18 100644 --- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/SourceViewerDecorationSupport.java +++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/SourceViewerDecorationSupport.java @@ -40,6 +40,7 @@ import org.eclipse.jface.text.source.ICharacterPairMatcher; import org.eclipse.jface.text.source.IOverviewRuler; import org.eclipse.jface.text.source.ISharedTextColors; import org.eclipse.jface.text.source.ISourceViewer; +import org.eclipse.jface.text.source.ISourceViewerExtension5; import org.eclipse.jface.text.source.MatchingCharacterPainter; @@ -826,6 +827,8 @@ public class SourceViewerDecorationSupport { ((ITextViewerExtension4)fSourceViewer).addTextPresentationListener(fAnnotationPainter); ITextViewerExtension2 extension= (ITextViewerExtension2) fSourceViewer; extension.addPainter(fAnnotationPainter); + if (fSourceViewer instanceof ISourceViewerExtension5) + ((ISourceViewerExtension5) fSourceViewer).setCodeMiningAnnotationPainter(fAnnotationPainter); } fAnnotationPainter.setAnnotationTypeColor(annotationType, getAnnotationTypeColor(annotationType)); Object decorationType= getAnnotationDecorationType(annotationType); |