in src/org/jetbrains/plugins/ipnb/editor/IpnbFileEditor.java [60:92]
public IpnbFileEditor(Project project, final VirtualFile vFile) {
myDocument = FileDocumentManager.getInstance().getDocument(vFile);
project.getMessageBus().connect(this)
.subscribe(FileEditorManagerListener.Before.FILE_EDITOR_MANAGER, new FileEditorManagerListener.Before() {
@Override
public void beforeFileClosed(@NotNull FileEditorManager source, @NotNull VirtualFile file) {
if (!new File(file.getPath()).exists()) return;
if (myDocument == null) return;
FileDocumentManager.getInstance().saveDocument(myDocument);
IpnbParser.saveIpnbFile(myIpnbFilePanel);
file.refresh(false, false);
}
});
myFile = vFile;
myName = vFile.getName();
myEditorPanel = new JBLoadingPanel(new BorderLayout(), this);
myEditorPanel.startLoading();
myEditorPanel.setBackground(IpnbEditorUtil.getBackground());
myIpnbFilePanel = createIpnbEditorPanel(project, vFile);
final JPanel controlPanel = createControlPanel();
myEditorPanel.add(controlPanel, BorderLayout.NORTH);
myScrollPane = ScrollPaneFactory.createScrollPane(myIpnbFilePanel);
myScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
myEditorPanel.add(myScrollPane, BorderLayout.CENTER);
registerHeadingActions();
registerActions();
}