/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package spechelper; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.jface.text.contentassist.IContextInformation; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Point; public class MyCompletion implements ICompletionProposal { private String m_displ; private String m_replace; private int m_offset; private int m_replacelen; private int m_cursorpos; private Image m_img; private IContextInformation m_context; private String m_addinfo; private String fBuffer; public MyCompletion(String buffer, String replacementString, int replacementOffset, int replacementLength, int cursorPosition, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo) { m_replace = replacementString; m_offset = replacementOffset; m_replacelen = replacementLength; m_cursorpos = cursorPosition; m_img = image; fBuffer = buffer; m_displ = displayString; m_context = contextInformation; m_addinfo = additionalProposalInfo; } public void apply(IDocument document) { try { MethodSelector ms = new MethodSelector(); String replace = ms.obtainReplacement(fBuffer); if (replace == null) { m_cursorpos = 0; return; } m_cursorpos = replace.length(); document.replace(m_offset, m_replacelen, replace); } catch (BadLocationException x) { // ignore } } public Point getSelection(IDocument document) { return new Point(m_offset + m_cursorpos, 0); } public IContextInformation getContextInformation() { return m_context; } public Image getImage() { return m_img; } public String getDisplayString() { if (m_displ != null) return m_displ; return m_replace; } public String getAdditionalProposalInfo() { return m_addinfo; } }