package org.asciidoc.intellij.editor; import com.intellij.openapi.Disposable; import com.intellij.openapi.editor.Editor; import org.asciidoc.intellij.AsciiDocBundle; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; public abstract class AsciiDocHtmlPanel implements Disposable { @NotNull public abstract JComponent getComponent(); public abstract void setHtml(@NotNull String html); public abstract void render(); private Editor editor; @NotNull protected static String getCssLines(@Nullable String inlineCss) { StringBuilder result = new StringBuilder(); if (inlineCss != null) { result.append("<style>\n").append(inlineCss).append("\n</style>\n"); } return result.toString(); } public abstract void scrollToLine(int line, int lineCount); public Editor getEditor() { return editor; } public void setEditor(Editor editor) { this.editor = editor; } public enum PreviewTheme { INTELLIJ(AsciiDocBundle.message("asciidoc.preview.intellij")), ASCIIDOC(AsciiDocBundle.message("asciidoc.preview.asciidoc")), DARCULA(AsciiDocBundle.message("asciidoc.preview.darcula")); public final String presentationName; PreviewTheme(String presentationName) { this.presentationName = presentationName; } @Override public String toString() { return presentationName; } } }