JDT UI Breaking API changes

java development tooling ui

This document lists the breaking API changes that occurred between R3.1 and R3.2 and how to migrate from the R3.1 API to the R3.2 API.

jdt ui - Breaking API changes from R3.1 to R3.2

jdt ui - Non-breaking API changes from R3.1 to R3.2

New and deprecated API in `org.eclipse.jdt.ui.JavadocContentAccess`:

- `getHTMLContentReader(IMember, boolean)` has been deprecated in favor of `getHTMLContentReader(IMember, boolean, boolean)` which allows to specify whether attached Javadoc should be respected.

New API added on JavaUI

- createPackageDialog(Shell parent, IRunnableContext context, IJavaSearchScope scope, boolean multipleSelection, boolean removeDuplicates, String filter)
- getEditorInputJavaElement(IEditorInput)

New API added to extend the 'open type' dialog

- JavaUI.createTypeDialog(Shell, IRunnableContext, IJavaSearchScope, int, boolean, String, TypeSelectionExtension) (org.eclipse.jdt.ui.)
- TypeSelectionExtension (org.eclipse.jdt.ui.dialogs)
- ITypeInfoFilterExtension (org.eclipse.jdt.ui.dialogs)
- ITypeInfoImageProvider (org.eclipse.jdt.ui.dialogs)
- ITypeInfoRequestor (org.eclipse.jdt.ui.dialogs)
- ITypeSelectionComponent (org.eclipse.jdt.ui.dialogs)

New API added to open wizards programmatically

- OpenNewAnnotationWizardAction (org.eclipse.jdt.ui.action)
- OpenNewClassWizardAction (org.eclipse.jdt.ui.action)
- OpenNewEnumWizardAction (org.eclipse.jdt.ui.action)
- OpenNewInterfaceWizardAction (org.eclipse.jdt.ui.action)
- OpenNewJavaProjectWizardAction (org.eclipse.jdt.ui.action)
- OpenNewPackageWizardAction (org.eclipse.jdt.ui.action)
- OpenNewSourceFolderWizardAction (org.eclipse.jdt.ui.action)

New API added on ISharedImages

- IMG_OBJS_CLASSPATH_VAR_ENTRY
- IMG_OBJS_JAVADOCTAG

New API added on IPackagesViewPart

- isLinkingEnabled()
- setLinkingEnabled(boolean)

New API added on NewTypeWizardPage

- getCompilationUnitName(String)
- accessors that return the input field labels can be overridden

- getPackageLabel()
- getEnclosingTypeLabel()
- getTypeNameLabel()
- getModifiersLabel()
- getSuperClassLabel()
- getSuperInterfacesLabel()

- methods that open the selection dialogs can now be overridden

- choosePackage()
- chooseEnclosingType()
- chooseSuperClass()
- chooseSuperInterfaces()

New API added on NewContainerWizardPage

- accessors that return the input field labels can be overridden

- getContainerLabel()

- methods that open the selection dialogs can now be overridden

- chooseContainer()

New API added on JavaCapabilityConfigurationPage

- createProject(IProject, URI locationURI, IProgressMonitor)

Deprecated API

- createProject(IProject, IPath locationPath, IProgressMonitor)

JDT action now support a pluggable selection provider so that the actions can also be used on non-Java elements

- New constructor SelectionDispatchAction(IWorkbenchSite site, ISelectionProvider provider)
- New class

- ConvertingSelectionProvider

New API to use the functionality of OverrideMethodsAction and AddUnimplementedConstructorsAction without UI.

- New method OverrideMethodsAction.createRunnable(CompilationUnit astRoot, ITypeBinding type, IMethodBinding[] methodToOverride, int insertPos, boolean createComments)
- New method AddUnimplementedConstructorsAction.createRunnable(CompilationUnit astRoot, ITypeBinding type, IMethodBinding[] methodToOverride, int insertPos, boolean createComments, int visibility, boolean omitSuper)

New API to get a ImportRewrite configured with the JDT.UI preference settings.

- CodeStyleConfiguration.createImportRewrite(...)

New API on CodeGeneration

- CodeGeneration.getTypeBody(...) and constants

New API on JavaElementLabels

- Constants added to show element categories

New API JarWriter3

- JarWriter3 has been added to create JARs with refactoring scripts

New API for folding structure provider

- IJavaFoldingStructureProviderExtension
- DefaultJavaFoldingStructureProvider

New actions added to give access to new functionality

- GenerateHashCodeEqualsAction
- IntroduceIndirectionAction
- ReplaceInvocationsAction

New API to allow QuickFix and QuickAssist processors to work on (non-jdt.core) problems contributed by reconcile participants.

- Extensions of quickFixProcessors can now specify which marker types they can handle: new element <handledMarkerTypes>. Processors will only receive problems of specified types. If no handled marker type are specified, the processor will only get problems of types org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem and org.eclipse.jdt.core.task; this is compatible to the behavior prior to 3.2.
- New API added on IProblemLocation: IProblemLocation.getMarkerType()
- For historical reasons, IQuickFixProcessor.hasCorrections only gets the problem ID, but not the problem marker type. The possible marker types are defined by the extension. To avoid any conflicts on the ID, extenders are recommended to implement a processor per marker type.

API changes from 3.0 to 3.1 can be found here.