package org.bndtools.builder.classpath;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.ui.text.java.ContentAssistInvocationContext;
import org.eclipse.jdt.ui.text.java.IJavaCompletionProposalComputer;
import org.eclipse.jdt.ui.text.java.JavaContentAssistInvocationContext;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.contentassist.CompletionProposal;
import org.eclipse.jface.text.contentassist.ContextInformation;
import org.eclipse.jface.text.contentassist.ICompletionProposal;
import org.eclipse.jface.text.contentassist.IContextInformation;
public class BundleClassCompletionProposalComputer implements IJavaCompletionProposalComputer {
public List<ICompletionProposal> computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
List<ICompletionProposal> result = new LinkedList<ICompletionProposal>();
if (!(context instanceof JavaContentAssistInvocationContext)) {
return Collections.emptyList();
}
try {
int offset = context.getInvocationOffset();
CharSequence prefix = context.computeIdentifierPrefix();
result.add(new CompletionProposal("foobar", offset - prefix.length(), prefix.length(), offset - prefix.length() + 6));
result.add(new CompletionProposal("fizzbuzz", offset - prefix.length(), prefix.length(), offset - prefix.length() + 8));
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
public List<IContextInformation> computeContextInformation(ContentAssistInvocationContext context, IProgressMonitor monitor) {
List<IContextInformation> result = new LinkedList<IContextInformation>();
result.add(new ContextInformation("contextDisplayString", "informationDisplayString"));
return result;
}
public String getErrorMessage() {
return null;
}
public void sessionStarted() {}
public void sessionEnded() {}
}