Bug 163461 [Field Assist] - API - ControlDecoration should work with image+text, not FieldDecoration
DecoratedField supported multiple decoration locations, so it was useful to expose a data structure that referred to a particular decoration. Hence FieldDecoration was defined. It is just an image+text data structure, but was useful for asking DecoratedField to "do things" to a particular decoration, such as hiding it, showing it, updating it, etc. The initial API for ControlDecoration also supported FieldDecoration, in an attempt to "explain itself" as being similar to DecoratedField. However, since a ControlDecoration only shows one decoration, there's not really a need for the image+text to have any kind of identity. It would be better if the ControlDecoration API worked in terms of having an image and a description text. Clients could still use FieldDecorations and the registry if desired, but the API shouldn't require it, since it's trivial to pull the image and text out of a decoration and feed it to ControlDecoration.
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ControlDecoration.java
* text at other times (such as when the control receives focus), or to show
	 * other text associated with the field.
	 * 
	 * @param text
	 *            the text to be shown in the info hover, or <code>null</code>
	 *            if no text should be shown.
	 */
	public void showHoverText(String text) {
		if (control == null) {
			return;
		}
		showHoverText(text, control);
	}
	/**
	 * Hide any hover popups that are currently showing on the control. When
	 * {@link #setShowHover(boolean)} has been set to <code>true</code>, a
	 * decoration's description text will be shown in an info hover over the
	 * field's control as long as the mouse hovers over the decoration, and will
	 * be hidden when the mouse exits the decoration. This method can be used to
	 * hide a hover, whether it was shown explicitly using
	 * {@link #showHoverText(String)}, or was showing because the user was
	 * hovering in the decoration.
	 * <p>
	 * This message has no effect if there is no current hover.
	 * 
	 */
	public void hideHover() {
		if (hover != null) {
			hover.setVisible(false);
		}