From 9a8ea2afa5d0dfcfbe418b3f8617ad92fa54b8af Mon Sep 17 00:00:00 2001 From: Louis Vignier Date: Fri, 13 Sep 2024 14:04:44 +0200 Subject: [PATCH] [UI DSL] Add groupedTextListCellRenderer util This makes it possible to use the new listCellRenderer with separators from Java code easily. GitOrigin-RevId: d2320826c28cdd766b992d6262f05caaa561a21c --- platform/platform-api/api-dump-unreviewed.txt | 1 + .../intellij/ui/dsl/listCellRenderer/builder.kt | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/platform/platform-api/api-dump-unreviewed.txt b/platform/platform-api/api-dump-unreviewed.txt index 7a2cc4959e20..e98e0f0d19d5 100644 --- a/platform/platform-api/api-dump-unreviewed.txt +++ b/platform/platform-api/api-dump-unreviewed.txt @@ -9492,6 +9492,7 @@ f:com.intellij.ui.dsl.gridLayout.VerticalGaps$Companion - f:subGridBuilder(I,com.intellij.ui.dsl.gridLayout.HorizontalAlign,com.intellij.ui.dsl.gridLayout.VerticalAlign,Z,Z,com.intellij.ui.dsl.gridLayout.UnscaledGaps,com.intellij.ui.dsl.gridLayout.UnscaledGaps):com.intellij.ui.dsl.gridLayout.builders.RowsGridBuilder - bs:subGridBuilder$default(com.intellij.ui.dsl.gridLayout.builders.RowsGridBuilder,I,com.intellij.ui.dsl.gridLayout.HorizontalAlign,com.intellij.ui.dsl.gridLayout.VerticalAlign,Z,Z,com.intellij.ui.dsl.gridLayout.UnscaledGaps,com.intellij.ui.dsl.gridLayout.UnscaledGaps,I,java.lang.Object):com.intellij.ui.dsl.gridLayout.builders.RowsGridBuilder f:com.intellij.ui.dsl.listCellRenderer.BuilderKt +- sf:groupedTextListCellRenderer(kotlin.jvm.functions.Function1,kotlin.jvm.functions.Function1):javax.swing.ListCellRenderer - sf:listCellRenderer(kotlin.jvm.functions.Function1):javax.swing.ListCellRenderer - sf:textListCellRenderer(kotlin.jvm.functions.Function1):javax.swing.ListCellRenderer *f:com.intellij.ui.dsl.listCellRenderer.LcrIconInitParams diff --git a/platform/platform-api/src/com/intellij/ui/dsl/listCellRenderer/builder.kt b/platform/platform-api/src/com/intellij/ui/dsl/listCellRenderer/builder.kt index 0fa3135faceb..c92070f22125 100644 --- a/platform/platform-api/src/com/intellij/ui/dsl/listCellRenderer/builder.kt +++ b/platform/platform-api/src/com/intellij/ui/dsl/listCellRenderer/builder.kt @@ -33,3 +33,17 @@ fun textListCellRenderer(textExtractor: (T) -> @Nls String?): ListCellRender text(textExtractor(value) ?: "") } } + +/** + * A version of [textListCellRenderer] with separator support + */ +fun groupedTextListCellRenderer(textExtractor: (T) -> @Nls String?, separatorExtractor: (T) -> String?): ListCellRenderer { + return listCellRenderer { + text(textExtractor(value) ?: "") + separatorExtractor(value)?.let { + separator { + text = it + } + } + } +}