SupportForFrameworksStep leaking fixed

This commit is contained in:
Dmitry Avdeev
2013-02-14 15:11:47 +04:00
parent 7cb8c67491
commit 4c65167f18
3 changed files with 19 additions and 13 deletions
@@ -32,6 +32,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.Map;
/**
* @author Eugene Zhuravlev
@@ -134,11 +135,12 @@ public class ProjectWizardStepFactoryImpl extends ProjectWizardStepFactory {
@Override
public ModuleWizardStep createSupportForFrameworksStep(WizardContext context, ModuleBuilder builder, ModulesProvider modulesProvider) {
if (!FrameworkSupportUtil.getProviders(builder).isEmpty()) {
final LibrariesContainer container = LibrariesContainerFactory.createContainer(context, modulesProvider);
return new SupportForFrameworksStep(context, builder, container);
Map<String,Boolean> availableFrameworks = builder.getAvailableFrameworks();
if (FrameworkSupportUtil.getProviders(builder).isEmpty() || availableFrameworks != null && availableFrameworks.isEmpty()) {
return null;
}
return null;
final LibrariesContainer container = LibrariesContainerFactory.createContainer(context, modulesProvider);
return new SupportForFrameworksStep(context, builder, container);
}
@Override
@@ -20,7 +20,6 @@ import com.intellij.execution.configurations.ModuleBasedConfiguration;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.ide.fileTemplates.FileTemplateManager;
import com.intellij.ide.fileTemplates.FileTemplateUtil;
import com.intellij.ide.util.newProjectWizard.SupportForFrameworksStep;
import com.intellij.ide.util.newProjectWizard.modes.ImportImlMode;
import com.intellij.ide.util.projectWizard.*;
import com.intellij.openapi.application.ApplicationManager;
@@ -44,7 +43,6 @@ import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.newvfs.RefreshQueue;
import com.intellij.platform.templates.github.ZipUtil;
import com.intellij.util.ArrayUtil;
import com.intellij.util.NullableFunction;
import com.intellij.util.containers.ContainerUtil;
import org.jdom.JDOMException;
@@ -54,6 +52,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import java.util.Properties;
import java.util.zip.ZipInputStream;
@@ -84,13 +83,9 @@ public class TemplateModuleBuilder extends ModuleBuilder {
@Override
public ModuleWizardStep[] createWizardSteps(WizardContext wizardContext, ModulesProvider modulesProvider) {
ModuleWizardStep[] steps = myType.createModuleBuilder().createWizardSteps(wizardContext, modulesProvider);
for (ModuleWizardStep step : steps) {
if (step instanceof SupportForFrameworksStep) {
return ArrayUtil.remove(steps, step);
}
}
return steps;
ModuleBuilder builder = myType.createModuleBuilder();
builder.setAvailableFrameworks(Collections.<String, Boolean>emptyMap());
return builder.createWizardSteps(wizardContext, modulesProvider);
}
@Override
@@ -57,6 +57,7 @@ public abstract class ModuleBuilder extends ProjectBuilder{
private String myContentEntryPath;
private final Set<ModuleConfigurationUpdater> myUpdaters = new HashSet<ModuleConfigurationUpdater>();
private final EventDispatcher<ModuleBuilderListener> myDispatcher = EventDispatcher.create(ModuleBuilderListener.class);
private Map<String, Boolean> myAvailableFrameworks;
public static List<ModuleBuilder> getAllBuilders() {
final ArrayList<ModuleBuilder> result = new ArrayList<ModuleBuilder>();
@@ -354,6 +355,14 @@ public abstract class ModuleBuilder extends ProjectBuilder{
return myJdk;
}
public Map<String, Boolean> getAvailableFrameworks() {
return myAvailableFrameworks;
}
public void setAvailableFrameworks(Map<String, Boolean> availableFrameworks) {
myAvailableFrameworks = availableFrameworks;
}
public static abstract class ModuleConfigurationUpdater {
public abstract void update(@NotNull Module module, @NotNull ModifiableRootModel rootModel);