Skip to content

Commit b4fd550

Browse files
#241 set limitation of duration breakdown items dynamically
1 parent d894643 commit b4fd550

File tree

1 file changed

+14
-20
lines changed

1 file changed

+14
-20
lines changed

src/main/kotlin/org/digma/intellij/plugin/ui/list/insights/DurationBreakdownPanel.kt

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@ package org.digma.intellij.plugin.ui.list.insights
22

33
import com.intellij.openapi.project.Project
44
import com.intellij.ui.components.ActionLink
5+
import com.intellij.ui.components.JBPanel
56
import com.intellij.util.ui.JBUI.Borders.empty
7+
import org.apache.commons.lang3.StringUtils
68
import org.digma.intellij.plugin.document.CodeObjectsUtil
79
import org.digma.intellij.plugin.model.rest.insights.SpanDurationBreakdown
810
import org.digma.intellij.plugin.model.rest.insights.SpanDurationBreakdownInsight
9-
import org.digma.intellij.plugin.ui.common.*
11+
import org.digma.intellij.plugin.ui.common.Laf
12+
import org.digma.intellij.plugin.ui.common.asHtml
13+
import org.digma.intellij.plugin.ui.common.boldFonts
1014
import org.digma.intellij.plugin.ui.list.openWorkspaceFileForSpan
1115
import org.digma.intellij.plugin.ui.panels.DigmaResettablePanel
1216
import java.awt.BorderLayout
@@ -88,10 +92,9 @@ fun durationBreakdownRowPanel(
8892
val spanDisplayNameLabel = getSpanDisplayNameLabel(durationBreakdown, project, moreData)
8993
val breakdownDurationLabelPanel = getBreakdownDurationLabel(durationBreakdown)
9094

91-
durationBreakdownPanel.add(telescopeIconLabel)
92-
durationBreakdownPanel.add(spanDisplayNameLabel)
93-
durationBreakdownPanel.add(Box.createHorizontalGlue())
94-
durationBreakdownPanel.add(breakdownDurationLabelPanel)
95+
durationBreakdownPanel.add(telescopeIconLabel, BorderLayout.WEST)
96+
durationBreakdownPanel.add(spanDisplayNameLabel, BorderLayout.CENTER)
97+
durationBreakdownPanel.add(breakdownDurationLabelPanel, BorderLayout.EAST)
9598

9699
return durationBreakdownPanel
97100
}
@@ -156,8 +159,8 @@ private fun updateDurationBreakdownPanel(durationBreakdownEntries: List<SpanDura
156159
}
157160

158161
private fun getDurationBreakdownPanel(): JPanel {
159-
val durationBreakdownPanel = JPanel()
160-
durationBreakdownPanel.layout = BoxLayout(durationBreakdownPanel, BoxLayout.LINE_AXIS)
162+
val durationBreakdownPanel = JBPanel<JBPanel<*>>()
163+
durationBreakdownPanel.layout = BorderLayout(5, 0)
161164
durationBreakdownPanel.border = empty()
162165
durationBreakdownPanel.isOpaque = false
163166
return durationBreakdownPanel
@@ -177,17 +180,16 @@ private fun getSpanDisplayNameLabel(
177180
moreData: HashMap<String, Any>,
178181
): JComponent {
179182
val spanId = CodeObjectsUtil.createSpanId(durationBreakdown.spanInstrumentationLibrary, durationBreakdown.spanName)
180-
val fullDisplayName = durationBreakdown.spanDisplayName
181-
val limitedDisplayName = asHtml(takeOnlyFirstNCharactersFromString(fullDisplayName, 30))
183+
val trimmedDisplayName = StringUtils.normalizeSpace(durationBreakdown.spanDisplayName)
182184

183185
val messageLabel = if (moreData.contains(spanId)) {
184-
ActionLink(limitedDisplayName) {
186+
ActionLink(trimmedDisplayName) {
185187
openWorkspaceFileForSpan(project, moreData, spanId)
186188
}
187189
} else {
188-
JLabel(limitedDisplayName)
190+
JLabel(trimmedDisplayName)
189191
}
190-
messageLabel.toolTipText = asHtml(fullDisplayName)
192+
messageLabel.toolTipText = asHtml(trimmedDisplayName)
191193
messageLabel.border = empty(0, 5, 5, 0)
192194
messageLabel.isOpaque = false
193195

@@ -233,11 +235,3 @@ private fun getTooltipForDurationLabel(breakdownEntry: SpanDurationBreakdown): S
233235
}
234236
return asHtml(tooltip)
235237
}
236-
237-
fun takeOnlyFirstNCharactersFromString(originalString: String, limit: Int): String {
238-
return if (originalString.length > limit) {
239-
originalString.trim().take(30) + " ..."
240-
} else {
241-
originalString
242-
}
243-
}

0 commit comments

Comments
 (0)