/* * Copyright 2013 Guidewire Software, Inc. */ package gw.plugin.ij.filetypes; import com.intellij.openapi.fileEditor.OpenFileDescriptor; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.FileViewProvider; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import gw.plugin.ij.icons.GosuIcons; import gw.plugin.ij.lang.psi.IGosuFile; import gw.plugin.ij.lang.psi.impl.GosuTemplateFileImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; public class GosuTemplateFileProvider implements IGosuFileTypeProvider { public static final String EXT_TEMPLATE = "gst"; @NotNull @Override public IGosuFile createGosuFile(@NotNull FileViewProvider viewProvider) { return new GosuTemplateFileImpl(viewProvider); } @Nullable @Override public Icon getIcon(@NotNull VirtualFile file) { return GosuIcons.FILE_TEMPLATE; } public OpenFileDescriptor getOpenFileDescriptor(Project project, VirtualFile virtualFile, int offset) { return new OpenFileDescriptor(project, virtualFile, offset); } public static boolean inTemplateFile(@NotNull PsiElement element) { final PsiFile psiFile = element.getContainingFile(); if (psiFile != null) { final VirtualFile file = psiFile.getVirtualFile(); if (file != null) { return EXT_TEMPLATE.equals(file.getExtension()); } } return false; } }