diff --git a/platform/platform-api/src/com/intellij/openapi/wm/ToolWindowEP.java b/platform/platform-api/src/com/intellij/openapi/wm/ToolWindowEP.java index 1f593483f295..ba5b2717b151 100644 --- a/platform/platform-api/src/com/intellij/openapi/wm/ToolWindowEP.java +++ b/platform/platform-api/src/com/intellij/openapi/wm/ToolWindowEP.java @@ -54,12 +54,13 @@ public class ToolWindowEP extends AbstractExtensionPointBean { @Attribute("canCloseContents") public boolean canCloseContents; + private Class myFactoryClass; private ToolWindowFactory myFactory; public ToolWindowFactory getToolWindowFactory() { if (myFactory == null) { try { - myFactory = instantiate(factoryClass, ApplicationManager.getApplication().getPicoContainer()); + myFactory = instantiate(getFactoryClass(), ApplicationManager.getApplication().getPicoContainer()); } catch(Exception e) { LOG.error(e); @@ -69,6 +70,19 @@ public class ToolWindowEP extends AbstractExtensionPointBean { return myFactory; } + public Class getFactoryClass() { + if (myFactoryClass == null) { + try { + myFactoryClass = findClass(factoryClass); + } + catch(Exception e) { + LOG.error(e); + return null; + } + } + return myFactoryClass; + } + @Nullable public Condition getCondition() { if (conditionClass != null) {