From 2557bfd59f9ca9a7315a0bc79433ecb6ba53fa8b Mon Sep 17 00:00:00 2001 From: "Vedana.Voronina" Date: Thu, 11 Apr 2024 11:31:25 +0000 Subject: [PATCH] vedana.voronina/merge_buttons [collab/space] IDEA-285010: Merge buttons & merge options Merge-request: IJ-MR-130712 Merged-by: Veda Voronina GitOrigin-RevId: 2cee1e2e793e01891bc6a5d9c68f6eb94450e012 --- .../collaboration-tools/api-dump-unreviewed.txt | 1 + .../CodeReviewDetailsStatusComponentFactory.kt | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/platform/collaboration-tools/api-dump-unreviewed.txt b/platform/collaboration-tools/api-dump-unreviewed.txt index c1db8988e3ed..0b3be0fcc442 100644 --- a/platform/collaboration-tools/api-dump-unreviewed.txt +++ b/platform/collaboration-tools/api-dump-unreviewed.txt @@ -1053,6 +1053,7 @@ f:com.intellij.collaboration.messages.CollaborationToolsBundle - f:ReviewDetailsStatusLabel(java.lang.String):javax.swing.JLabel - f:createCiComponent(kotlinx.coroutines.CoroutineScope,com.intellij.collaboration.ui.codereview.details.model.CodeReviewStatusViewModel):javax.swing.JComponent - f:createConflictsComponent(kotlinx.coroutines.CoroutineScope,kotlinx.coroutines.flow.Flow):javax.swing.JComponent +- f:createMergeClarificationComponent(kotlinx.coroutines.CoroutineScope,kotlinx.coroutines.flow.Flow):javax.swing.JComponent - f:createNeedReviewerComponent(kotlinx.coroutines.CoroutineScope,kotlinx.coroutines.flow.Flow):javax.swing.JComponent - f:createRequiredResolveConversationsComponent(kotlinx.coroutines.CoroutineScope,kotlinx.coroutines.flow.Flow):javax.swing.JComponent - f:createRequiredReviewsComponent(kotlinx.coroutines.CoroutineScope,kotlinx.coroutines.flow.Flow,kotlinx.coroutines.flow.Flow):javax.swing.JComponent diff --git a/platform/collaboration-tools/src/com/intellij/collaboration/ui/codereview/details/CodeReviewDetailsStatusComponentFactory.kt b/platform/collaboration-tools/src/com/intellij/collaboration/ui/codereview/details/CodeReviewDetailsStatusComponentFactory.kt index 3e9d207e28ff..189475c059b5 100644 --- a/platform/collaboration-tools/src/com/intellij/collaboration/ui/codereview/details/CodeReviewDetailsStatusComponentFactory.kt +++ b/platform/collaboration-tools/src/com/intellij/collaboration/ui/codereview/details/CodeReviewDetailsStatusComponentFactory.kt @@ -3,10 +3,10 @@ package com.intellij.collaboration.ui.codereview.details import com.intellij.collaboration.async.launchNow import com.intellij.collaboration.messages.CollaborationToolsBundle +import com.intellij.collaboration.ui.CollaborationToolsUIUtil import com.intellij.collaboration.ui.HorizontalListPanel import com.intellij.collaboration.ui.VerticalListPanel import com.intellij.collaboration.ui.codereview.avatar.Avatar -import com.intellij.collaboration.ui.codereview.avatar.CodeReviewAvatarUtils import com.intellij.collaboration.ui.codereview.details.data.CodeReviewCIJob import com.intellij.collaboration.ui.codereview.details.data.CodeReviewCIJobState import com.intellij.collaboration.ui.codereview.details.data.ReviewState @@ -15,6 +15,7 @@ import com.intellij.collaboration.ui.codereview.list.search.ChooserPopupUtil import com.intellij.collaboration.ui.codereview.list.search.PopupConfig import com.intellij.collaboration.ui.codereview.list.search.ShowDirection import com.intellij.collaboration.ui.icon.CIBuildStatusIcons +import com.intellij.collaboration.ui.util.DimensionRestrictions import com.intellij.collaboration.ui.util.bindIconIn import com.intellij.collaboration.ui.util.bindTextIn import com.intellij.collaboration.ui.util.bindVisibilityIn @@ -37,6 +38,7 @@ import java.awt.Point import javax.swing.Icon import javax.swing.JComponent import javax.swing.JLabel +import javax.swing.JTextPane object CodeReviewDetailsStatusComponentFactory { private const val STATUS_COMPONENT_BORDER = 5 @@ -62,6 +64,19 @@ object CodeReviewDetailsStatusComponentFactory { } } + fun createMergeClarificationComponent(scope: CoroutineScope, clarification: Flow): JComponent { + val panel = JTextPane().apply { + name = "Code review status: merge clarification" + isOpaque = false + + bindTextIn(scope, clarification) + bindVisibilityIn(scope, clarification.map { it.isNotEmpty() }) + } + return CollaborationToolsUIUtil.wrapWithLimitedSize(panel, DimensionRestrictions.LinesHeight(panel, 2)).apply { + border = JBUI.Borders.empty(STATUS_COMPONENT_BORDER, 0) + } + } + fun createNeedReviewerComponent(scope: CoroutineScope, reviewersReview: Flow>): JComponent { return ReviewDetailsStatusLabel("Code review status: need reviewer").apply { border = JBUI.Borders.empty(STATUS_COMPONENT_BORDER, 0)