diff --git a/platform/lang-impl/src/com/intellij/ide/fileTemplates/actions/CreateFromTemplateActionBase.java b/platform/lang-impl/src/com/intellij/ide/fileTemplates/actions/CreateFromTemplateActionBase.java index 4e71423b46ca..4d700b0ae1d6 100644 --- a/platform/lang-impl/src/com/intellij/ide/fileTemplates/actions/CreateFromTemplateActionBase.java +++ b/platform/lang-impl/src/com/intellij/ide/fileTemplates/actions/CreateFromTemplateActionBase.java @@ -55,8 +55,11 @@ public abstract class CreateFromTemplateActionBase extends AnAction { } else { FileTemplateManager.getInstance().addRecentName(selectedTemplate.getName()); - PsiElement createdElement = new CreateFromTemplateDialog(project, dir, selectedTemplate, getAttributesDefaults()).create(); + final AttributesDefaults defaults = getAttributesDefaults(dataContext); + final CreateFromTemplateDialog dialog = new CreateFromTemplateDialog(project, dir, selectedTemplate, defaults); + PsiElement createdElement = dialog.create(); if (createdElement != null) { + elementCreated(dialog, createdElement); view.selectElement(createdElement); } } @@ -74,7 +77,10 @@ public abstract class CreateFromTemplateActionBase extends AnAction { protected abstract FileTemplate getTemplate(final Project project, final PsiDirectory dir); @Nullable - public AttributesDefaults getAttributesDefaults() { + public AttributesDefaults getAttributesDefaults(DataContext dataContext) { return null; } + + protected void elementCreated(CreateFromTemplateDialog dialog, PsiElement createdElement) { + } } diff --git a/platform/lang-impl/src/com/intellij/ide/fileTemplates/ui/CreateFromTemplateDialog.java b/platform/lang-impl/src/com/intellij/ide/fileTemplates/ui/CreateFromTemplateDialog.java index 1bc050415a9a..aaa153d3161e 100644 --- a/platform/lang-impl/src/com/intellij/ide/fileTemplates/ui/CreateFromTemplateDialog.java +++ b/platform/lang-impl/src/com/intellij/ide/fileTemplates/ui/CreateFromTemplateDialog.java @@ -125,6 +125,10 @@ public class CreateFromTemplateDialog extends DialogWrapper { } } + public Properties getEnteredProperties() { + return myAttrPanel.getProperties(new Properties()); + } + private void showErrorDialog(final Exception e) { Messages.showMessageDialog(myProject, filterMessage(e.getMessage()), getErrorMessage(), Messages.getErrorIcon()); }