Mercurial > hg > de.codedo.java.editor
comparison src/de/codedo/java/editor/CodedoJavaEditor.java @ 9:935df68696c0 default tip
Reflection Code in eigene Klasse verschoben.
author | Dirk Olmes <dirk.olmes@codedo.de> |
---|---|
date | Thu, 15 Oct 2020 12:05:06 +0200 |
parents | 778c251baa66 |
children |
comparison
equal
deleted
inserted
replaced
8:778c251baa66 | 9:935df68696c0 |
---|---|
1 package de.codedo.java.editor; | 1 package de.codedo.java.editor; |
2 | 2 |
3 import java.lang.reflect.Field; | 3 import static de.codedo.java.editor.ReflectionUtils.getFieldValue; |
4 import static de.codedo.java.editor.ReflectionUtils.setFieldValue; | |
4 | 5 |
5 import org.eclipse.jdt.core.IJavaElement; | 6 import org.eclipse.jdt.core.IJavaElement; |
6 import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor; | 7 import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor; |
7 import org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater; | 8 import org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater; |
8 import org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider; | 9 import org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider; |
19 | 20 |
20 private void installJavaElementImageProvider() | 21 private void installJavaElementImageProvider() |
21 { | 22 { |
22 try | 23 try |
23 { | 24 { |
24 JavaUILabelProvider labelProvider = getJavaUILabelProvider(); | 25 JavaEditorErrorTickUpdater tickUpdater = getFieldValue("fJavaEditorErrorTickUpdater", this); |
25 setupJavaElementImageProvider(labelProvider); | 26 JavaUILabelProvider labelProvider = getFieldValue("fLabelProvider", tickUpdater); |
27 | |
28 CodedoJavaElementImageProvider imageProvider = Activator.getDefault().getJavaElementImageProvider(); | |
29 setFieldValue(labelProvider, "fImageLabelProvider", imageProvider); | |
26 } | 30 } |
27 catch (ReflectiveOperationException e) | 31 catch (ReflectiveOperationException e) |
28 { | 32 { |
29 throw new RuntimeException(e); | 33 throw new RuntimeException(e); |
30 } | 34 } |
31 } | |
32 | |
33 private JavaUILabelProvider getJavaUILabelProvider() throws ReflectiveOperationException | |
34 { | |
35 JavaEditorErrorTickUpdater tickUpdater = getJavaEditorErrorTickUpdater(); | |
36 | |
37 Field field = tickUpdater.getClass().getDeclaredField("fLabelProvider"); | |
38 field.setAccessible(true); | |
39 return (JavaUILabelProvider)field.get(tickUpdater); | |
40 } | |
41 | |
42 private JavaEditorErrorTickUpdater getJavaEditorErrorTickUpdater() throws ReflectiveOperationException | |
43 { | |
44 Field field = getClass().getSuperclass().getDeclaredField("fJavaEditorErrorTickUpdater"); | |
45 field.setAccessible(true); | |
46 return (JavaEditorErrorTickUpdater)field.get(this); | |
47 } | |
48 | |
49 private void setupJavaElementImageProvider(JavaUILabelProvider labelProvider) throws ReflectiveOperationException | |
50 { | |
51 CodedoJavaElementImageProvider imageProvider = Activator.getDefault().getJavaElementImageProvider(); | |
52 | |
53 Field field = labelProvider.getClass().getDeclaredField("fImageLabelProvider"); | |
54 field.setAccessible(true); | |
55 field.set(labelProvider, imageProvider); | |
56 } | 35 } |
57 | 36 |
58 public void toggleTitleImage() | 37 public void toggleTitleImage() |
59 { | 38 { |
60 IJavaElement javaElement = getJavaElement(); | 39 IJavaElement javaElement = getJavaElement(); |