override fun createCenterPanel()

in src/main/kotlin/com/jetbrains/interactiveRebase/visuals/GraphDiffDialog.kt [84:121]


    override fun createCenterPanel(): JComponent {
        val actualGraph = modelService.graphInfo

        // Create the graph without changes
        val initialGraph: GraphInfo = modelService.duplicateGraphInfo(actualGraph)
        expandBothBranches(initialGraph)
        revertChangesVisually(initialGraph)
        val initialGraphPanel: GraphPanel = createGraphDisplay(initialGraph)

        initialGraphPanel.preferredSize = JBDimension(400, initialGraphPanel.preferredHeight)

        // Create the graph with current changes
        val currentGraph: GraphInfo = modelService.duplicateGraphInfo(actualGraph)
        expandBothBranches(currentGraph)
        val currentGraphPanel: GraphPanel = createGraphDisplay(currentGraph)

        currentGraphPanel.preferredSize = JBDimension(400, currentGraphPanel.preferredHeight)

        // Make both scrollable
        val initialScrollable = JBScrollPane()
        initialScrollable.setViewportView(initialGraphPanel)
        initialScrollable.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED)
        initialScrollable.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED)

        val currentScrollable = JBScrollPane()
        currentScrollable.setViewportView(currentGraphPanel)
        currentScrollable.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED)
        currentScrollable.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED)

        // Put both in a split view
        val split =
            OnePixelSplitter(false, 0.5f).apply {
                firstComponent = initialScrollable
                secondComponent = currentScrollable
            }
        split.minimumSize = Dimension(500, 820)
        return split
    }