Bug 378364

Summary: Add new interface to replace bad usages of IInformationProviderExtension2
Product: [Eclipse Project] Platform Reporter: Markus Keller <markus.kell.r>
Component: TextAssignee: Markus Keller <markus.kell.r>
Status: ASSIGNED --- QA Contact:
Severity: enhancement    
Priority: P3 CC: daniel_megert, deepakazad, markus.kell.r
Version: 3.8Keywords: api
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard: fix candidate
Bug Depends on:    
Bug Blocks: 378365    

Description Markus Keller CLA 2012-05-03 08:58:29 EDT
IInformationProviderExtension2 has been abused as a mixin interface to add a

    IInformationControlCreator getInformationPresenterControlCreator();

method to ITextHovers and IAnnotationHover. This is conceptually wrong.

The right way to add this functionality to ITextHovers and IAnnotationHover is via a proper mixin interface that is declared as such, e.g. IInformationPresenterProvider. IInformationProviderExtension2 can then extend IInformationPresenterProvider for backwards compatibility.

The new method's Javadoc should explain that the information presenter control creator is not used on hover, but on F2 and that the control creator should create focusable and resizable controls.

The returned controls are supposed to be equivalent to controls created via 

((IInformationControlExtension5)
        hover.getHoverControlCreator().createInformationControl(..)
).getInformationPresenterControlCreator()