in src/main/kotlin/com/jetbrains/interactiveRebase/visuals/MainPanel.kt [131:208]
fun createContentPanel(): JBScrollPane {
val scrollable = JBScrollPane()
val contentPanel = JBPanel<JBPanel<*>>()
contentPanel.layout = GridBagLayout()
val gbc = GridBagConstraints()
gbc.gridx = 0
gbc.gridy = 0
gbc.weightx = 1.0
gbc.weighty = 1.0
gbc.anchor = GridBagConstraints.CENTER
gbc.fill = GridBagConstraints.VERTICAL
contentPanel.add(
graphPanel,
gbc,
)
val help = HelpPanel(project)
gbc.insets.left = help.width
contentPanel.add(
graphWrapper,
gbc,
)
scrollable.setViewportView(contentPanel)
scrollable.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER)
scrollable.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED)
gbc.gridx = 1
gbc.gridy = 0
gbc.fill = GridBagConstraints.VERTICAL
gbc.weightx = 0.0
gbc.weighty = 0.0
gbc.anchor = GridBagConstraints.SOUTHEAST
gbc.insets.left = 0
contentPanel.add(help, gbc)
contentPanel.addMouseListener(
object : MouseListener {
override fun mouseClicked(e: MouseEvent?) {
SwingUtilities.invokeLater { requestFocusInWindow() }
graphPanel.mainBranchPanel.openTextFields.forEach {
textField ->
if (textField.isVisible && e?.component !== textField) {
if (textField.keyListeners.isEmpty() || textField.keyListeners[0] !is TextFieldListener) return
val listener = textField.keyListeners[0] as TextFieldListener
listener.processEnter()
}
}
}
override fun mousePressed(e: MouseEvent?) {
SwingUtilities.invokeLater { requestFocusInWindow() }
if (e != null && e.isPopupTrigger) {
invokePopup(e.x, e.y)
e.consume()
}
}
override fun mouseReleased(e: MouseEvent?) {
SwingUtilities.invokeLater { requestFocusInWindow() }
if (e != null && e.isPopupTrigger) {
invokePopup(e.x, e.y)
e.consume()
}
}
override fun mouseEntered(e: MouseEvent?) {
}
override fun mouseExited(e: MouseEvent?) {
}
},
)
return scrollable
}