From 780633edb48a8d1390a79f727aebfa29630c5dd5 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Fri, 3 Sep 2010 14:03:40 +0400 Subject: [PATCH] Taglibs support: generate functions --- .../util/xml/actions/CreateClassMappingAction.java | 12 ++++++------ .../util/xml/impl/DomTemplateRunnerImpl.java | 1 + 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/java/openapi/src/com/intellij/util/xml/actions/CreateClassMappingAction.java b/java/openapi/src/com/intellij/util/xml/actions/CreateClassMappingAction.java index 6f4048b67454..8391f2640fd8 100644 --- a/java/openapi/src/com/intellij/util/xml/actions/CreateClassMappingAction.java +++ b/java/openapi/src/com/intellij/util/xml/actions/CreateClassMappingAction.java @@ -39,10 +39,10 @@ import java.util.Map; */ public abstract class CreateClassMappingAction extends CreateDomElementAction { - private final String myBaseClass; + @Nullable private final String myBaseClass; private final String myTemplate; - public CreateClassMappingAction(Class contextClass, String baseClass, String template) { + public CreateClassMappingAction(Class contextClass, @Nullable String baseClass, String template) { super(contextClass); myBaseClass = baseClass; myTemplate = template; @@ -51,8 +51,8 @@ public abstract class CreateClassMappingAction extends Cre @Override protected DomElement createElement(final T context, final Editor editor, PsiFile file, final Project project) { PsiClass selectedClass; - PsiClass baseClass = getBaseClass(context, project); if (!ApplicationManager.getApplication().isUnitTestMode()) { + PsiClass baseClass = getBaseClass(context, project, myBaseClass); TreeClassChooser chooser = TreeClassChooserFactory.getInstance(project) .createInheritanceClassChooser(getChooserTitle(), GlobalSearchScope.allScope(project), baseClass, null, new TreeClassChooser.ClassFilter() { @Override @@ -64,7 +64,7 @@ public abstract class CreateClassMappingAction extends Cre selectedClass = chooser.getSelectedClass(); } else { - selectedClass = baseClass; + selectedClass = getBaseClass(context, project, myBaseClass == null ? "java.lang.Object" : myBaseClass); } if (selectedClass == null) return null; @@ -86,8 +86,8 @@ public abstract class CreateClassMappingAction extends Cre protected abstract DomElement createElement(T context); @Nullable - protected PsiClass getBaseClass(T context, Project project) { - return JavaPsiFacade.getInstance(project).findClass(myBaseClass, GlobalSearchScope.allScope(project)); + protected PsiClass getBaseClass(T context, Project project, String baseClass) { + return baseClass == null ? null : JavaPsiFacade.getInstance(project).findClass(baseClass, GlobalSearchScope.allScope(project)); } @Override diff --git a/xml/dom-impl/src/com/intellij/util/xml/impl/DomTemplateRunnerImpl.java b/xml/dom-impl/src/com/intellij/util/xml/impl/DomTemplateRunnerImpl.java index 97a66b9bbb4b..f736d3c063d6 100644 --- a/xml/dom-impl/src/com/intellij/util/xml/impl/DomTemplateRunnerImpl.java +++ b/xml/dom-impl/src/com/intellij/util/xml/impl/DomTemplateRunnerImpl.java @@ -48,6 +48,7 @@ public class DomTemplateRunnerImpl extends DomTemplateRunner { public void runTemplate(T t, String mappingId, Editor editor, @NotNull Map predefinedVars) { final Template template = getTemplate(mappingId); + assert template != null : "Template not found: " + mappingId; runTemplate(t, editor, template, predefinedVars); }