mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Maven: unregistering tool window listener correctly
Maven: opaque dependencies graph
This commit is contained in:
+11
-2
@@ -15,11 +15,13 @@
|
||||
*/
|
||||
package org.jetbrains.idea.maven.navigator;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.components.PersistentStateComponent;
|
||||
import com.intellij.openapi.components.State;
|
||||
import com.intellij.openapi.components.Storage;
|
||||
import com.intellij.openapi.project.DumbAwareRunnable;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.wm.ToolWindow;
|
||||
import com.intellij.openapi.wm.ToolWindowAnchor;
|
||||
@@ -173,12 +175,13 @@ public class MavenProjectsNavigator extends SimpleProjectComponent implements Pe
|
||||
initTree();
|
||||
JPanel panel = new MavenProjectsNavigatorPanel(myProject, myTree);
|
||||
|
||||
ToolWindowManagerEx manager = ToolWindowManagerEx.getInstanceEx(myProject);
|
||||
final ToolWindowManagerEx manager = ToolWindowManagerEx.getInstanceEx(myProject);
|
||||
myToolWindow = manager.registerToolWindow(TOOL_WINDOW_ID, panel, ToolWindowAnchor.RIGHT, myProject, true);
|
||||
myToolWindow.setIcon(MavenIcons.MAVEN_ICON);
|
||||
|
||||
manager.addToolWindowManagerListener(new ToolWindowManagerAdapter() {
|
||||
final ToolWindowManagerAdapter listener = new ToolWindowManagerAdapter() {
|
||||
boolean wasVisible = false;
|
||||
|
||||
@Override
|
||||
public void stateChanged() {
|
||||
if (myToolWindow.isDisposed()) return;
|
||||
@@ -187,6 +190,12 @@ public class MavenProjectsNavigator extends SimpleProjectComponent implements Pe
|
||||
scheduleStructureUpdate();
|
||||
wasVisible = visible;
|
||||
}
|
||||
};
|
||||
manager.addToolWindowManagerListener(listener);
|
||||
Disposer.register(myProject, new Disposable() {
|
||||
public void dispose() {
|
||||
manager.removeToolWindowManagerListener(listener);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user