properly disposed
authorAlexey Kudravtsev <cdr@intellij.com>
Tue, 6 Jul 2010 12:15:36 +0000 (16:15 +0400)
committerAlexey Kudravtsev <cdr@intellij.com>
Tue, 6 Jul 2010 12:53:01 +0000 (16:53 +0400)
platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/CommittedChangesPanel.java
platform/vcs-impl/src/com/intellij/openapi/vcs/changes/committed/IncomingChangesViewProvider.java
platform/vcs-impl/src/com/intellij/openapi/vcs/update/UpdateInfoTree.java

index 5bc6854939f78bceeba532ea862ca05b320db4bc..ab1ce58117b83f753ac0aeea80b900f872d67caa 100644 (file)
@@ -32,6 +32,7 @@ import com.intellij.openapi.progress.ProgressManager;
 import com.intellij.openapi.progress.Task;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.ui.Messages;
 import com.intellij.openapi.progress.Task;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.ui.Messages;
+import com.intellij.openapi.util.Disposer;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vcs.*;
 import com.intellij.openapi.vcs.changes.BackgroundFromStartOption;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.openapi.vcs.*;
 import com.intellij.openapi.vcs.changes.BackgroundFromStartOption;
@@ -78,6 +79,7 @@ public class CommittedChangesPanel extends JPanel implements TypeSafeDataProvide
     myLocation = location;
     myShouldBeCalledOnDispose = new ArrayList<Runnable>();
     myBrowser = new CommittedChangesTreeBrowser(project, new ArrayList<CommittedChangeList>());
     myLocation = location;
     myShouldBeCalledOnDispose = new ArrayList<Runnable>();
     myBrowser = new CommittedChangesTreeBrowser(project, new ArrayList<CommittedChangeList>());
+    Disposer.register(this, myBrowser);
     add(myBrowser, BorderLayout.CENTER);
 
     myErrorLabel.setForeground(Color.red);
     add(myBrowser, BorderLayout.CENTER);
 
     myErrorLabel.setForeground(Color.red);
@@ -276,7 +278,6 @@ public class CommittedChangesPanel extends JPanel implements TypeSafeDataProvide
   }
 
   public void dispose() {
   }
 
   public void dispose() {
-    myBrowser.dispose();
     for (Runnable runnable : myShouldBeCalledOnDispose) {
       runnable.run();
     }
     for (Runnable runnable : myShouldBeCalledOnDispose) {
       runnable.run();
     }
index 45af23f3cf86234c50dab3129a0f0b83a833c52c..c48c4fbe55f5c86014d6fd3812584e18e4bc1fa8 100644 (file)
@@ -21,6 +21,7 @@ import com.intellij.openapi.actionSystem.ActionToolbar;
 import com.intellij.openapi.actionSystem.AnAction;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.actionSystem.AnAction;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.project.Project;
+import com.intellij.openapi.util.Disposer;
 import com.intellij.openapi.vcs.RepositoryLocation;
 import com.intellij.openapi.vcs.VcsBundle;
 import com.intellij.openapi.vcs.VcsException;
 import com.intellij.openapi.vcs.RepositoryLocation;
 import com.intellij.openapi.vcs.VcsBundle;
 import com.intellij.openapi.vcs.VcsException;
@@ -71,6 +72,7 @@ public class IncomingChangesViewProvider implements ChangesViewContentProvider {
 
   public void disposeContent() {
     myConnection.disconnect();
 
   public void disposeContent() {
     myConnection.disconnect();
+    Disposer.dispose(myBrowser);
     myBrowser = null;
   }
 
     myBrowser = null;
   }
 
index aa73300074e8c3911cf85e5cf63cd687848854c7..4443337f3a69847c934028d79a0cd16dd7c9919b 100644 (file)
@@ -21,7 +21,6 @@ import com.intellij.ide.TreeExpander;
 import com.intellij.openapi.Disposable;
 import com.intellij.openapi.actionSystem.*;
 import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.Disposable;
 import com.intellij.openapi.actionSystem.*;
 import com.intellij.openapi.application.ApplicationManager;
-import com.intellij.openapi.diagnostic.Logger;
 import com.intellij.openapi.fileEditor.OpenFileDescriptor;
 import com.intellij.openapi.project.DumbAware;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.fileEditor.OpenFileDescriptor;
 import com.intellij.openapi.project.DumbAware;
 import com.intellij.openapi.project.Project;
@@ -63,8 +62,6 @@ import java.util.*;
 import java.util.List;
 
 public class UpdateInfoTree extends PanelWithActionsAndCloseButton implements Disposable {
 import java.util.List;
 
 public class UpdateInfoTree extends PanelWithActionsAndCloseButton implements Disposable {
-  private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.vcs.update.UpdateInfoTree");
-
   private VirtualFile mySelectedFile;
   private String mySelectedUrl;
   private final Tree myTree = new Tree();
   private VirtualFile mySelectedFile;
   private String mySelectedUrl;
   private final Tree myTree = new Tree();
@@ -155,6 +152,7 @@ public class UpdateInfoTree extends PanelWithActionsAndCloseButton implements Di
   protected JComponent createCenterPanel() {
     myCenterPanel.add(CARD_STATUS, ScrollPaneFactory.createScrollPane(myTree));
     myTreeBrowser = new CommittedChangesTreeBrowser(myProject, Collections.<CommittedChangeList>emptyList());
   protected JComponent createCenterPanel() {
     myCenterPanel.add(CARD_STATUS, ScrollPaneFactory.createScrollPane(myTree));
     myTreeBrowser = new CommittedChangesTreeBrowser(myProject, Collections.<CommittedChangeList>emptyList());
+    Disposer.register(this, myTreeBrowser);
     myTreeBrowser.setHelpId(getHelpId());
     myCenterPanel.add(CARD_CHANGES, myTreeBrowser);
     return myCenterPanel;
     myTreeBrowser.setHelpId(getHelpId());
     myCenterPanel.add(CARD_CHANGES, myTreeBrowser);
     return myCenterPanel;