/******************************************************************************* * Copyright (c) 2005, 2012 eBay Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * *******************************************************************************/ /** * */ package org.eclipse.vjet.eclipse.internal.ui.text.completion; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.dltk.mod.core.DLTKCore; import org.eclipse.dltk.mod.ui.text.completion.ContentAssistInvocationContext; import org.eclipse.dltk.mod.ui.text.completion.IScriptCompletionProposal; import org.eclipse.dltk.mod.ui.text.completion.ScriptCompletionProposalCollector; import org.eclipse.dltk.mod.ui.text.completion.ScriptCompletionProposalComputer; import org.eclipse.dltk.mod.ui.text.completion.ScriptContentAssistInvocationContext; import org.eclipse.jface.text.contentassist.IContextInformation; /** * * */ public abstract class AbstractVjoCompletionProposalComputer extends ScriptCompletionProposalComputer { @Override public List computeContextInformation( ContentAssistInvocationContext context, IProgressMonitor monitor) { System.out.println("Offset: " + context.getInvocationOffset()); if (DLTKCore.DEBUG) { System.out .println("TclTypeCompletionProposalComputer.computeContextInformation()"); } // if (context instanceof ScriptContentAssistInvocationContext) { // ScriptContentAssistInvocationContext scriptContext= // (ScriptContentAssistInvocationContext) context; // // int contextInformationPosition= // guessContextInformationPosition(scriptContext); // List result= addContextInformations(scriptContext, // contextInformationPosition, monitor); // return result; // } // return Collections.EMPTY_LIST; List types = computeCompletionProposals(context, monitor); if (DLTKCore.DEBUG) { System.out.println("!!! Proposals: " + types.size()); } Iterator iter = types.iterator(); List list = new ArrayList(); while (iter.hasNext()) { Object next = iter.next(); if (!(next instanceof IScriptCompletionProposal)) continue; IScriptCompletionProposal proposal = (IScriptCompletionProposal) next; IContextInformation contextInformation = proposal .getContextInformation(); if (contextInformation == null) { continue; } if (DLTKCore.DEBUG) { System.out.println("Proposal: " + proposal + ", info: " + contextInformation.getInformationDisplayString()); } list.add(contextInformation); } return list; } @Override protected final ScriptCompletionProposalCollector createCollector( ScriptContentAssistInvocationContext context) { return new AbstractVjoCompletionProposalCollector(context .getSourceModule()) { // implemented // org.eclipse.vjet.eclipse.core.search.matching.ICategoryRequestor.getCategory() public String getCategory() { return getRequestorCategory(); } }; } protected abstract String getRequestorCategory(); }