removed json text view from ipython notebook

This commit is contained in:
Ekaterina Tuzova
2014-11-17 16:03:14 +03:00
parent 7a2e2cdbe8
commit a0bbeb1015
3 changed files with 12 additions and 52 deletions
@@ -67,6 +67,6 @@ public class IpnbEditorProvider implements FileEditorProvider, DumbAware {
@NotNull
@Override
public FileEditorPolicy getPolicy() {
return FileEditorPolicy.PLACE_BEFORE_DEFAULT_EDITOR;
return FileEditorPolicy.HIDE_DEFAULT_EDITOR;
}
}
@@ -6,19 +6,15 @@ import com.intellij.icons.AllIcons;
import com.intellij.ide.structureView.StructureViewBuilder;
import com.intellij.openapi.actionSystem.CustomShortcutSet;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.fileEditor.*;
import com.intellij.openapi.fileEditor.ex.FileEditorProviderManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.ComboBox;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.util.UserDataHolderBase;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.pom.Navigatable;
import com.intellij.ui.JBColor;
import com.intellij.ui.ScrollPaneFactory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.ipnb.editor.actions.*;
import org.jetbrains.plugins.ipnb.editor.panels.*;
import org.jetbrains.plugins.ipnb.editor.panels.code.IpnbCodePanel;
@@ -41,15 +37,15 @@ import java.util.List;
/**
* @author traff
*/
public class IpnbFileEditor extends UserDataHolderBase implements FileEditor, TextEditor {
public class IpnbFileEditor extends UserDataHolderBase implements FileEditor {
private final VirtualFile myFile;
private final String myName;
private final JComponent myEditorPanel;
private final TextEditor myEditor;
private final IpnbFilePanel myIpnbFilePanel;
private final Document myDocument;
private ComboBox myCellTypeCombo;
private static final String codeCellType = "Code";
private static final String markdownCellType = "Markdown";
@@ -63,12 +59,14 @@ public class IpnbFileEditor extends UserDataHolderBase implements FileEditor, Te
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.Adapter() {
@Override
public void beforeFileClosed(@NotNull FileEditorManager source, @NotNull VirtualFile file) {
if (!new File(file.getPath()).exists()) return;
final Document document = getEditor().getDocument();
FileDocumentManager.getInstance().saveDocument(document);
if (myDocument == null) return;
FileDocumentManager.getInstance().saveDocument(myDocument);
IpnbParser.saveIpnbFile(myIpnbFilePanel);
file.refresh(false, false);
}
@@ -78,8 +76,6 @@ public class IpnbFileEditor extends UserDataHolderBase implements FileEditor, Te
myName = vFile.getName();
myEditor = createEditor(project, vFile);
myEditorPanel = new JPanel(new BorderLayout());
myEditorPanel.setBackground(IpnbEditorUtil.getBackground());
@@ -94,6 +90,10 @@ public class IpnbFileEditor extends UserDataHolderBase implements FileEditor, Te
registerHeadingActions();
}
public Document getDocument() {
return myDocument;
}
private void registerHeadingActions() {
new IpnbHeading1CellAction().registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke("ctrl shift 1")), myIpnbFilePanel);
new IpnbHeading2CellAction().registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke("ctrl shift 2")), myIpnbFilePanel);
@@ -417,46 +417,6 @@ public class IpnbFileEditor extends UserDataHolderBase implements FileEditor, Te
@Override
public void dispose() {
Disposer.dispose(myEditor);
}
@NotNull
@Override
public Editor getEditor() {
return myEditor.getEditor();
}
@Override
public boolean canNavigateTo(@NotNull Navigatable navigatable) {
return true;
}
@Override
public void navigateTo(@NotNull Navigatable navigatable) {
}
@Nullable
private static TextEditor createEditor(@NotNull Project project, @NotNull VirtualFile vFile) {
FileEditorProvider provider = getProvider(project, vFile);
if (provider != null) {
FileEditor editor = provider.createEditor(project, vFile);
if (editor instanceof TextEditor) {
return (TextEditor)editor;
}
}
return null;
}
@Nullable
private static FileEditorProvider getProvider(Project project, VirtualFile vFile) {
FileEditorProvider[] providers = FileEditorProviderManager.getInstance().getProviders(project, vFile);
for (FileEditorProvider provider : providers) {
if (!(provider instanceof IpnbEditorProvider)) {
return provider;
}
}
return null;
}
public abstract static class CellSelectionListener {
@@ -78,7 +78,7 @@ public class IpnbFilePanel extends JPanel implements Scrollable, DataProvider, D
alarm.addRequest(new MySynchronizeRequest(), 10, ModalityState.stateForComponent(IpnbFilePanel.this));
}
};
myDocument = myParent.getEditor().getDocument();
myDocument = myParent.getDocument();
myDocument.addDocumentListener(myDocumentListener);
alarm.addRequest(new Runnable() {