Bug 183650 [FieldAssist] ContentProposalAdapter with Text produces unwanted popup on Enter
Build ID: I20070323-1616 Steps To Reproduce: 1. Setup a ContentProposalAdapter (using ContentProposalAdapter.PROPOSAL_REPLACE) with some proposals on a Text control. 2. Type some valid text into the Text control 3. Hit "Enter" (or select from the dropdown) More information: ContentProposalAdapter has a private controlListener that calls autoActivate() on a SWT.Modify event. This is fine except it gets triggered from ContentProposalAdapter.proposalAccepted(). The result is that you select one of the items and it modifies the Text control causing the popup to display again, which goes around until the user hits ESC to make it go away.
bundles/org.eclipse.jface/src/org/eclipse/jface/fieldassist/ContentProposalAdapter.java
return "[0x" + Integer.toHexString(i) + ']'; 
			}
		};
		control.addListener(SWT.KeyDown, controlListener);
		control.addListener(SWT.Traverse, controlListener);
		control.addListener(SWT.Modify, controlListener);
		if (DEBUG) {
			System.out
					.println("ContentProposalAdapter#installControlListener() - installed"); 
		}
	}
	/**
	 * Open the proposal popup and display the proposals provided by the
	 * 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");