From 3b7e8aadfa1487f872e7adb1027cda645eff6c9f Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Mon, 22 Jun 2015 17:58:41 +0300 Subject: [PATCH] memory leak fixed --- .../newProjectWizard/AbstractProjectWizard.java | 9 +++++---- .../templates/ManageProjectTemplatesDialog.java | 2 +- .../ide/util/projectWizard/WizardContext.java | 17 ++++++++++++++++- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AbstractProjectWizard.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AbstractProjectWizard.java index 0b83da74e9f5..162e166696be 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AbstractProjectWizard.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AbstractProjectWizard.java @@ -22,6 +22,7 @@ import com.intellij.ide.util.projectWizard.ProjectBuilder; import com.intellij.ide.util.projectWizard.WizardContext; import com.intellij.ide.wizard.AbstractWizard; import com.intellij.ide.wizard.CommitStepException; +import com.intellij.openapi.Disposable; import com.intellij.openapi.components.StorageScheme; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.project.Project; @@ -50,12 +51,12 @@ public abstract class AbstractProjectWizard extends AbstractWizard(Arrays.asList(templates)) { @Override public void remove(int index) { diff --git a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java index 74619373c3d6..0971c06afafb 100644 --- a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java +++ b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java @@ -17,6 +17,7 @@ package com.intellij.ide.util.projectWizard; import com.intellij.ide.IdeBundle; import com.intellij.ide.RecentProjectsManager; +import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.components.StorageScheme; import com.intellij.openapi.project.Project; @@ -40,6 +41,7 @@ public class WizardContext extends UserDataHolderBase { */ @Nullable private final Project myProject; + private final Disposable myDisposable; private String myProjectFileDirectory; private String myProjectName; private String myCompilerOutputDirectory; @@ -71,18 +73,31 @@ public class WizardContext extends UserDataHolderBase { myModulesProvider = modulesProvider; } + public Disposable getDisposable() { + return myDisposable; + } + public interface Listener { void buttonsUpdateRequested(); void nextStepRequested(); } - public WizardContext(@Nullable Project project) { + public WizardContext(@Nullable Project project, Disposable parentDisposable) { myProject = project; + myDisposable = parentDisposable; if (myProject != null){ myProjectJdk = ProjectRootManager.getInstance(myProject).getProjectSdk(); } } + /** + * Use {@link #WizardContext(Project, Disposable)}. + */ + @Deprecated + public WizardContext(@Nullable Project project) { + this(project, null); + } + @Nullable public Project getProject() { return myProject;