dom elements highlighting
[fedora-idea.git] / ui / impl / com / intellij / ui / TableToolTipHandler.java
blob1304f0aa420024399900c0b6db9308fa9cbe74e3
1 package com.intellij.ui;
3 import javax.swing.*;
4 import java.awt.*;
6 public class TableToolTipHandler extends AbstractToolTipHandler<TableCellKey, JTable> {
7 protected TableToolTipHandler(JTable table) {
8 super(table);
11 public static void install(JTable table) {
12 new TableToolTipHandler(table);
15 public Rectangle getCellBounds(TableCellKey tableCellKey, Component rendererComponent) {
16 Rectangle cellRect = getCellRect(tableCellKey);
17 cellRect.width = rendererComponent.getPreferredSize().width;
18 return cellRect;
21 private Rectangle getCellRect(TableCellKey tableCellKey) {
22 return myComponent.getCellRect(tableCellKey.myRowIndex, tableCellKey.myColumnIndex, false);
25 public Component getRendererComponent(TableCellKey key) {
26 int modelColumnIndex = myComponent.convertColumnIndexToModel(key.myColumnIndex);
27 return myComponent.getCellRenderer(key.myRowIndex, key.myColumnIndex).
28 getTableCellRendererComponent(myComponent,
29 myComponent.getModel().getValueAt(key.myRowIndex, modelColumnIndex),
30 myComponent.getSelectionModel().isSelectedIndex(key.myRowIndex),
31 myComponent.hasFocus(),
32 key.myRowIndex,key.myColumnIndex
36 public Rectangle getVisibleRect(TableCellKey key) {
37 Rectangle columnVisibleRect = myComponent.getVisibleRect();
38 Rectangle cellRect = getCellRect(key);
39 int visibleRight = Math.min(columnVisibleRect.x + columnVisibleRect.width, cellRect.x + cellRect.width);
40 columnVisibleRect.x = Math.min(columnVisibleRect.x, cellRect.x);
41 columnVisibleRect.width = Math.max(0, visibleRight - columnVisibleRect.x);
42 return columnVisibleRect;
45 //private Rectangle getColumnRectangle(int columnIndex) {
46 // TableColumnModel cm = getColumnModel();
47 // if (getComponentOrientation().isLeftToRight()) {
48 // for (int i = 0; i < column; i++) {
49 // r.x += cm.getColumn(i).getWidth();
50 // }
51 // }
52 // else {
53 // for (int i = cm.getColumnCount() - 1; i > column; i--) {
54 // r.x += cm.getColumn(i).getWidth();
55 // }
56 // }
57 // r.width = cm.getColumn(column).getWidth();
58 //}
60 public TableCellKey getCellKeyForPoint(Point point) {
61 int rowIndex = myComponent.rowAtPoint(point);
62 if (rowIndex == -1) {
63 return null;
66 int columnIndex = myComponent.columnAtPoint(point); // column index in visible coordinates
67 if (columnIndex == -1) {
68 return null;
71 return new TableCellKey(rowIndex, columnIndex);