Search in sources :

Example 1 with IpnbMarkdownCell

use of org.jetbrains.plugins.ipnb.format.cells.IpnbMarkdownCell in project intellij-community by JetBrains.

the class JsonParserTest method testMarkdownCell.

public void testMarkdownCell() throws IOException {
    final String fileName = "testData/markdown.ipynb";
    final String fileText = IpnbTestCase.getFileText(fileName);
    final IpnbFile ipnbFile = IpnbParser.parseIpnbFile(fileText, new LightVirtualFile());
    assertNotNull(ipnbFile);
    final List<IpnbCell> cells = ipnbFile.getCells();
    assertEquals(1, cells.size());
    final IpnbCell cell = cells.get(0);
    assertTrue(cell instanceof IpnbMarkdownCell);
    final List<String> source = ((IpnbMarkdownCell) cell).getSource();
    final String joined = StringUtil.join(source, "");
    assertEquals("<img src=\"images/ipython_logo.png\">", joined);
}
Also used : IpnbCell(org.jetbrains.plugins.ipnb.format.cells.IpnbCell) IpnbMarkdownCell(org.jetbrains.plugins.ipnb.format.cells.IpnbMarkdownCell) LightVirtualFile(com.intellij.testFramework.LightVirtualFile) IpnbFile(org.jetbrains.plugins.ipnb.format.IpnbFile)

Example 2 with IpnbMarkdownCell

use of org.jetbrains.plugins.ipnb.format.cells.IpnbMarkdownCell in project intellij-community by JetBrains.

the class IpnbFileEditor method updateCellType.

private void updateCellType(@NotNull final String selectedItem, @NotNull final IpnbEditablePanel selectedCell) {
    selectedCell.updateCellSource();
    if (selectedCell instanceof IpnbHeadingPanel) {
        final IpnbHeadingCell cell = ((IpnbHeadingPanel) selectedCell).getCell();
        if (selectedItem.startsWith(headingCellType)) {
            final char c = selectedItem.charAt(selectedItem.length() - 1);
            final int level = Character.getNumericValue(c);
            if (level != cell.getLevel()) {
                cell.setLevel(level);
                selectedCell.updateCellView();
            }
        } else if (selectedItem.equals(markdownCellType)) {
            final List<IpnbCell> cells = myIpnbFilePanel.getIpnbFile().getCells();
            final int index = cells.indexOf(((IpnbHeadingPanel) selectedCell).getCell());
            final IpnbMarkdownCell markdownCell = new IpnbMarkdownCell(cell.getSource(), cell.getMetadata());
            if (index >= 0) {
                cells.set(index, markdownCell);
            }
            myIpnbFilePanel.replaceComponent(selectedCell, markdownCell);
        } else if (selectedItem.equals(codeCellType)) {
            final List<IpnbCell> cells = myIpnbFilePanel.getIpnbFile().getCells();
            final int index = cells.indexOf(((IpnbHeadingPanel) selectedCell).getCell());
            final IpnbCodeCell codeCell = new IpnbCodeCell("python", cell.getSource(), null, Lists.newArrayList(), cell.getMetadata());
            if (index >= 0) {
                cells.set(index, codeCell);
            }
            myIpnbFilePanel.replaceComponent(selectedCell, codeCell);
        }
    } else if (selectedCell instanceof IpnbMarkdownPanel) {
        final IpnbMarkdownCell cell = ((IpnbMarkdownPanel) selectedCell).getCell();
        if (selectedItem.startsWith(headingCellType)) {
            final char c = selectedItem.charAt(selectedItem.length() - 1);
            final int level = Character.getNumericValue(c);
            final List<IpnbCell> cells = myIpnbFilePanel.getIpnbFile().getCells();
            final int index = cells.indexOf(((IpnbMarkdownPanel) selectedCell).getCell());
            final IpnbHeadingCell headingCell = new IpnbHeadingCell(cell.getSource(), level, cell.getMetadata());
            if (index >= 0) {
                cells.set(index, headingCell);
            }
            myIpnbFilePanel.replaceComponent(selectedCell, headingCell);
        } else if (selectedItem.equals(codeCellType)) {
            final List<IpnbCell> cells = myIpnbFilePanel.getIpnbFile().getCells();
            final int index = cells.indexOf(((IpnbMarkdownPanel) selectedCell).getCell());
            final IpnbCodeCell codeCell = new IpnbCodeCell("python", cell.getSource(), null, Lists.newArrayList(), cell.getMetadata());
            if (index >= 0) {
                cells.set(index, codeCell);
            }
            myIpnbFilePanel.replaceComponent(selectedCell, codeCell);
        }
    } else if (selectedCell instanceof IpnbCodePanel) {
        final IpnbCodeCell cell = ((IpnbCodePanel) selectedCell).getCell();
        if (selectedItem.startsWith(headingCellType)) {
            final char c = selectedItem.charAt(selectedItem.length() - 1);
            final int level = Character.getNumericValue(c);
            final List<IpnbCell> cells = myIpnbFilePanel.getIpnbFile().getCells();
            final int index = cells.indexOf(((IpnbCodePanel) selectedCell).getCell());
            final IpnbHeadingCell headingCell = new IpnbHeadingCell(cell.getSource(), level, cell.getMetadata());
            if (index >= 0) {
                cells.set(index, headingCell);
            }
            myIpnbFilePanel.replaceComponent(selectedCell, headingCell);
        } else if (selectedItem.equals(markdownCellType)) {
            final List<IpnbCell> cells = myIpnbFilePanel.getIpnbFile().getCells();
            final int index = cells.indexOf(((IpnbCodePanel) selectedCell).getCell());
            final IpnbMarkdownCell markdownCell = new IpnbMarkdownCell(cell.getSource(), cell.getMetadata());
            if (index >= 0) {
                cells.set(index, markdownCell);
            }
            myIpnbFilePanel.replaceComponent(selectedCell, markdownCell);
        }
    }
}
Also used : IpnbCell(org.jetbrains.plugins.ipnb.format.cells.IpnbCell) IpnbMarkdownCell(org.jetbrains.plugins.ipnb.format.cells.IpnbMarkdownCell) IpnbCodeCell(org.jetbrains.plugins.ipnb.format.cells.IpnbCodeCell) List(java.util.List) IpnbHeadingCell(org.jetbrains.plugins.ipnb.format.cells.IpnbHeadingCell) IpnbCodePanel(org.jetbrains.plugins.ipnb.editor.panels.code.IpnbCodePanel)

Example 3 with IpnbMarkdownCell

use of org.jetbrains.plugins.ipnb.format.cells.IpnbMarkdownCell in project intellij-community by JetBrains.

the class IpnbMarkdownCellAction method changeTypeToMarkdown.

public void changeTypeToMarkdown(@NotNull final IpnbFileEditor editor) {
    final IpnbFilePanel filePanel = editor.getIpnbFilePanel();
    final IpnbEditablePanel selectedCellPanel = filePanel.getSelectedCellPanel();
    if (selectedCellPanel == null)
        return;
    final IpnbEditableCell cell = selectedCellPanel.getCell();
    final List<IpnbCell> cells = filePanel.getIpnbFile().getCells();
    final int index = cells.indexOf(selectedCellPanel.getCell());
    final IpnbMarkdownCell markdownCell = new IpnbMarkdownCell(cell.getSource(), cell.getMetadata());
    if (index >= 0) {
        cells.set(index, markdownCell);
    }
    filePanel.replaceComponent(selectedCellPanel, markdownCell);
}
Also used : IpnbCell(org.jetbrains.plugins.ipnb.format.cells.IpnbCell) IpnbFilePanel(org.jetbrains.plugins.ipnb.editor.panels.IpnbFilePanel) IpnbEditableCell(org.jetbrains.plugins.ipnb.format.cells.IpnbEditableCell) IpnbMarkdownCell(org.jetbrains.plugins.ipnb.format.cells.IpnbMarkdownCell) IpnbEditablePanel(org.jetbrains.plugins.ipnb.editor.panels.IpnbEditablePanel)

Example 4 with IpnbMarkdownCell

use of org.jetbrains.plugins.ipnb.format.cells.IpnbMarkdownCell in project intellij-community by JetBrains.

the class JsonParserTest method testMarkdownCells.

public void testMarkdownCells() throws IOException {
    final String fileName = "testData/SymPy.ipynb";
    final String fileText = IpnbTestCase.getFileText(fileName);
    final IpnbFile ipnbFile = IpnbParser.parseIpnbFile(fileText, new LightVirtualFile());
    assertNotNull(ipnbFile);
    final List<IpnbCell> cells = ipnbFile.getCells();
    Iterables.removeIf(cells, new Predicate<IpnbCell>() {

        @Override
        public boolean apply(IpnbCell cell) {
            return !(cell instanceof IpnbMarkdownCell);
        }
    });
    assertEquals(7, cells.size());
}
Also used : IpnbCell(org.jetbrains.plugins.ipnb.format.cells.IpnbCell) IpnbMarkdownCell(org.jetbrains.plugins.ipnb.format.cells.IpnbMarkdownCell) LightVirtualFile(com.intellij.testFramework.LightVirtualFile) IpnbFile(org.jetbrains.plugins.ipnb.format.IpnbFile)

Aggregations

IpnbCell (org.jetbrains.plugins.ipnb.format.cells.IpnbCell)4 IpnbMarkdownCell (org.jetbrains.plugins.ipnb.format.cells.IpnbMarkdownCell)4 LightVirtualFile (com.intellij.testFramework.LightVirtualFile)2 IpnbFile (org.jetbrains.plugins.ipnb.format.IpnbFile)2 List (java.util.List)1 IpnbEditablePanel (org.jetbrains.plugins.ipnb.editor.panels.IpnbEditablePanel)1 IpnbFilePanel (org.jetbrains.plugins.ipnb.editor.panels.IpnbFilePanel)1 IpnbCodePanel (org.jetbrains.plugins.ipnb.editor.panels.code.IpnbCodePanel)1 IpnbCodeCell (org.jetbrains.plugins.ipnb.format.cells.IpnbCodeCell)1 IpnbEditableCell (org.jetbrains.plugins.ipnb.format.cells.IpnbEditableCell)1 IpnbHeadingCell (org.jetbrains.plugins.ipnb.format.cells.IpnbHeadingCell)1