Use short version of expression for the qualifier tab in trace window

This commit is contained in:
Vitaliy.Bibaev
2017-11-06 21:19:21 +03:00
parent 88a144f6b7
commit b984f44530
2 changed files with 11 additions and 1 deletions
@@ -66,7 +66,8 @@ public class EvaluationAwareTraceWindow extends DialogWrapper {
myTabContents = new ArrayList<>();
final QualifierExpression qualifierExpression = chain.getQualifierExpression();
final MyPlaceholder firstTab = new MyPlaceholder();
myTabsPane.insertTab("qualifier", AllIcons.Debugger.StreamDebugger.Tab, firstTab, qualifierExpression.getText(), 0);
myTabsPane.insertTab(TraceUtil.formatQualifierExpression(qualifierExpression.getText(), 30),
AllIcons.Debugger.StreamDebugger.Tab, firstTab, qualifierExpression.getText(), 0);
myTabContents.add(firstTab);
for (int i = 0, chainLength = chain.length(); i < chainLength; i++) {
@@ -44,4 +44,13 @@ public class TraceUtil {
.map(x -> StringUtil.shortenTextWithEllipsis(x.getText().replaceAll("\\s", ""), 30, 5, THREE_DOTS))
.joining(", ", "(", ")");
}
@NotNull
public static String formatQualifierExpression(@NotNull String expression, int maxLength) {
expression = expression.replaceAll("\\s", "").replaceAll(",", ", ");
if (expression.length() < maxLength) return expression;
if (expression.isEmpty()) return "qualifier";
return StringUtil.shortenTextWithEllipsis(expression, maxLength - 8, 5, THREE_DOTS);
}
}