package org.maziarz.yiiclipse.completion; import java.util.Map; import org.eclipse.dltk.core.CompletionProposal; import org.eclipse.dltk.core.ISourceModule; import org.eclipse.dltk.ui.text.completion.ScriptOverrideCompletionProposal; import org.eclipse.jface.text.BadLocationException; import org.eclipse.jface.text.IDocument; public class YiiclipseOverrideCompletionProposal extends ScriptOverrideCompletionProposal { private CompletionProposal proposal; public YiiclipseOverrideCompletionProposal(CompletionProposal proposal, ISourceModule sourceModule, String name, String[] paramTypes, int start, int length, String displayName, String completionProposal) { super(sourceModule.getScriptProject(), sourceModule, name, paramTypes, start, length, displayName, completionProposal); this.proposal = proposal; } @Override protected void postReplace(IDocument document) throws BadLocationException { if (proposal.getExtraInfo() instanceof Map) { Object o = ((Map)proposal.getExtraInfo()).get(YiiclipseCompletionEngine.POSTCOMPLETION); if (o instanceof Runnable) { ((Runnable) o).run(); } } } }