@@ -3,43 +3,56 @@ package org.digma.intellij.plugin.ui.list.insights
33import com.intellij.openapi.project.Project
44import com.intellij.ui.components.ActionLink
55import com.intellij.ui.components.JBLabel
6- import com.intellij.util.ui.JBUI
6+ import com.intellij.util.ui.JBUI.Borders.empty
7+ import org.apache.commons.lang3.StringUtils
78import org.digma.intellij.plugin.document.CodeObjectsUtil
89import org.digma.intellij.plugin.model.rest.insights.*
9- import org.digma.intellij.plugin.ui.common.Laf
10- import org.digma.intellij.plugin.ui.common.asHtml
11- import org.digma.intellij.plugin.ui.common.buildBoldTitleGrayedComment
12- import org.digma.intellij.plugin.ui.common.buildLinkTextWithTitleAndGrayedComment
10+ import org.digma.intellij.plugin.ui.common.*
1311import org.digma.intellij.plugin.ui.list.openWorkspaceFileForSpan
12+ import java.awt.BorderLayout
1413import java.awt.GridLayout
1514import java.math.BigDecimal
1615import java.math.RoundingMode
1716import javax.swing.JPanel
17+ import javax.swing.SwingConstants
1818
1919fun slowestSpansPanel (project : Project , insight : SlowestSpansInsight , moreData : HashMap <String , Any >): JPanel {
2020
21- val spansListPanel = JPanel ()
22- spansListPanel.layout = GridLayout (insight.spans.size, 1 , 0 , 3 )
23- spansListPanel.border = JBUI .Borders .empty()
24- spansListPanel.isOpaque = false
21+ val spansListPanel = createDefaultBoxLayoutYAxisPanel()
22+
2523 insight.spans.forEach { slowSpan: SlowSpanInfo ->
2624
2725 val displayName = slowSpan.spanInfo.displayName
2826 val description = descriptionOf(slowSpan)
2927 val spanId = CodeObjectsUtil .createSpanId(slowSpan.spanInfo.instrumentationLibrary, slowSpan.spanInfo.name)
3028
3129 if (moreData.contains(spanId)) {
32- val spanText = buildLinkTextWithTitleAndGrayedComment(displayName,description)
33- val link = ActionLink (spanText) {
30+ val normalizedDisplayName = StringUtils .normalizeSpace(displayName)
31+ val grayedDescription = asHtml(spanGrayed(description))
32+ val descriptionLabel = JBLabel (grayedDescription, SwingConstants .LEFT )
33+ val link = ActionLink (normalizedDisplayName) {
3434 openWorkspaceFileForSpan(project, moreData, spanId)
3535 }
3636 link.toolTipText = genToolTip(slowSpan)
37- spansListPanel.add(link)
37+
38+ val spanOneRecordPanel = getDefaultSpanOneRecordPanel()
39+ spanOneRecordPanel.add(link, BorderLayout .NORTH )
40+ spanOneRecordPanel.add(descriptionLabel, BorderLayout .SOUTH )
41+ spansListPanel.add(spanOneRecordPanel)
3842 } else {
39- val spanText = buildBoldTitleGrayedComment(displayName,description)
40- val label = JBLabel (spanText)
41- label.toolTipText = genToolTip(slowSpan)
42- spansListPanel.add(label)
43+ val normalizedDisplayName = StringUtils .normalizeSpace(displayName)
44+ val grayedDescription = asHtml(spanGrayed(description))
45+ val descriptionLabel = JBLabel (grayedDescription, SwingConstants .LEFT )
46+
47+ val displayNameLabel = JBLabel (normalizedDisplayName, SwingConstants .TRAILING )
48+ displayNameLabel.toolTipText = genToolTip(slowSpan)
49+ displayNameLabel.horizontalAlignment = SwingConstants .LEFT
50+
51+ val spanOneRecordPanel = getDefaultSpanOneRecordPanel()
52+ spanOneRecordPanel.add(displayNameLabel, BorderLayout .NORTH )
53+ spanOneRecordPanel.add(descriptionLabel, BorderLayout .SOUTH )
54+
55+ spansListPanel.add(spanOneRecordPanel)
4356 }
4457 }
4558
@@ -58,12 +71,12 @@ fun slowestSpansPanel(project: Project, insight: SlowestSpansInsight, moreData:
5871fun spanSlowEndpointsPanel (project : Project , insight : SpanSlowEndpointsInsight ): JPanel {
5972 val endpointsListPanel = JPanel ()
6073 endpointsListPanel.layout = GridLayout (insight.slowEndpoints.size, 1 , 0 , 3 )
61- endpointsListPanel.border = JBUI . Borders . empty()
74+ endpointsListPanel.border = empty()
6275 endpointsListPanel.isOpaque = false
6376
6477 insight.slowEndpoints.forEach {slowEndpointInfo ->
6578 val currContainerPanel = JPanel (GridLayout (2 , 1 , 0 , 3 ))
66- endpointsListPanel.border = JBUI . Borders . empty()
79+ endpointsListPanel.border = empty()
6780 currContainerPanel.isOpaque = false
6881
6982 val routeInfo = EndpointSchema .getRouteInfo(slowEndpointInfo.endpointInfo.route)
@@ -134,6 +147,13 @@ private fun percentageForDisplaySlowSpanInfo(percentile: Percentile): String {
134147 return decimal.toPlainString()
135148}
136149
150+ private fun getDefaultSpanOneRecordPanel (): JPanel {
151+ val spanOneRecordPanel = JPanel (BorderLayout ())
152+ spanOneRecordPanel.border = empty(5 , 0 , 0 , 0 )
153+ spanOneRecordPanel.isOpaque = false
154+ return spanOneRecordPanel
155+ }
156+
137157fun genToolTip (span : SlowSpanInfo ): String {
138158 return asHtml(span.spanInfo.displayName)
139159// """
0 commit comments