package com.sap.mi.tcs.editor; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.templates.Template; import org.eclipse.jface.text.templates.TemplateCompletionProcessor; import org.eclipse.jface.text.templates.TemplateContextType; import org.eclipse.swt.graphics.Image; public class TcsTemplatesCompletionProcessor extends TemplateCompletionProcessor { public static final String EXPRESSIONS_CONTEXT_TYPE = "ExpressionsContextType"; /** * */ public TcsTemplatesCompletionProcessor() { // TODO Auto-generated constructor stub } /* (non-Javadoc) * @see org.eclipse.jface.text.templates.TemplateCompletionProcessor#getContextType(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion) */ @Override protected TemplateContextType getContextType(ITextViewer viewer, IRegion region) { return new TemplateContextType(EXPRESSIONS_CONTEXT_TYPE); } /* (non-Javadoc) * @see org.eclipse.jface.text.templates.TemplateCompletionProcessor#getImage(org.eclipse.jface.text.templates.Template) */ @Override protected Image getImage(Template template) { return null; } /* (non-Javadoc) * @see org.eclipse.jface.text.templates.TemplateCompletionProcessor#getTemplates(java.lang.String) */ @Override protected Template[] getTemplates(String contextTypeId) { List<Template> templates = new ArrayList<Template>(); // Template with units: // templates.add(new Template("DoublePDF", // "Creates a double random variable (BoxedPDF)", STO_EX_CONTEXT_TYPE, // "DoublePDF(unit=\"${unit}\")[(${x};${p})(${y};${q})(${z};${r})]", false)); // templates.add(new Template("IntPMF", // "Creates an integer random variable", STO_EX_CONTEXT_TYPE, // "IntPMF(unit=\"${unit}\")[(${x};${p})(${y};${q})(${z};${r})]", false)); // templates.add(new Template("DoublePMF", // "Creates a double random variable", STO_EX_CONTEXT_TYPE, // "DoublePMF(unit=\"${unit}\")[(${x};${p})(${y};${q})(${z};${r})]", false)); // templates.add(new Template("BoolPMF", // "Creates a boolean random variable", STO_EX_CONTEXT_TYPE, // "BoolPMF(unit=\"bool\")[(true;${p})(false;${q})]", false)); // templates.add(new Template("EnumPMF", // "Creates a enum random variable", STO_EX_CONTEXT_TYPE, // "EnumPMF(unit=\"${unit}\")[(${x};${p})]", false)); templates.add(new Template("DoublePDF", "Creates a double random variable (BoxedPDF)", EXPRESSIONS_CONTEXT_TYPE, "DoublePDF[(${x};${p})(${y};${q})(${z};${r})]", false)); templates.add(new Template("IntPMF", "Creates an integer random variable", EXPRESSIONS_CONTEXT_TYPE, "IntPMF[(${x};${p})(${y};${q})(${z};${r})]", false)); templates.add(new Template("DoublePMF", "Creates a double random variable", EXPRESSIONS_CONTEXT_TYPE, "DoublePMF[(${x};${p})(${y};${q})(${z};${r})]", false)); templates.add(new Template("BoolPMF", "Creates a boolean random variable", EXPRESSIONS_CONTEXT_TYPE, "BoolPMF[(true;${p})(false;${q})]", false)); templates.add(new Template("EnumPMF", "Creates a enum random variable", EXPRESSIONS_CONTEXT_TYPE, "EnumPMF[(${x};${p})]", false)); return templates.toArray(new Template[templates.size()]); } }