package org.limewire.ui.swing.listener;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import javax.swing.JComponent;
public class ActionHandListener extends MouseActionListener {
public ActionHandListener(ActionListener actionListener) {
super(actionListener);
}
public ActionHandListener() {
this(null);
}
@Override
public void mouseEntered(MouseEvent e) {
JComponent comp = (JComponent) e.getComponent();
if (!Boolean.TRUE.equals(comp.getClientProperty("limewire.actionHand.disabled"))) {
Container topLevelContainer = comp.getTopLevelAncestor();
if(topLevelContainer != null) {
topLevelContainer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
} else {
comp.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
}
}
@Override
public void mouseExited(MouseEvent e) {
JComponent comp = (JComponent) e.getComponent();
Container topLevelContainer = comp.getTopLevelAncestor();
if(topLevelContainer != null) {
topLevelContainer.setCursor(Cursor.getDefaultCursor());
} else {
comp.setCursor(Cursor.getDefaultCursor());
}
}
/** Resets cursor to default for specified component. */
public static void resetDefaultCursor(JComponent comp) {
Container topLevelContainer = comp.getTopLevelAncestor();
if(topLevelContainer != null) {
topLevelContainer.setCursor(Cursor.getDefaultCursor());
} else {
comp.setCursor(Cursor.getDefaultCursor());
}
}
/** Disables or re-enables the action hand from drawing. */
public static void setActionHandDrawingDisabled(JComponent component, boolean disabled) {
component.putClientProperty("limewire.actionHand.disabled", disabled);
}
}