| /* |
| * 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; |
| } |
| } |