From b48eb7b866546fe2356931888f4b97f9c593f473 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 18 Mar 2015 15:10:36 +0300 Subject: [PATCH] addPropertyChangeListener(@NotNull final PropertyChangeListener listener, @NotNull Disposable parentDisposable) --- .../com/intellij/injected/editor/EditorWindowImpl.java | 7 ++++++- .../src/com/intellij/openapi/editor/ex/EditorEx.java | 3 ++- .../com/intellij/openapi/editor/impl/EditorImpl.java | 10 ++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindowImpl.java b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindowImpl.java index 499423115c30..8acd07c31177 100644 --- a/platform/lang-impl/src/com/intellij/injected/editor/EditorWindowImpl.java +++ b/platform/lang-impl/src/com/intellij/injected/editor/EditorWindowImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -340,6 +340,11 @@ public class EditorWindowImpl extends UserDataHolderBase implements EditorWindow myDelegate.addPropertyChangeListener(listener); } + @Override + public void addPropertyChangeListener(@NotNull PropertyChangeListener listener, @NotNull Disposable parentDisposable) { + myDelegate.addPropertyChangeListener(listener, parentDisposable); + } + @Override public void removePropertyChangeListener(@NotNull final PropertyChangeListener listener) { myDelegate.removePropertyChangeListener(listener); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java index 843ace06e781..f8fe88eb9982 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/ex/EditorEx.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -108,6 +108,7 @@ public interface EditorEx extends Editor { void reinitSettings(); + void addPropertyChangeListener(@NotNull PropertyChangeListener listener, @NotNull Disposable parentDisposable); void addPropertyChangeListener(@NotNull PropertyChangeListener listener); void removePropertyChangeListener(@NotNull PropertyChangeListener listener); diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java index 10a2cfe3281f..8ab01eca0b71 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/EditorImpl.java @@ -1154,6 +1154,16 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi public void addPropertyChangeListener(@NotNull PropertyChangeListener listener) { myPropertyChangeSupport.addPropertyChangeListener(listener); } + @Override + public void addPropertyChangeListener(@NotNull final PropertyChangeListener listener, @NotNull Disposable parentDisposable) { + addPropertyChangeListener(listener); + Disposer.register(parentDisposable, new Disposable() { + @Override + public void dispose() { + removePropertyChangeListener(listener); + } + }); + } @Override public void removePropertyChangeListener(@NotNull PropertyChangeListener listener) {