--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java Tue May 25 20:39:52 2010 +0400
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java Tue May 25 20:54:59 2010 +0400
@@ -98,15 +98,18 @@
private Cursor otherCursor = resizeCursor;
public void mouseClicked(MouseEvent e) {
+ if (SwingUtilities2.shouldIgnore(e, header)) {
+ return;
+ }
if (e.getClickCount() % 2 == 1 &&
- SwingUtilities.isLeftMouseButton(e)){
+ SwingUtilities.isLeftMouseButton(e)) {
JTable table = header.getTable();
RowSorter sorter;
if (table != null && (sorter = table.getRowSorter()) != null) {
int columnIndex = header.columnAtPoint(e.getPoint());
if (columnIndex != -1) {
columnIndex = table.convertColumnIndexToModel(
- columnIndex);
+ columnIndex);
sorter.toggleSortOrder(columnIndex);
}
}
@@ -140,6 +143,9 @@
}
public void mousePressed(MouseEvent e) {
+ if (SwingUtilities2.shouldIgnore(e, header)) {
+ return;
+ }
header.setDraggedColumn(null);
header.setResizingColumn(null);
header.setDraggedDistance(0);
@@ -182,6 +188,9 @@
}
public void mouseMoved(MouseEvent e) {
+ if (SwingUtilities2.shouldIgnore(e, header)) {
+ return;
+ }
if (canResize(getResizingColumn(e.getPoint()), header) !=
(header.getCursor() == resizeCursor)) {
swapCursor();
@@ -190,6 +199,9 @@
}
public void mouseDragged(MouseEvent e) {
+ if (SwingUtilities2.shouldIgnore(e, header)) {
+ return;
+ }
int mouseX = e.getX();
TableColumn resizingColumn = header.getResizingColumn();
@@ -217,21 +229,23 @@
if (0 <= newColumnIndex && newColumnIndex < cm.getColumnCount()) {
int width = cm.getColumn(newColumnIndex).getWidth();
if (Math.abs(draggedDistance) > (width / 2)) {
- JTable table = header.getTable();
mouseXOffset = mouseXOffset + direction * width;
header.setDraggedDistance(draggedDistance - direction * width);
//Cache the selected column.
- int selectedIndex = table.convertColumnIndexToModel(
- getSelectedColumnIndex());
+ int selectedIndex =
+ SwingUtilities2.convertColumnIndexToModel(
+ header.getColumnModel(),
+ getSelectedColumnIndex());
//Now do the move.
cm.moveColumn(columnIndex, newColumnIndex);
//Update the selected index.
selectColumn(
- table.convertColumnIndexToView(selectedIndex),
+ SwingUtilities2.convertColumnIndexToView(
+ header.getColumnModel(), selectedIndex),
false);
return;
@@ -244,6 +258,9 @@
}
public void mouseReleased(MouseEvent e) {
+ if (SwingUtilities2.shouldIgnore(e, header)) {
+ return;
+ }
setDraggedDistance(0, viewIndexForColumn(header.getDraggedColumn()));
header.setResizingColumn(null);
@@ -253,10 +270,16 @@
}
public void mouseEntered(MouseEvent e) {
+ if (SwingUtilities2.shouldIgnore(e, header)) {
+ return;
+ }
updateRolloverColumn(e);
}
public void mouseExited(MouseEvent e) {
+ if (SwingUtilities2.shouldIgnore(e, header)) {
+ return;
+ }
int oldRolloverColumn = rolloverColumn;
rolloverColumn = -1;
rolloverColumnUpdated(oldRolloverColumn, rolloverColumn);