[autocomplete] 85/143: Remove PropertyChangeListener from UIManager when AutoCompletion is uninstalled to allow GC.
Benjamin Mesing
ben at alioth.debian.org
Sat Oct 19 12:53:22 UTC 2013
This is an automated email from the git hooks/post-receive script.
ben pushed a commit to branch master
in repository autocomplete.
commit 0cf27a3405238e55304f0185d5b4084f793ff278
Author: bobbylight <robert at fifesoft.com>
Date: Sat May 26 14:29:36 2012 +0000
Remove PropertyChangeListener from UIManager when AutoCompletion is uninstalled to allow GC.
---
src/org/fife/ui/autocomplete/AutoCompletion.java | 38 ++++++++++++++++------
1 file changed, 28 insertions(+), 10 deletions(-)
diff --git a/src/org/fife/ui/autocomplete/AutoCompletion.java b/src/org/fife/ui/autocomplete/AutoCompletion.java
index 373256a..d044226 100644
--- a/src/org/fife/ui/autocomplete/AutoCompletion.java
+++ b/src/org/fife/ui/autocomplete/AutoCompletion.java
@@ -187,6 +187,12 @@ public class AutoCompletion {
private AutoActivationListener autoActivationListener;
/**
+ * Listens for LAF changes so the auto-complete windows automatically
+ * update themselves accordingly.
+ */
+ private LookAndFeelChangeListener lafListener;
+
+ /**
* The key used in the input map for the AutoComplete action.
*/
private static final String PARAM_TRIGGER_KEY = "AutoComplete";
@@ -223,16 +229,7 @@ public class AutoCompletion {
parentWindowListener = new ParentWindowListener();
textComponentListener = new TextComponentListener();
autoActivationListener = new AutoActivationListener();
-
- // Automatically update LAF of popup windows on LookAndFeel changes
- UIManager.addPropertyChangeListener(new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent e) {
- String name = e.getPropertyName();
- if (name.equals("lookAndFeel")) {
- updateUI();
- }
- }
- });
+ lafListener = new LookAndFeelChangeListener();
}
@@ -599,6 +596,9 @@ public class AutoCompletion {
autoActivationListener.addTo(this.textComponent);
}
+ UIManager.addPropertyChangeListener(lafListener);
+ updateUI(); // In case there have been changes since we uninstalled
+
}
@@ -1002,6 +1002,8 @@ public class AutoCompletion {
autoActivationListener.removeFrom(textComponent);
}
+ UIManager.removePropertyChangeListener(lafListener);
+
textComponent = null;
popupWindow = null;
@@ -1140,6 +1142,22 @@ public class AutoCompletion {
/**
+ * Listens for LookAndFeel changes and updates the various popup windows
+ * involved in auto-completion accordingly.
+ */
+ private class LookAndFeelChangeListener implements PropertyChangeListener {
+
+ public void propertyChange(PropertyChangeEvent e) {
+ String name = e.getPropertyName();
+ if ("lookAndFeel".equals(name)) {
+ updateUI();
+ }
+ }
+
+ }
+
+
+ /**
* Action that starts a parameterized completion, e.g. after '(' is
* typed.
*
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/autocomplete.git
More information about the pkg-java-commits
mailing list