1 package com
.intellij
.ide
.actions
;
3 import com
.intellij
.ide
.fileTemplates
.impl
.AllFileTemplatesConfigurable
;
4 import com
.intellij
.ide
.fileTemplates
.ui
.ConfigureTemplatesDialog
;
5 import com
.intellij
.openapi
.actionSystem
.AnAction
;
6 import com
.intellij
.openapi
.actionSystem
.AnActionEvent
;
7 import com
.intellij
.openapi
.actionSystem
.LangDataKeys
;
8 import com
.intellij
.openapi
.actionSystem
.PlatformDataKeys
;
9 import com
.intellij
.openapi
.extensions
.Extensions
;
10 import com
.intellij
.openapi
.project
.Project
;
11 import com
.intellij
.openapi
.vfs
.VirtualFile
;
12 import com
.intellij
.psi
.PsiFile
;
14 public class SaveFileAsTemplateAction
extends AnAction
{
15 public void actionPerformed(AnActionEvent e
){
16 Project project
= e
.getData(PlatformDataKeys
.PROJECT
);
17 String fileText
= e
.getData(PlatformDataKeys
.FILE_TEXT
);
18 VirtualFile file
= e
.getData(PlatformDataKeys
.VIRTUAL_FILE
);
19 String extension
= file
.getExtension();
20 String nameWithoutExtension
= file
.getNameWithoutExtension();
21 AllFileTemplatesConfigurable fileTemplateOptions
= new AllFileTemplatesConfigurable();
22 ConfigureTemplatesDialog dialog
= new ConfigureTemplatesDialog(project
, fileTemplateOptions
);
23 PsiFile psiFile
= e
.getData(LangDataKeys
.PSI_FILE
);
24 for(SaveFileAsTemplateHandler handler
: Extensions
.getExtensions(SaveFileAsTemplateHandler
.EP_NAME
)) {
25 String textFromHandler
= handler
.getTemplateText(psiFile
, fileText
, nameWithoutExtension
);
26 if (textFromHandler
!= null) {
27 fileText
= textFromHandler
;
31 fileTemplateOptions
.createNewTemplate(nameWithoutExtension
, extension
, fileText
);
35 public void update(AnActionEvent e
) {
36 VirtualFile file
= e
.getData(PlatformDataKeys
.VIRTUAL_FILE
);
37 String fileText
= e
.getData(PlatformDataKeys
.FILE_TEXT
);
38 e
.getPresentation().setEnabled((fileText
!= null) && (file
!= null));