Lines 75-80
Link Here
|
75 |
import javax.swing.JPopupMenu; |
75 |
import javax.swing.JPopupMenu; |
76 |
import javax.swing.JScrollPane; |
76 |
import javax.swing.JScrollPane; |
77 |
import javax.swing.JTable; |
77 |
import javax.swing.JTable; |
|
|
78 |
import javax.swing.JToolTip; |
78 |
import javax.swing.JViewport; |
79 |
import javax.swing.JViewport; |
79 |
import javax.swing.KeyStroke; |
80 |
import javax.swing.KeyStroke; |
80 |
import javax.swing.ListSelectionModel; |
81 |
import javax.swing.ListSelectionModel; |
Lines 1139-1144
Link Here
|
1139 |
this.treeSortable = treeSortable; |
1140 |
this.treeSortable = treeSortable; |
1140 |
} |
1141 |
} |
1141 |
|
1142 |
|
|
|
1143 |
private JToolTip toolTip = null; |
1144 |
|
1145 |
@Override |
1146 |
public String getToolTipText(MouseEvent event) { |
1147 |
try { |
1148 |
// Required to really get the tooltip text: |
1149 |
putClientProperty("ComputingTooltip", Boolean.TRUE); |
1150 |
|
1151 |
toolTip = null; |
1152 |
String tipText = null; |
1153 |
Point p = event.getPoint(); |
1154 |
|
1155 |
// Locate the renderer under the event location |
1156 |
int hitColumnIndex = columnAtPoint(p); |
1157 |
int hitRowIndex = rowAtPoint(p); |
1158 |
|
1159 |
if ((hitColumnIndex != -1) && (hitRowIndex != -1)) { |
1160 |
TableCellRenderer renderer = getCellRenderer(hitRowIndex, hitColumnIndex); |
1161 |
Component component = prepareRenderer(renderer, hitRowIndex, hitColumnIndex); |
1162 |
|
1163 |
// Now have to see if the component is a JComponent before |
1164 |
// getting the tip |
1165 |
if (component instanceof JComponent) { |
1166 |
// Convert the event to the renderer's coordinate system |
1167 |
Rectangle cellRect = getCellRect(hitRowIndex, hitColumnIndex, false); |
1168 |
p.translate(-cellRect.x, -cellRect.y); |
1169 |
MouseEvent newEvent = new MouseEvent(component, event.getID(), |
1170 |
event.getWhen(), event.getModifiers(), |
1171 |
p.x, p.y, |
1172 |
event.getXOnScreen(), |
1173 |
event.getYOnScreen(), |
1174 |
event.getClickCount(), |
1175 |
event.isPopupTrigger(), |
1176 |
MouseEvent.NOBUTTON); |
1177 |
|
1178 |
tipText = ((JComponent)component).getToolTipText(newEvent); |
1179 |
toolTip = ((JComponent)component).createToolTip(); |
1180 |
} |
1181 |
} |
1182 |
|
1183 |
// No tip from the renderer get our own tip |
1184 |
if (tipText == null) |
1185 |
tipText = getToolTipText(); |
1186 |
|
1187 |
return tipText; |
1188 |
} finally { |
1189 |
putClientProperty("ComputingTooltip", Boolean.FALSE); |
1190 |
} |
1191 |
//return super.getToolTipText(event); |
1192 |
} |
1193 |
|
1194 |
@Override |
1195 |
public JToolTip createToolTip() { |
1196 |
JToolTip t = toolTip; |
1197 |
toolTip = null; |
1198 |
if (t != null) { |
1199 |
return t; |
1200 |
} else { |
1201 |
return super.createToolTip(); |
1202 |
} |
1203 |
} |
1204 |
|
1205 |
|
1206 |
|
1142 |
/** |
1207 |
/** |
1143 |
* Extension of ETableColumn using TableViewRowComparator as |
1208 |
* Extension of ETableColumn using TableViewRowComparator as |
1144 |
* comparator. |
1209 |
* comparator. |