edu.northwestern.at.utils.swing
Class TableDragMouseHandler

java.lang.Object
  extended by edu.northwestern.at.utils.swing.TableDragMouseHandler
All Implemented Interfaces:
java.awt.event.MouseListener, java.awt.event.MouseMotionListener, java.util.EventListener

public class TableDragMouseHandler
extends java.lang.Object
implements java.awt.event.MouseListener, java.awt.event.MouseMotionListener

Handles mouse events for drag and drop operations on JTable.


Field Summary
(package private)  java.awt.event.MouseEvent firstMouseEvent
          Mouse pressed event which may be initiating a drag.
 
Constructor Summary
TableDragMouseHandler()
           
 
Method Summary
 void mouseClicked(java.awt.event.MouseEvent event)
           
 void mouseDragged(java.awt.event.MouseEvent e)
          Handle mouse dragged event.
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mouseMoved(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
          Handle mouse pressed event.
 void mouseReleased(java.awt.event.MouseEvent e)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

firstMouseEvent

java.awt.event.MouseEvent firstMouseEvent
Mouse pressed event which may be initiating a drag.

Constructor Detail

TableDragMouseHandler

public TableDragMouseHandler()
Method Detail

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Handle mouse pressed event.

Specified by:
mousePressed in interface java.awt.event.MouseListener
Parameters:
e - The mouse pressed event.

Saves the mouse pressed event for later reference. The event is also consumed here.


mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent event)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mouseDragged

public void mouseDragged(java.awt.event.MouseEvent e)
Handle mouse dragged event.

Specified by:
mouseDragged in interface java.awt.event.MouseMotionListener
Parameters:
e - The mouse dragged event.

If a previous mouse pressed event occurred, we check to see if the position of the drag event is at least 5 pixels away in both the horizontal and vertical directions. If so, we determine if the drag event is a copy or a move, and initiate the drag by creating a transfer handler on the selected component.


mouseMoved

public void mouseMoved(java.awt.event.MouseEvent e)
Specified by:
mouseMoved in interface java.awt.event.MouseMotionListener