Bug 148357 [Field Assist] - API - provide access for closing the proposal popup
I think that the field assist API needs more hooks to be customizable. For example : 1) There is no way to manually close/open the popup. Most of the times, this is the easier thing for a user to ask to implement his custom behaviour. 2) There is no way to intercept keystrokes/events directed to the field. 3) There is no way to control focus.
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.java
* proposal provider. If there are no proposals to be shown, do not show
	 * the popup.  This method returns immediately. That is, it does not
	 * wait for the popup to open or a proposal to be selected.
	 * 
	 * @param autoActivated a boolean indicating whether the popup was
	 * autoactivated.  If false, a beep will sound when no proposals
	 * can be shown.
	 */
	private void openProposalPopup(boolean autoActivated) {
		if (isValid()) {
			if (popup == null) {
				
				recordCursorPosition();  
				IContentProposal[] proposals = getProposals();
				if (proposals.length > 0) {
					if (DEBUG) {
						System.out.println("POPUP OPENED BY PRECEDING EVENT"); 
					}
					recordCursorPosition();
					popup = new ContentProposalPopup(null, proposals);
					popup.open();
					popup.getShell().addDisposeListener(new DisposeListener() {
						public void widgetDisposed(DisposeEvent event) {
							popup = null;
						}
					});
				} else if (!autoActivated) {
					getControl().getDisplay().beep();
				}
			}