Java 如何在IntelliJ中调用现有的IDE操作?

Java 如何在IntelliJ中调用现有的IDE操作?,java,plugins,intellij-idea,Java,Plugins,Intellij Idea,我已经编写了一个插件,在“新建文件”菜单中添加了一个组,我希望我的操作能够启动一个特定的文件模板。据我所知,该操作称为“NewFromTemplate”,但我遇到了两个问题: 如何调用已经存在的操作,在本例中是NewFromTemplate 如何向它传递参数,因为我希望它从特定模板创建文件 我想到的最好的办法是: ActionManager am = ActionManager.getInstance(); AnAction ftAction = am.getAction("NewFromTem

我已经编写了一个插件,在“新建文件”菜单中添加了一个组,我希望我的操作能够启动一个特定的文件模板。据我所知,该操作称为“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);
            }
    
    
        }
    
    }