override fun customizeRenderer()

in src/main/kotlin/mobi/hsz/idea/gitignore/ui/template/TemplateTreeRenderer.kt [19:65]


    override fun customizeRenderer(
        tree: JTree,
        value: Any,
        selected: Boolean,
        expanded: Boolean,
        leaf: Boolean,
        row: Int,
        hasFocus: Boolean,
    ) {
        if (value !is TemplateTreeNode) {
            return
        }
        val foreground = when {
            selected -> UIUtil.getTreeSelectionForeground(true)
            value.template == null -> PlatformColors.BLUE
            else -> UIUtil.getTreeForeground()
        }
        val background = when {
            selected -> UIUtil.getTreeSelectionBackground(true)
            else -> UIUtil.getTreeBackground()
        }

        setForeground(foreground)
        UIUtil.changeBackGround(this, background)

        value.template?.let {
            SearchUtil.appendFragments(
                filter,
                it.name,
                SimpleTextAttributes.STYLE_PLAIN,
                foreground,
                background,
                textRenderer
            )
        } ?: run {
            value.container?.let {
                checkbox.isVisible = true
                textRenderer.append(
                    message("template.container." + it.toString().lowercase()),
                    when {
                        selected -> SimpleTextAttributes(SimpleTextAttributes.STYLE_PLAIN, foreground)
                        else -> SimpleTextAttributes.GRAYED_ATTRIBUTES
                    }
                )
            }
        }
    }