2014-07-01 19 views
1

我已經寫了一個插件,將一個組添加到「新文件」菜單中,並且我希望我的操作啓動特定的文件模板。從我的理解是所謂的「NewFromTemplate」的動作,但我encoutered兩個問題:如何在IntelliJ中調用現有的IDE動作?

  1. 如何調用一個已經存在的動作,在這種情況下NewFromTemplate

  2. 如何將參數傳遞給它,因爲我希望它從特定模板創建文件。

我想出它的最好的是:

ActionManager am = ActionManager.getInstance(); 
AnAction ftAction = am.getAction("NewFromTemplate"); 
ActionManager.getInstance().tryToExecute(
     ftAction, 
     ActionCommand.getInputEvent("NewFromTemplate"), 
     null, 
     ActionPlaces.UNKNOWN, 
     true); 

但它似乎沒有任何打開 - 代碼執行,但沒有打開新窗口。

回答

1

這是我如何(使用硬編碼模板名稱,以顯示所需的方法只是一個例子)

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); 
     } 


    } 

} 

}

做到了
相關問題