From 9d422dfdfee02e0ace1ad8c75ff0ab5f94d424aa Mon Sep 17 00:00:00 2001 From: nik Date: Thu, 7 Jul 2011 14:45:58 +0400 Subject: [PATCH] downloadable libraries: dispose listener --- .../libraryEditor/EditExistingLibraryDialog.java | 2 +- .../libraryEditor/LibraryEditorListener.java | 4 +++- .../projectRoot/StructureConfigurableContext.java | 15 ++++++--------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/EditExistingLibraryDialog.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/EditExistingLibraryDialog.java index c14cc6f8a48c..82c37194d0c8 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/EditExistingLibraryDialog.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/EditExistingLibraryDialog.java @@ -77,7 +77,7 @@ public class EditExistingLibraryDialog extends LibraryEditorDialogBase { myNameField.setText(newName); } } - }); + }, getDisposable()); init(); } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryEditorListener.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryEditorListener.java index 0cf90dbc452b..a42929dc644c 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryEditorListener.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/libraryEditor/LibraryEditorListener.java @@ -18,9 +18,11 @@ package com.intellij.openapi.roots.ui.configuration.libraryEditor; import com.intellij.openapi.roots.libraries.Library; import org.jetbrains.annotations.NotNull; +import java.util.EventListener; + /** * @author nik */ -public interface LibraryEditorListener { +public interface LibraryEditorListener extends EventListener { void libraryRenamed(@NotNull Library library, String oldName, String newName); } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/StructureConfigurableContext.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/StructureConfigurableContext.java index 998383438351..196fdf7eab13 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/StructureConfigurableContext.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/StructureConfigurableContext.java @@ -29,19 +29,18 @@ import com.intellij.openapi.roots.ui.configuration.libraryEditor.LibraryEditorLi import com.intellij.openapi.roots.ui.configuration.projectRoot.daemon.ProjectStructureDaemonAnalyzer; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.util.EventDispatcher; import gnu.trove.THashMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.List; import java.util.Map; public class StructureConfigurableContext implements Disposable, LibraryEditorListener { private final ProjectStructureDaemonAnalyzer myDaemonAnalyzer; public final ModulesConfigurator myModulesConfigurator; public final Map myLevel2Providers = new THashMap(); - private final List myLibraryEditorListeners = new ArrayList(); + private final EventDispatcher myLibraryEditorListeners = EventDispatcher.create(LibraryEditorListener.class); private final Project myProject; @@ -103,17 +102,15 @@ public class StructureConfigurableContext implements Disposable, LibraryEditorLi } public void addLibraryEditorListener(LibraryEditorListener listener) { - myLibraryEditorListeners.add(listener); + myLibraryEditorListeners.addListener(listener); } - public void removeLibraryEditorListener(LibraryEditorListener listener) { - myLibraryEditorListeners.remove(listener); + public void addLibraryEditorListener(@NotNull LibraryEditorListener listener, @NotNull Disposable parentDisposable) { + myLibraryEditorListeners.addListener(listener, parentDisposable); } public void libraryRenamed(@NotNull Library library, String oldName, String newName) { - for (LibraryEditorListener listener : myLibraryEditorListeners) { - listener.libraryRenamed(library, oldName, newName); - } + myLibraryEditorListeners.getMulticaster().libraryRenamed(library, oldName, newName); } public StructureLibraryTableModifiableModelProvider getGlobalLibrariesProvider() {