From 0548d98866aaf82ed6c5f7b81d79f4eb0809cf6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christoph=20D=C3=B6bber?= <doebber@in.tum.de>
Date: Wed, 29 Feb 2012 13:32:34 +0000
Subject: [PATCH] fixed flicker and multiple completion bug refs 678

---
 .../base/ui/fieldassist/FieldAssist.java      | 21 +++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/fieldassist/FieldAssist.java b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/fieldassist/FieldAssist.java
index 38c82895d..bb45b2b0e 100644
--- a/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/fieldassist/FieldAssist.java
+++ b/org.fortiss.tooling.base.ui/trunk/src/org/fortiss/tooling/base/ui/fieldassist/FieldAssist.java
@@ -52,7 +52,10 @@ public class FieldAssist {
 	 * ProposalProvider wrapper class that takes care of proper insertion. This
 	 * is intended to be transparent to the implementor.
 	 */
-	private final AF3ContentProposalProvider provider;
+	private AF3ContentProposalProvider provider;
+
+	/** Stores the {@link ContentProposalAdapter}. */
+	private ContentProposalAdapter adapter;
 
 	/**
 	 * Constructor.
@@ -66,9 +69,8 @@ public class FieldAssist {
 	/** Initializes the FieldAssist object. */
 	private void initialize() {
 		provider.setFiltering(true);
-		ContentProposalAdapter adapter = new ContentProposalAdapter(field,
-				new TextContentAdapter(), provider,
-				concreteProvider.getKeystroke(),
+		adapter = new ContentProposalAdapter(field, new TextContentAdapter(),
+				provider, concreteProvider.getKeystroke(),
 				concreteProvider.getAutoActivationChars());
 		adapter.setPropagateKeys(true);
 		adapter.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_IGNORE);
@@ -113,6 +115,17 @@ public class FieldAssist {
 
 			}
 		});
+
+	}
+
+	/**
+	 * Sets a new proposal provider. Useful if the {@link FieldAssist} object is
+	 * not disposed as its enclosing text field is not disposed.
+	 */
+	public void setProposalProvider(IProposalProvider proposalProvider) {
+		this.provider = new AF3ContentProposalProvider(proposalProvider);
+		provider.setFiltering(true);
+		adapter.setContentProposalProvider(provider);
 	}
 
 	/**
-- 
GitLab