Interface of a control presenting information. The information is given in the form of an input object. It can be either the content itself or a description of the content. The specification of what is required from an input object is left to the implementers of this interface.
If this information control is used by a {@link AbstractHoverInformationControlManager}then that manager will own this control and override any properties that may have been set before by any other client.
The information control must not grab focus when made visible using setVisible(true)
. In order to provide backward compatibility for clients of IInformationControl
, extension interfaces are used as a means of evolution. The following extension interfaces exist:
- {@link org.eclipse.jface.text.IInformationControlExtension} sinceversion 2.0 introducing the predicate of whether the control has anything to show or would be empty
- {@link org.eclipse.jface.text.IInformationControlExtension2} sinceversion 2.1 replacing the original concept of textual input by general input objects.
- {@link org.eclipse.jface.text.IInformationControlExtension3} sinceversion 3.0 providing access to the control's bounds and introducing the concept of persistent size and location.
- {@link org.eclipse.jface.text.IInformationControlExtension4} sinceversion 3.3, adding API which allows to set this information control's status field text.
- {@link org.eclipse.jface.text.IInformationControlExtension5} sinceversion 3.4, adding API to get the visibility of the control, to test whether another control is a child of the information control, to compute size constraints based on the information control's main font and to return a control creator for an enriched version of this information control.
Clients can implement this interface and its extension interfaces, subclass {@link AbstractInformationControl}, or use the (text-based) default implementation {@link DefaultInformationControl}.
@see org.eclipse.jface.text.IInformationControlExtension
@see org.eclipse.jface.text.IInformationControlExtension2
@see org.eclipse.jface.text.IInformationControlExtension3
@see org.eclipse.jface.text.IInformationControlExtension4
@see org.eclipse.jface.text.IInformationControlExtension5
@see AbstractInformationControl
@see DefaultInformationControl
@since 2.0