From 28bdc2fb50a6157667b7522cd1732b3d4e089fd3 Mon Sep 17 00:00:00 2001 From: Fredrik Osterlind Date: Thu, 1 Mar 2012 16:37:26 +0100 Subject: [PATCH] bugfixed stacktrace tooltip --- .../se/sics/cooja/plugins/BufferListener.java | 46 ++++++++++--------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/tools/cooja/java/se/sics/cooja/plugins/BufferListener.java b/tools/cooja/java/se/sics/cooja/plugins/BufferListener.java index 58fd675bf..6e4323650 100644 --- a/tools/cooja/java/se/sics/cooja/plugins/BufferListener.java +++ b/tools/cooja/java/se/sics/cooja/plugins/BufferListener.java @@ -335,14 +335,17 @@ public class BufferListener extends VisPlugin { java.awt.Point p = e.getPoint(); int rowIndex = rowAtPoint(p); int colIndex = columnAtPoint(p); - int columnIndex = convertColumnIndexToModel(colIndex); - if (rowIndex < 0 || columnIndex < 0) { + if (rowIndex < 0 || colIndex < 0) { + return super.getToolTipText(e); + } + int row = convertRowIndexToModel(rowIndex); + int column = convertColumnIndexToModel(colIndex); + if (row < 0 || column < 0) { return super.getToolTipText(e); } - Object v = getValueAt(rowIndex, columnIndex); - if (columnIndex == COLUMN_SOURCE) { - BufferAccess ba = logs.get(rowIndex); + if (column == COLUMN_SOURCE) { + BufferAccess ba = logs.get(row); if (ba.stackTrace != null) { return "
" +
@@ -351,24 +354,25 @@ public class BufferListener extends VisPlugin {
           }
           return "No stack trace (enable in popup menu)";
         }
-        if (v instanceof BufferAccess && parser instanceof GraphicalParser) {
-          return
-          "" + 
-          StringUtils.hexDump(((BufferAccess)v).mem, 4, 4).replaceAll("\n", "
") + - ""; - } - if (v != null) { - String t = v.toString(); - if (t.length() > 60) { - StringBuilder sb = new StringBuilder(); - sb.append(""); - do { - sb.append(t.substring(0, 60)).append("
"); - t = t.substring(60); - } while (t.length() > 60); - return sb.append(t).append("").toString(); + if (column == COLUMN_DATA) { + BufferAccess ba = logs.get(row); + if (parser instanceof GraphicalParser) { + return + "
" +
+            StringUtils.hexDump(ba.mem, 4, 4) +
+            "
"; } + + String baString = ba.getParsedString(); + StringBuilder sb = new StringBuilder(); + sb.append(""); + while (baString.length() > 60) { + sb.append(baString.substring(0, 60)).append("
"); + baString = baString.substring(60); + }; + return sb.append(baString).append("").toString(); } + return super.getToolTipText(e); } };