extend create from template API: pass DataContext to getAttributesDefaults(), add callback after element was created

This commit is contained in:
Dmitry Jemerov
2012-02-10 18:43:24 +01:00
parent 31d0a6b540
commit 0ab60fac59
2 changed files with 12 additions and 2 deletions
@@ -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) {
}
}
@@ -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());
}