Bug 125012 [Field Assist] Clarify lifecycle of the ILabelProvider used by ContentProposalAdapter
I20060119-0800 Clients who want to port their field content assistants from jface.text.contentassist to jface.fieldassist would expect to be able to supply an image in IContentProposal, e.g. with a 'Image getImage();' method as in ICompletionProposal. Without icons, e.g. proposals for java type names would look quite different from the ones you get in the java editor. There's also a lot more functionality in ICompletionProposal and the 4 ICompletionProposalExtension* interfaces. Some of those concepts must also be supported in fieldassist if clients such as the Find/Replace dialog and Java type completions in dialogs should switch (e.g. the additionalProposalInfo to show documentation for regex proposals, etc.). I can file separate bugs for these functionalities if you want to discuss them one by one.
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.java
* Filter text - tracked while popup is open, only if we are told to
		 * filter
		 */
		private String filterText = EMPTY;
		/*
		 * Boolean that indicates whether we are filtering.
		 */
		private boolean filter = false;
		/**
		 * Constructs a new instance of this popup, specifying the control for
		 * which this popup is showing content, and how the proposals should be
		 * obtained and displayed.
		 * 
		 * @param adapter
		 *            the content proposal adapter that opened this dialog.
		 * @param control
		 *            the control whose content is being proposed.
		 * @param infoText
		 *            Text to be shown in a lower info area, or
		 *            <code>null</code> if there is no info area.
		 * @param filter
		 *            a boolean indicating whether proposals should be filtered
		 *            as keys are typed in the popup.
		 */
		ContentProposalPopup(String infoText, boolean filter) {
			super(control.getShell(), PopupDialog.INFOPOPUP_SHELLSTYLE, false,
					false, false, false, null, infoText);
			this.proposals = getProposals(filterText);
			this.filter = filter;
		}