01: /*******************************************************************************
02: * Copyright (c) 2000, 2006 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.jdt.internal.ui.refactoring.contentassist;
11:
12: import org.eclipse.swt.SWT;
13: import org.eclipse.swt.widgets.Combo;
14: import org.eclipse.swt.widgets.Shell;
15: import org.eclipse.swt.widgets.Text;
16:
17: import org.eclipse.jface.contentassist.SubjectControlContentAssistant;
18: import org.eclipse.jface.internal.text.html.HTMLTextPresenter;
19:
20: import org.eclipse.jface.text.DefaultInformationControl;
21: import org.eclipse.jface.text.IDocument;
22: import org.eclipse.jface.text.IInformationControl;
23: import org.eclipse.jface.text.IInformationControlCreator;
24: import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
25: import org.eclipse.jface.text.contentassist.IContentAssistant;
26:
27: import org.eclipse.ui.contentassist.ContentAssistHandler;
28:
29: import org.eclipse.jdt.internal.ui.JavaPlugin;
30: import org.eclipse.jdt.internal.ui.text.ContentAssistPreference;
31:
32: /**
33: * @since 3.0
34: */
35: public class ControlContentAssistHelper {
36:
37: /**
38: * @param text the text field to install ContentAssist
39: * @param processor the <code>IContentAssistProcessor</code>
40: */
41: public static void createTextContentAssistant(final Text text,
42: IContentAssistProcessor processor) {
43: ContentAssistHandler.createHandlerForText(text,
44: createJavaContentAssistant(processor));
45: }
46:
47: /**
48: * @param combo the text field to install ContentAssist
49: * @param processor the <code>IContentAssistProcessor</code>
50: */
51: public static void createComboContentAssistant(final Combo combo,
52: IContentAssistProcessor processor) {
53: ContentAssistHandler.createHandlerForCombo(combo,
54: createJavaContentAssistant(processor));
55: }
56:
57: public static SubjectControlContentAssistant createJavaContentAssistant(
58: IContentAssistProcessor processor) {
59: final SubjectControlContentAssistant contentAssistant = new SubjectControlContentAssistant();
60:
61: contentAssistant.setContentAssistProcessor(processor,
62: IDocument.DEFAULT_CONTENT_TYPE);
63:
64: ContentAssistPreference.configure(contentAssistant, JavaPlugin
65: .getDefault().getPreferenceStore());
66: contentAssistant
67: .setContextInformationPopupOrientation(IContentAssistant.CONTEXT_INFO_ABOVE);
68: contentAssistant
69: .setInformationControlCreator(new IInformationControlCreator() {
70: public IInformationControl createInformationControl(
71: Shell parent) {
72: return new DefaultInformationControl(parent,
73: SWT.NONE, new HTMLTextPresenter(true));
74: }
75: });
76:
77: return contentAssistant;
78: }
79:
80: }
|