From a1cec5a3779765eefe4725ef81de9b0c1ec54999 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 18 Jul 2018 14:24:07 +0200 Subject: [PATCH] NullableNotNullDialog: set table header tooltip without sun.swing.* class references --- .../codeInsight/NullableNotNullDialog.java | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/java/openapi/src/com/intellij/codeInsight/NullableNotNullDialog.java b/java/openapi/src/com/intellij/codeInsight/NullableNotNullDialog.java index ebb88eb6fe19..63b3f1929f6a 100644 --- a/java/openapi/src/com/intellij/codeInsight/NullableNotNullDialog.java +++ b/java/openapi/src/com/intellij/codeInsight/NullableNotNullDialog.java @@ -34,11 +34,11 @@ import com.intellij.util.ui.EmptyIcon; import com.intellij.util.ui.JBDimension; import com.intellij.util.ui.JBUI; import org.jetbrains.annotations.NotNull; -import sun.swing.table.DefaultTableCellHeaderRenderer; import javax.swing.*; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.DefaultTableModel; +import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import java.awt.*; import java.awt.event.ActionEvent; @@ -176,6 +176,9 @@ public class NullableNotNullDialog extends DialogWrapper { } } }, null)); + + myTable = new JBTable(myTableModel, columnModel); + if (showInstrumentationOptions) { columnModel.getColumn(0).setHeaderValue("Annotation"); @@ -183,14 +186,29 @@ public class NullableNotNullDialog extends DialogWrapper { columnModel.addColumn(checkColumn); checkColumn.setHeaderValue(" Instrument "); - DefaultTableCellHeaderRenderer renderer = new DefaultTableCellHeaderRenderer(); - renderer.setToolTipText("Add runtime assertions for notnull-annotated methods and parameters"); - checkColumn.setHeaderRenderer(renderer); + TableCellRenderer defaultRenderer = myTable.getTableHeader().getDefaultRenderer(); + + TableCellRenderer headerRenderer = new TableCellRenderer() { + @Override + public Component getTableCellRendererComponent(JTable table, + Object value, + boolean isSelected, + boolean hasFocus, + int row, + int column) { + Component component = defaultRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + if (component instanceof JComponent) { + ((JComponent)component) + .setToolTipText(column == 1 ? "Add runtime assertions for notnull-annotated methods and parameters" : null); + } + return component; + } + }; + myTable.getTableHeader().setDefaultRenderer(headerRenderer); + checkColumn.setHeaderRenderer(headerRenderer); checkColumn.sizeWidthToFit(); } - myTable = new JBTable(myTableModel, columnModel); - final AnActionButton selectButton = new AnActionButton("Select annotation used for code generation", AllIcons.Actions.Checked) { @Override