Bug 125418 [Field Assist] - API - Should ContentProposalPopup be public?
In the initial release of the field assist API, the ContentProposalPopup is public. There's really no reason for this to be the case, as the popup is driven by the ContentProposalAdapter. The ContentProposalPopup should likely be made an inner type of the adapter.
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalPopup.java
* 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 proposalProvider
	 *            the provider of content proposals
	 * @param infoText
	 *            Text to be shown in a lower info area, or <code>null</code>
	 *            if there is no info area.
	 * @param labelProvider
	 *            the {@link ILabelProvider} used to obtain visual content for
	 *            the proposals. Must never be <code>null</code>.
	 * @param filter
	 *            a boolean indicating whether proposals should be filtered as
	 *            keys are typed in the popup.
	 */
	public ContentProposalPopup(ContentProposalAdapter adapter,
			Control control, IContentProposalProvider proposalProvider,
			String infoText, ILabelProvider labelProvider, boolean filter) {
		super(control.getShell(), PopupDialog.INFOPOPUPRESIZE_SHELLSTYLE,
				false, false, false, false, null, infoText);
		this.adapter = adapter;
		this.control = control;
		this.labelProvider = labelProvider;
		this.proposalProvider = proposalProvider;
		this.proposals = getProposals(filterText);