1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.fosstrak.llrp.commander.editors;
23
24 import java.util.Iterator;
25 import java.util.List;
26
27 import org.eclipse.jface.text.IDocument;
28 import org.eclipse.jface.text.IRegion;
29 import org.eclipse.jface.text.ITextViewer;
30 import org.eclipse.jface.text.contentassist.CompletionProposal;
31 import org.eclipse.jface.text.contentassist.ICompletionProposal;
32 import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
33 import org.eclipse.jface.text.contentassist.IContextInformation;
34 import org.eclipse.jface.text.contentassist.IContextInformationValidator;
35
36
37
38
39
40
41 public class LLRPContentAssistant implements IContentAssistProcessor {
42
43 public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer,
44 int documentOffset) {
45 ICompletionProposal[] proposals = null;
46 try {
47 IDocument document = viewer.getDocument();
48 IRegion range = document.getLineInformationOfOffset(documentOffset);
49 int start = range.getOffset();
50 String prefix = document.get(start, documentOffset - start);
51
52 ConfigurationModel model = new ConfigurationModel(document.get());
53 List completions = model.getCompletions(prefix);
54
55 proposals = new CompletionProposal[completions.size()];
56 int i = 0;
57 for (Iterator iter = completions.iterator(); iter.hasNext();) {
58 String completion = (String) iter.next();
59 proposals[i++] = new CompletionProposal(completion, start,
60 documentOffset - start, completion.length());
61 }
62 } catch (Exception e) {
63 e.printStackTrace();
64 }
65
66 return proposals;
67 }
68
69 public IContextInformation[] computeContextInformation(ITextViewer viewer,
70 int documentOffset) {
71 return null;
72 }
73
74 public char[] getCompletionProposalAutoActivationCharacters() {
75 return new char[] { ':' };
76 }
77
78 public char[] getContextInformationAutoActivationCharacters() {
79 return null;
80 }
81
82 public String getErrorMessage() {
83 return "No completions available.";
84 }
85
86 public IContextInformationValidator getContextInformationValidator() {
87 return null;
88 }
89 }