Mercurial > hg > de.codedo.java.editor
diff 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 |
line wrap: on
line diff
--- a/src/de/codedo/java/editor/CodedoJavaEditor.java Thu Oct 15 09:43:34 2020 +0200 +++ b/src/de/codedo/java/editor/CodedoJavaEditor.java Thu Oct 15 12:05:06 2020 +0200 @@ -1,6 +1,7 @@ package de.codedo.java.editor; -import java.lang.reflect.Field; +import static de.codedo.java.editor.ReflectionUtils.getFieldValue; +import static de.codedo.java.editor.ReflectionUtils.setFieldValue; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor; @@ -21,8 +22,11 @@ { try { - JavaUILabelProvider labelProvider = getJavaUILabelProvider(); - setupJavaElementImageProvider(labelProvider); + JavaEditorErrorTickUpdater tickUpdater = getFieldValue("fJavaEditorErrorTickUpdater", this); + JavaUILabelProvider labelProvider = getFieldValue("fLabelProvider", tickUpdater); + + CodedoJavaElementImageProvider imageProvider = Activator.getDefault().getJavaElementImageProvider(); + setFieldValue(labelProvider, "fImageLabelProvider", imageProvider); } catch (ReflectiveOperationException e) { @@ -30,31 +34,6 @@ } } - private JavaUILabelProvider getJavaUILabelProvider() throws ReflectiveOperationException - { - JavaEditorErrorTickUpdater tickUpdater = getJavaEditorErrorTickUpdater(); - - Field field = tickUpdater.getClass().getDeclaredField("fLabelProvider"); - field.setAccessible(true); - return (JavaUILabelProvider)field.get(tickUpdater); - } - - private JavaEditorErrorTickUpdater getJavaEditorErrorTickUpdater() throws ReflectiveOperationException - { - Field field = getClass().getSuperclass().getDeclaredField("fJavaEditorErrorTickUpdater"); - field.setAccessible(true); - return (JavaEditorErrorTickUpdater)field.get(this); - } - - private void setupJavaElementImageProvider(JavaUILabelProvider labelProvider) throws ReflectiveOperationException - { - CodedoJavaElementImageProvider imageProvider = Activator.getDefault().getJavaElementImageProvider(); - - Field field = labelProvider.getClass().getDeclaredField("fImageLabelProvider"); - field.setAccessible(true); - field.set(labelProvider, imageProvider); - } - public void toggleTitleImage() { IJavaElement javaElement = getJavaElement();