package com.github.pfichtner.jrunalyser.ui.base.components; import java.awt.Component; import java.awt.Cursor; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import com.github.pfichtner.jrunalyser.base.data.track.Track; import com.github.pfichtner.jrunalyser.ui.dock.ebus.TrackLoaded; import com.google.common.eventbus.EventBus; public class LoadTrackMouseListener extends MouseAdapter { private final Track track; private final EventBus eventBus; private Cursor oldPointer; public LoadTrackMouseListener(Track track, EventBus eventBus) { this.track = track; this.eventBus = eventBus; } @Override public void mouseEntered(MouseEvent e) { this.oldPointer = ((Component) e.getSource()).getCursor(); ((Component) e.getSource()) .setCursor(new Cursor(Cursor.HAND_CURSOR)); } @Override public void mouseClicked(MouseEvent e) { this.eventBus.post(new TrackLoaded(this.track)); } @Override public void mouseExited(MouseEvent e) { ((Component) e.getSource()).setCursor(this.oldPointer); } }