Mercurial > hg > de.codedo.java.editor
view 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 source
package de.codedo.java.editor; 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; import org.eclipse.jdt.internal.ui.javaeditor.JavaEditorErrorTickUpdater; import org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.IEditorInput; public class CodedoJavaEditor extends CompilationUnitEditor { public CodedoJavaEditor() { super(); installJavaElementImageProvider(); } private void installJavaElementImageProvider() { try { JavaEditorErrorTickUpdater tickUpdater = getFieldValue("fJavaEditorErrorTickUpdater", this); JavaUILabelProvider labelProvider = getFieldValue("fLabelProvider", tickUpdater); CodedoJavaElementImageProvider imageProvider = Activator.getDefault().getJavaElementImageProvider(); setFieldValue(labelProvider, "fImageLabelProvider", imageProvider); } catch (ReflectiveOperationException e) { throw new RuntimeException(e); } } public void toggleTitleImage() { IJavaElement javaElement = getJavaElement(); CodedoJavaElementImageProvider imageProvider = Activator.getDefault().getJavaElementImageProvider(); Image newTitleImage = imageProvider.toggleTitleImage(javaElement); setTitleImage(newTitleImage); } @Override public void dispose() { CodedoJavaElementImageProvider imageProvider = Activator.getDefault().getJavaElementImageProvider(); IJavaElement javaElement = getJavaElement(); imageProvider.resetTitleImage(javaElement); super.dispose(); } private IJavaElement getJavaElement() { IEditorInput input = getEditorInput(); // this class is registered as Java editor so we should always have a java element here return (IJavaElement)input.getAdapter(IJavaElement.class); } }