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
* proposal popup, even if no proposal provider was specified.
	 */
	private IContentProposal[] getEmptyProposalArray() {
		return new IContentProposal[0];
	}
	/*
	 * Add a listener to the target control. We monitor key and traverse events
	 * in the target control while we are open, in order to handle traversal and
	 * navigation requests.
	 */
	private void addControlListener() {
		controlListener = new TargetControlListener();
		control.addListener(SWT.KeyDown, controlListener);
		control.addListener(SWT.Traverse, controlListener);
	}
	/*
	 * Remove any listeners installed on the control.
	 */
	private void removeControlListener() {
		control.removeListener(SWT.KeyDown, controlListener);
		control.removeListener(SWT.Traverse, controlListener);
	}
	/*
	 * Answer true if the popup is valid, which means the table has been created
	 * and not disposed.
	 */
	private boolean isValid() {
		return proposalTable != null && !proposalTable.isDisposed();
	}
	/*