/** * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ /* * @author Fabio Zadrozny */ package org.python.pydev.django_templates.completions.templates; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.jface.text.templates.Template; import org.eclipse.jface.text.templates.TemplateCompletionProcessor; import org.eclipse.jface.text.templates.TemplateContext; import org.eclipse.jface.text.templates.TemplateContextType; import org.eclipse.swt.graphics.Image; import org.python.pydev.editor.codecompletion.templates.PyTemplateCompletionProcessor; /** * @author Fabio Zadrozny */ public class DjTemplateCompletionProcessor extends TemplateCompletionProcessor { private final String contextType; private Image image; private boolean displayOnlyName; public DjTemplateCompletionProcessor(String contextType, Image image, boolean displayOnlyName) { this.contextType = contextType; this.image = image; this.displayOnlyName = displayOnlyName; } /* * (non-Javadoc) * * @see org.eclipse.jface.text.templates.TemplateCompletionProcessor#getTemplates(java.lang.String) */ protected Template[] getTemplates(String contextTypeId) { return TemplateHelper.getTemplateStore().getTemplates(); } /* * (non-Javadoc) * * @see org.eclipse.jface.text.templates.TemplateCompletionProcessor#getContextType(org.eclipse.jface.text.ITextViewer, * org.eclipse.jface.text.IRegion) */ protected TemplateContextType getContextType(ITextViewer viewer, IRegion region) { return TemplateHelper.getContextTypeRegistry().getContextType(this.contextType); } /* * (non-Javadoc) * * @see org.eclipse.jface.text.templates.TemplateCompletionProcessor#getImage(org.eclipse.jface.text.templates.Template) */ protected Image getImage(Template template) { return image; } @Override protected ICompletionProposal createProposal(Template template, TemplateContext context, IRegion region, int relevance) { return new DjTemplateProposal(template, context, region, getImage(template), relevance, displayOnlyName); } /** * Overridden so that we can do the indentation in this case. */ @Override protected TemplateContext createContext(final ITextViewer viewer, final IRegion region) { TemplateContextType contextType = getContextType(viewer, region); return PyTemplateCompletionProcessor.createContext(contextType, viewer, region); } }