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
}