Package org.pdtextensions.core.ui.contentassist

Source Code of org.pdtextensions.core.ui.contentassist.PDTScriptCompletionProposalCollector

/*
* This file is part of the PDT Extensions eclipse plugin.
*
* (c) Robert Gruendler <r.gruendler@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
package org.pdtextensions.core.ui.contentassist;

import org.eclipse.dltk.core.CompletionProposal;
import org.eclipse.dltk.core.IMethod;
import org.eclipse.dltk.core.ISourceModule;
import org.eclipse.dltk.ui.text.completion.IScriptCompletionProposal;
import org.eclipse.dltk.ui.text.completion.MethodProposalInfo;
import org.eclipse.jface.text.IDocument;
import org.eclipse.php.core.codeassist.ICompletionContextResolver;
import org.eclipse.php.core.codeassist.ICompletionStrategyFactory;
import org.eclipse.php.internal.core.codeassist.IPHPCompletionRequestorExtension;
import org.eclipse.php.internal.ui.editor.contentassist.PHPCompletionProposalCollector;
import org.eclipse.swt.graphics.Image;
import org.pdtextensions.core.codeassist.CompletionContextResolver;
import org.pdtextensions.core.codeassist.CompletionStrategyFactory;
import org.pdtextensions.core.codeassist.PDTCompletionInfo;


/**
*
*/
@SuppressWarnings("restriction")
public class PDTScriptCompletionProposalCollector extends
    PHPCompletionProposalCollector implements IPHPCompletionRequestorExtension {

  /**
   * @param document
   * @param cu
   * @param explicit
   */
  public PDTScriptCompletionProposalCollector(IDocument document,
      ISourceModule cu, boolean explicit) {
    super(document, cu, explicit);

  }


  @Override
  protected IScriptCompletionProposal createScriptCompletionProposal(
      CompletionProposal proposal) {

    Object info = proposal.getExtraInfo();

    if ( !(info instanceof PDTCompletionInfo) )
      return null;

    PDTCompletionInfo additional = (PDTCompletionInfo) info;
    String completion = new String(proposal.getCompletion());
    int replaceStart = proposal.getReplaceStart();
    int length = getLength(proposal);
    Image image = getImage(getLabelProvider().createTypeImageDescriptor(proposal));
    String displayString = (getLabelProvider()).createLabel(proposal);


    SuperclassMethodCompletionProposal scriptProposal = new SuperclassMethodCompletionProposal(completion,
        replaceStart, length, image, displayString, 0, (IMethod) proposal.getModelElement(), additional.getSource());


    scriptProposal.setRelevance(Integer.MAX_VALUE);
    scriptProposal.setProposalInfo(new MethodProposalInfo(getScriptProject(), proposal));

    return scriptProposal;
  }


  @Override
  public ICompletionContextResolver[] getContextResolvers() {
    return new ICompletionContextResolver[] {new CompletionContextResolver()};
  }

  @Override
  public ICompletionStrategyFactory[] getStrategyFactories() {
    return new ICompletionStrategyFactory[] {
      new CompletionStrategyFactory()
    };
  }
}
TOP

Related Classes of org.pdtextensions.core.ui.contentassist.PDTScriptCompletionProposalCollector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.