mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
SupportForFrameworksStep leaking fixed
This commit is contained in:
+6
-4
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user