summaryrefslogtreecommitdiffstats
path: root/rba.tool.editor.ui/src/rba/tool/editor/ui/editor/templates/RBAModelTemplateStore.xtend
blob: 7330f91479b8b7d1f99cba5d65c23138577ebc1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package rba.tool.editor.ui.editor.templates

import com.google.inject.Inject
import com.google.inject.Singleton
import java.util.ArrayList
import java.util.List
import org.eclipse.jface.preference.IPreferenceStore
import org.eclipse.jface.text.templates.ContextTypeRegistry
import org.eclipse.jface.text.templates.Template
import org.eclipse.ui.plugin.AbstractUIPlugin
import org.eclipse.xtext.ui.editor.templates.XtextTemplateStore

@Singleton
class RBAModelTemplateStore extends XtextTemplateStore {

	private TemplateRegistry templateRegistry;

	@Inject
	new(TemplateRegistry templateRegistry, ContextTypeRegistry registry, IPreferenceStore store, String key, AbstractUIPlugin plugin) {
		super(registry, store, key, plugin);
		this.templateRegistry = templateRegistry;
	}

	override getTemplates(String contextTypeId) {
		val List<Template> templates = new ArrayList<Template>(super.getTemplates(contextTypeId));
		val template = templateRegistry.getTemplate(contextTypeId);
		if (template !== null) templates.add(template);
		return templates.toArray(newArrayOfSize(templates.size()));
	}
}