in src/main/java/idea/plugin/psiviewer/view/PropertySheetPanel.java [94:141]
private JScrollPane createTable(Object[][] tableData, Object[] columnTitle)
{
myTable = new JTable(tableData, columnTitle) {
public boolean isCellEditable(int row, int column) {
return false;
}
public JToolTip createToolTip() {
PropertySheetToolTip.getInstance().setComponent(this);
return PropertySheetToolTip.getInstance();
}
public String getToolTipText(@NotNull MouseEvent event) {
int col = columnAtPoint(event.getPoint());
int row = rowAtPoint(event.getPoint());
String tip = (String) getValueAt(row, col);
Graphics2D g2 = (Graphics2D) getGraphics();
Rectangle2D tipRect = getFont().getStringBounds(tip, g2.getFontRenderContext());
g2.dispose();
Rectangle visibleCell = getVisibleRect().intersection(getCellRect(row, col, false));
if (tipRect.getWidth() + 1 < visibleCell.getWidth())
tip = null; // Cell content is completely visible, so no tip is required
return tip;
}
private static final boolean INCLUDE_INTERCELL_SPACING = true;
public Point getToolTipLocation(MouseEvent event) {
int col = columnAtPoint(event.getPoint());
int row = rowAtPoint(event.getPoint());
return getCellRect(row, col, INCLUDE_INTERCELL_SPACING).getLocation();
}
}
;
myTable.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
myTable.getSelectionModel().setSelectionMode(0);
packColumn(myTable, 0, 2);
packColumn(myTable, 1, 2);
return new JBScrollPane(myTable);
}