fun wrapLabelWithTextField()

in src/main/kotlin/com/jetbrains/interactiveRebase/visuals/LabeledBranchPanel.kt [406:447]


    fun wrapLabelWithTextField(
        commitLabel: JBLabel,
        commitInfo: CommitInfo,
    ): JComponent {
        val textLabelWrapper = JBPanel<JBPanel<*>>()
        textLabelWrapper.layout = OverlayLayout(textLabelWrapper)
        textLabelWrapper.isOpaque = false

        val gbc = gridCellForTextLabel()

        val labelWrapper = JBPanel<JBPanel<*>>()
        labelWrapper.layout = GridBagLayout()
        labelWrapper.isOpaque = false
        labelWrapper.isVisible = true

        labelWrapper.add(commitLabel, gbc)

        val textWrapper = JBPanel<JBPanel<*>>()
        textWrapper.layout = GridBagLayout()
        textWrapper.isOpaque = false
        textWrapper.isVisible = false

        val textField = createTextBox(commitLabel, commitInfo)
        textWrapper.add(textField, gbc)

        if (commitInfo.isTextFieldEnabled) {
            enableTextField(textField, textWrapper, labelWrapper, commitInfo)
        }
        textLabelWrapper.add(labelWrapper)
        textLabelWrapper.add(textWrapper)

        val labelListener = LabelListener(commitInfo, branch)
        commitLabel.addMouseListener(labelListener)

        if (commitLabel is Disposable) {
            Disposer.register(commitLabel, labelListener)
        }

        messages.add(textLabelWrapper)

        return textLabelWrapper
    }