import com.intellij.ui.JBColor;
import com.intellij.util.Alarm;
import com.intellij.util.PlatformUtils;
+import com.intellij.util.messages.MessageBusConnection;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
private static final Logger LOG = Logger.getInstance(IpnbFilePanel.class);
private final DocumentAdapter myDocumentListener;
private final Document myDocument;
+ private final MessageBusConnection myBusConnection;
private IpnbFile myIpnbFile;
private final Project myProject;
@NotNull private final IpnbFileEditor myParent;
}, 10, ModalityState.stateForComponent(this));
UIUtil.requestFocus(this);
- ApplicationManager.getApplication().getMessageBus().connect().subscribe(ProjectEx.ProjectSaved.TOPIC,
- new ProjectEx.ProjectSaved() {
- @Override
- public void saved(@NotNull Project project) {
- CommandProcessor.getInstance().runUndoTransparentAction(
- () -> ApplicationManager.getApplication()
- .runWriteAction(() -> saveToFile(false)));
- }
- });
+ myBusConnection = ApplicationManager.getApplication().getMessageBus().connect();
+ myBusConnection.subscribe(ProjectEx.ProjectSaved.TOPIC,
+ new ProjectEx.ProjectSaved() {
+ @Override
+ public void saved(@NotNull Project project) {
+ CommandProcessor.getInstance().runUndoTransparentAction(
+ () -> ApplicationManager.getApplication()
+ .runWriteAction(() -> saveToFile(false)));
+ }
+ });
}
+ @Override
public void dispose() {
myDocument.removeDocumentListener(myDocumentListener);
+ Disposer.dispose(myBusConnection);
}
private void readFromFile(boolean showError) {
createAndAddCell(true, IpnbCodeCell.createEmptyCodeCell());
CommandProcessor.getInstance().executeCommand(getProject(),
() -> ApplicationManager.getApplication().runWriteAction(
- () -> saveToFile(false)), "Ipnb.runCell", new Object());
+ () -> saveToFile(false)), "Ipnb.runCell", new Object());
}
}