package org.asciidoc.intellij.editor;
import com.intellij.openapi.fileEditor.FileEditor;
import com.intellij.openapi.fileEditor.TextEditor;
import com.intellij.openapi.fileEditor.impl.text.PsiAwareTextEditorProvider;
import com.intellij.openapi.util.Disposer;
import org.asciidoc.intellij.ui.SplitTextEditorProvider;
import org.jetbrains.annotations.NotNull;
public class AsciiDocSplitEditorProvider extends SplitTextEditorProvider {
public AsciiDocSplitEditorProvider() {
super(new PsiAwareTextEditorProvider(), new AsciiDocPreviewEditorProvider());
}
@Override
protected FileEditor createSplitEditor(@NotNull final FileEditor firstEditor, @NotNull FileEditor secondEditor) {
if (!(firstEditor instanceof TextEditor) || !(secondEditor instanceof AsciiDocPreviewEditor)) {
throw new IllegalArgumentException("Main editor should be TextEditor");
}
AsciiDocPreviewEditor asciiDocPreviewEditor = (AsciiDocPreviewEditor)secondEditor;
asciiDocPreviewEditor.setEditor(((TextEditor)firstEditor).getEditor());
return new AsciiDocSplitEditor(((TextEditor)firstEditor), ((AsciiDocPreviewEditor)secondEditor));
}
@Override
public void disposeEditor(@NotNull FileEditor fileEditor) {
// default -- needed for IntelliJ IDEA 15 compatibility
Disposer.dispose(fileEditor);
}
}