Я написал плагин, который добавляет группу в меню "новый файл", и я хочу, чтобы мое действие запустило конкретный шаблон файла. Из того, что я понимаю, действие называется "NewFromTemplate", но я столкнулся с двумя проблемами:
Как вызвать уже существующее действие, в данном случае NewFromTemplate
?
Как передать ему аргументы, так как я хочу, чтобы он создавал файл из определенного шаблона.
Лучшее, что я придумал, это:
ActionManager am = ActionManager.getInstance();
AnAction ftAction = am.getAction("NewFromTemplate");
ActionManager.getInstance().tryToExecute(
ftAction,
ActionCommand.getInputEvent("NewFromTemplate"),
null,
ActionPlaces.UNKNOWN,
true);
Но, похоже, ничего не открывается - код выполняется, но не открывается новое окно.
Вот как я это сделал (просто пример использования жесткого кодированного имени шаблона для отображения необходимых методов)
public class FooAction extends AnAction {
public void actionPerformed(AnActionEvent e) {
FileTemplateManager fileTemplateManager = FileTemplateManager.getInstance();
FileTemplate[] templates = fileTemplateManager.getAllTemplates();
for(FileTemplate ft : templates){
if(ft.getName().equals("Singleton")){
AnAction action = new CreateFromTemplateAction(ft);
action.actionPerformed(e);
}
}
}
}