I am writing Eclipse plugins for Java, and have the following problem:
Given an IEditorPart, I need to check if it is a java editor.
I could do (IEditor instanceof JavaEditor), but JavaEditor is an org.eclipse.jdt.internal.ui.javaeditor.JavaEditor, which falls under the JDT’s ‘internal’ classes.
Is there a smarter and safer way to do this? I’m not sure why there is no non-internal interface for this.
You should test the id of the IEditorPart:
Testing the instance was only needed in eclipse3.1.
alt text http://blogs.zdnet.com/images/Burnette_DSCN0599.JPG
JavaUIis the main access point to the Java user interface components. It allows you to programmatically open editors on Java elements, open a Java or Java Browsing perspective, and open package and type prompter dialogs.JavaUIis the central access point for the Java UI plug-in (id ‘org.eclipse.jdt.ui‘)You can see that kind of utility function (‘
isJavaEditor()‘) used for instance inASTProvider.The mechanism of identification here is indeed simple String comparison.
Anyway, you are wise to avoid cast comparison with internal class: it has been listed as one of the 10 common errors in plugins development 😉 .