Mercurial > projects > dwt-addons
comparison dwtx/jface/text/quickassist/QuickAssistAssistant.d @ 129:eb30df5ca28b
Added JFace Text sources
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 23 Aug 2008 19:10:48 +0200 |
parents | |
children | c4fb132a086c |
comparison
equal
deleted
inserted
replaced
128:8df1d4193877 | 129:eb30df5ca28b |
---|---|
1 /******************************************************************************* | |
2 * Copyright (c) 2006, 2008 IBM Corporation and others. | |
3 * All rights reserved. This program and the accompanying materials | |
4 * are made available under the terms of the Eclipse Public License v1.0 | |
5 * which accompanies this distribution, and is available at | |
6 * http://www.eclipse.org/legal/epl-v10.html | |
7 * | |
8 * Contributors: | |
9 * IBM Corporation - initial API and implementation | |
10 * Port to the D programming language: | |
11 * Frank Benoit <benoit@tionex.de> | |
12 *******************************************************************************/ | |
13 module dwtx.jface.text.quickassist.QuickAssistAssistant; | |
14 | |
15 import dwt.dwthelper.utils; | |
16 | |
17 | |
18 | |
19 | |
20 import dwt.graphics.Color; | |
21 import dwtx.core.commands.IHandler; | |
22 import dwtx.jface.text.IDocument; | |
23 import dwtx.jface.text.IInformationControlCreator; | |
24 import dwtx.jface.text.ITextViewer; | |
25 import dwtx.jface.text.contentassist.ContentAssistant; | |
26 import dwtx.jface.text.contentassist.ICompletionListener; | |
27 import dwtx.jface.text.contentassist.ICompletionProposal; | |
28 import dwtx.jface.text.contentassist.IContentAssistProcessor; | |
29 import dwtx.jface.text.contentassist.IContextInformation; | |
30 import dwtx.jface.text.contentassist.IContextInformationValidator; | |
31 import dwtx.jface.text.source.Annotation; | |
32 import dwtx.jface.text.source.ISourceViewer; | |
33 import dwtx.jface.text.source.TextInvocationContext; | |
34 | |
35 | |
36 /** | |
37 * Default implementation of <code>IQuickAssistAssistant</code>. | |
38 * | |
39 * @since 3.2 | |
40 */ | |
41 public class QuickAssistAssistant : IQuickAssistAssistant, IQuickAssistAssistantExtension { | |
42 | |
43 | |
44 private static final class QuickAssistAssistantImpl : ContentAssistant { | |
45 /* | |
46 * @see dwtx.jface.text.contentassist.ContentAssistant#possibleCompletionsClosed() | |
47 */ | |
48 public void possibleCompletionsClosed() { | |
49 super.possibleCompletionsClosed(); | |
50 } | |
51 | |
52 /* | |
53 * @see dwtx.jface.text.contentassist.ContentAssistant#hide() | |
54 * @since 3.4 | |
55 */ | |
56 protected void hide() { | |
57 super.hide(); | |
58 } | |
59 } | |
60 | |
61 | |
62 private static final class ContentAssistProcessor : IContentAssistProcessor { | |
63 | |
64 private IQuickAssistProcessor fQuickAssistProcessor; | |
65 | |
66 ContentAssistProcessor(IQuickAssistProcessor processor) { | |
67 fQuickAssistProcessor= processor; | |
68 } | |
69 | |
70 /* | |
71 * @see dwtx.jface.text.contentassist.IContentAssistProcessor#computeCompletionProposals(dwtx.jface.text.ITextViewer, int) | |
72 */ | |
73 public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) { | |
74 // panic code - should not happen | |
75 if (!(viewer instanceof ISourceViewer)) | |
76 return null; | |
77 | |
78 return fQuickAssistProcessor.computeQuickAssistProposals(new TextInvocationContext((ISourceViewer)viewer, offset, -1)); | |
79 } | |
80 | |
81 /* | |
82 * @see dwtx.jface.text.contentassist.IContentAssistProcessor#computeContextInformation(dwtx.jface.text.ITextViewer, int) | |
83 */ | |
84 public IContextInformation[] computeContextInformation(ITextViewer viewer, int offset) { | |
85 return null; | |
86 } | |
87 | |
88 /* | |
89 * @see dwtx.jface.text.contentassist.IContentAssistProcessor#getCompletionProposalAutoActivationCharacters() | |
90 */ | |
91 public char[] getCompletionProposalAutoActivationCharacters() { | |
92 return null; | |
93 } | |
94 | |
95 /* | |
96 * @see dwtx.jface.text.contentassist.IContentAssistProcessor#getContextInformationAutoActivationCharacters() | |
97 */ | |
98 public char[] getContextInformationAutoActivationCharacters() { | |
99 return null; | |
100 } | |
101 | |
102 /* | |
103 * @see dwtx.jface.text.contentassist.IContentAssistProcessor#getErrorMessage() | |
104 */ | |
105 public String getErrorMessage() { | |
106 return null; | |
107 } | |
108 | |
109 /* | |
110 * @see dwtx.jface.text.contentassist.IContentAssistProcessor#getContextInformationValidator() | |
111 */ | |
112 public IContextInformationValidator getContextInformationValidator() { | |
113 return null; | |
114 } | |
115 | |
116 } | |
117 | |
118 private QuickAssistAssistantImpl fQuickAssistAssistantImpl; | |
119 private IQuickAssistProcessor fQuickAssistProcessor; | |
120 | |
121 public QuickAssistAssistant() { | |
122 fQuickAssistAssistantImpl= new QuickAssistAssistantImpl(); | |
123 fQuickAssistAssistantImpl.enableAutoActivation(false); | |
124 fQuickAssistAssistantImpl.enableAutoInsert(false); | |
125 } | |
126 | |
127 /* | |
128 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#showPossibleQuickAssists() | |
129 */ | |
130 public String showPossibleQuickAssists() { | |
131 return fQuickAssistAssistantImpl.showPossibleCompletions(); | |
132 } | |
133 | |
134 /* | |
135 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#getQuickAssistProcessor(java.lang.String) | |
136 */ | |
137 public IQuickAssistProcessor getQuickAssistProcessor() { | |
138 return fQuickAssistProcessor; | |
139 } | |
140 | |
141 /* | |
142 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#setQuickAssistProcessor(dwtx.jface.text.quickassist.IQuickAssistProcessor) | |
143 */ | |
144 public void setQuickAssistProcessor(IQuickAssistProcessor processor) { | |
145 fQuickAssistProcessor= processor; | |
146 fQuickAssistAssistantImpl.setDocumentPartitioning("__" + getClass().getName() + "_partitioning"); //$NON-NLS-1$ //$NON-NLS-2$ | |
147 fQuickAssistAssistantImpl.setContentAssistProcessor(new ContentAssistProcessor(processor), IDocument.DEFAULT_CONTENT_TYPE); | |
148 } | |
149 | |
150 /* | |
151 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#canFix(dwtx.jface.text.source.Annotation) | |
152 */ | |
153 public bool canFix(Annotation annotation) { | |
154 return fQuickAssistProcessor !is null && fQuickAssistProcessor.canFix(annotation); | |
155 } | |
156 | |
157 /* | |
158 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#canAssist(dwtx.jface.text.quickassist.IQuickAssistInvocationContext) | |
159 */ | |
160 public bool canAssist(IQuickAssistInvocationContext invocationContext) { | |
161 return fQuickAssistProcessor !is null && fQuickAssistProcessor.canAssist(invocationContext); | |
162 } | |
163 | |
164 /* | |
165 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#install(dwtx.jface.text.ITextViewer) | |
166 */ | |
167 public void install(ISourceViewer sourceViewer) { | |
168 fQuickAssistAssistantImpl.install(sourceViewer); | |
169 } | |
170 | |
171 /* | |
172 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#setInformationControlCreator(dwtx.jface.text.IInformationControlCreator) | |
173 */ | |
174 public void setInformationControlCreator(IInformationControlCreator creator) { | |
175 fQuickAssistAssistantImpl.setInformationControlCreator(creator); | |
176 } | |
177 | |
178 /* | |
179 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#uninstall() | |
180 */ | |
181 public void uninstall() { | |
182 fQuickAssistAssistantImpl.uninstall(); | |
183 } | |
184 | |
185 /* | |
186 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#setProposalSelectorBackground(dwt.graphics.Color) | |
187 */ | |
188 public void setProposalSelectorBackground(Color background) { | |
189 fQuickAssistAssistantImpl.setProposalSelectorBackground(background); | |
190 } | |
191 | |
192 /* | |
193 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#setProposalSelectorForeground(dwt.graphics.Color) | |
194 */ | |
195 public void setProposalSelectorForeground(Color foreground) { | |
196 fQuickAssistAssistantImpl.setProposalSelectorForeground(foreground); | |
197 } | |
198 | |
199 /** | |
200 * Callback to signal this quick assist assistant that the presentation of the | |
201 * possible completions has been stopped. | |
202 */ | |
203 protected void possibleCompletionsClosed() { | |
204 fQuickAssistAssistantImpl.possibleCompletionsClosed(); | |
205 } | |
206 | |
207 /* | |
208 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#addCompletionListener(dwtx.jface.text.contentassist.ICompletionListener) | |
209 */ | |
210 public void addCompletionListener(ICompletionListener listener) { | |
211 fQuickAssistAssistantImpl.addCompletionListener(listener); | |
212 } | |
213 | |
214 /* | |
215 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#removeCompletionListener(dwtx.jface.text.contentassist.ICompletionListener) | |
216 */ | |
217 public void removeCompletionListener(ICompletionListener listener) { | |
218 fQuickAssistAssistantImpl.removeCompletionListener(listener); | |
219 } | |
220 | |
221 /* | |
222 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#setStatusLineVisible(bool) | |
223 */ | |
224 public void setStatusLineVisible(bool show) { | |
225 fQuickAssistAssistantImpl.setStatusLineVisible(show); | |
226 | |
227 } | |
228 | |
229 /* | |
230 * @see dwtx.jface.text.quickassist.IQuickAssistAssistant#setStatusMessage(java.lang.String) | |
231 */ | |
232 public void setStatusMessage(String message) { | |
233 fQuickAssistAssistantImpl.setStatusMessage(message); | |
234 } | |
235 | |
236 /** | |
237 * {@inheritDoc} | |
238 * | |
239 * @since 3.4 | |
240 */ | |
241 public final IHandler getHandler(String commandId) { | |
242 return fQuickAssistAssistantImpl.getHandler(commandId); | |
243 } | |
244 | |
245 /** | |
246 * Hides any open pop-ups. | |
247 * | |
248 * @since 3.4 | |
249 */ | |
250 protected void hide() { | |
251 fQuickAssistAssistantImpl.hide(); | |
252 } | |
253 | |
254 /** | |
255 * {@inheritDoc} | |
256 * | |
257 * @since 3.4 | |
258 */ | |
259 public void enableColoredLabels(bool isEnabled) { | |
260 fQuickAssistAssistantImpl.enableColoredLabels(isEnabled); | |
261 } | |
262 | |
263 } |