changeset 1995:116f7c9007cc

Fix profiler with no profiling data available Backport of 864719b0d1a0 from HEAD. PR3064 Reviewed-by: jerboaa Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2016-June/019971.html
author Alex Macdonald <almacdon@redhat.com>
date Wed, 29 Jun 2016 10:37:20 -0400
parents 121607fc9843
children df9c589c6e0c
files vm-profiler/client-swing/src/main/java/com/redhat/thermostat/vm/profiler/client/swing/internal/SwingVmProfileView.java
diffstat 1 files changed, 24 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/vm-profiler/client-swing/src/main/java/com/redhat/thermostat/vm/profiler/client/swing/internal/SwingVmProfileView.java	Tue Mar 15 11:36:35 2016 -0400
+++ b/vm-profiler/client-swing/src/main/java/com/redhat/thermostat/vm/profiler/client/swing/internal/SwingVmProfileView.java	Wed Jun 29 10:37:20 2016 -0400
@@ -239,13 +239,17 @@
             }
         };
 
+        final SimpleTextRenderer simpleRenderer = new SimpleTextRenderer();
         final PlainTextMethodDeclarationRenderer plainRenderer = new PlainTextMethodDeclarationRenderer();
         final SyntaxHighlightedMethodDeclarationRenderer colorRenderer = new SyntaxHighlightedMethodDeclarationRenderer();
 
         profileTable = new ThermostatTable(tableModel) {
             public javax.swing.table.TableCellRenderer getCellRenderer(int row, int column) {
                 if (column == COLUMN_METHOD_NAME) {
-                    if (profileTable.isCellSelected(row, column)) {
+                    if(tableModel.getRowCount() == 1 && tableModel.getValueAt(0,0).equals(
+                            translator.localize(LocaleResources.PROFILER_NO_RESULTS).getContents())) {
+                        return simpleRenderer;
+                    } else if (profileTable.isCellSelected(row, column)) {
                         return plainRenderer;
                     } else {
                         return colorRenderer;
@@ -416,6 +420,21 @@
         return mainContainer;
     }
 
+    static class SimpleTextRenderer extends ThermostatTableRenderer {
+
+        @Override
+        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
+                                                       boolean hasFocus, int row, int column) {
+
+            if (!(value instanceof String)) {
+                throw new AssertionError("Unexpected value");
+            }
+
+            return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row,
+                    column);
+        }
+    }
+
     static class PlainTextMethodDeclarationRenderer extends ThermostatTableRenderer {
 
         @Override
@@ -497,8 +516,10 @@
                 window.setVisible(true);
 
                 List<MethodInfo> data = new ArrayList<>();
-                data.add(new MethodInfo(new MethodDeclaration("foo", list("int"), "int"), 1000, 1.0));
-                data.add(new MethodInfo(new MethodDeclaration("bar", list("foo.bar.Baz", "int"), "Bar"), 100000, 100));
+                data.add(new MethodInfo(new MethodDeclaration(
+                        "foo", list("int"), "int"), 1000, 1.0));
+                data.add(new MethodInfo(new MethodDeclaration(
+                        "bar", list("foo.bar.Baz", "int"), "Bar"), 100000, 100));
                 ProfilingResult results = new ProfilingResult(data);
                 view.setProfilingDetailData(results);
             }