jdk/src/share/classes/javax/swing/plaf/basic/BasicTableHeaderUI.java
changeset 5590 3ec077d7e893
parent 4394 92a8ec883f5d
child 5595 27cbc0c6ba34
--- 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);