@Override public final void actionPerformed(final AnActionEvent e) { final DataContext dataContext = e.getDataContext(); final IdeView view = LangDataKeys.IDE_VIEW.getData(dataContext); if (view == null) { return; } final Project project = CommonDataKeys.PROJECT.getData(dataContext); final PsiDirectory dir = view.getOrChooseDirectory(); if (dir == null) return; final PsiElement[] createdElements = invokeDialog(project, dir); for (PsiElement createdElement : createdElements) { view.selectElement(createdElement); } }
public final void actionPerformed(final AnActionEvent e) { final DataContext dataContext = e.getDataContext(); final IdeView view = LangDataKeys.IDE_VIEW.getData(dataContext); if (view == null) { return; } final Project project = PlatformDataKeys.PROJECT.getData(dataContext); final PsiDirectory dir = view.getOrChooseDirectory(); if (dir == null || project == null) return; final CreateFileFromTemplateDialog.Builder builder = CreateFileFromTemplateDialog.createDialog(project); buildDialog(project, dir, builder); final Ref<String> selectedTemplateName = Ref.create(null); final T createdElement = builder.show( getErrorTitle(), getDefaultTemplateName(dir), new CreateFileFromTemplateDialog.FileCreator<T>() { public T createFile(@NotNull String name, @NotNull String templateName) { selectedTemplateName.set(templateName); return CreateFromTemplateAction.this.createFile(name, templateName, dir); } @NotNull public String getActionName(@NotNull String name, @NotNull String templateName) { return CreateFromTemplateAction.this.getActionName(dir, name, templateName); } }); if (createdElement != null) { view.selectElement(createdElement); postProcess(createdElement, selectedTemplateName.get(), builder.getCustomProperties()); } }