package com.quiltplayer.controller;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.quiltplayer.external.lyrics.LyricsEvent;
import com.quiltplayer.external.lyrics.LyricsListener;
import com.quiltplayer.external.lyrics.LyricsService;
import com.quiltplayer.external.lyrics.Status;
import com.quiltplayer.model.Song;
import com.quiltplayer.view.swing.frame.QuiltPlayerFrame;
/**
* Controller handling lyrics.
*
* @author Vlado Palczynski
*
*/
@Controller
public class LyricsController implements ActionListener, LyricsListener {
@Autowired
private LyricsService lyricsService;
@Autowired
private QuiltPlayerFrame frame;
/*
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
@Override
public final void actionPerformed(final ActionEvent e) {
final String cmd = e.getActionCommand();
if (PlayerController.PlayerEvents.PLAYING.toString() == cmd) {
Song song = (Song) e.getSource();
lyricsService.getLyrics(song.getAlbum().getArtist().getArtistName().getNameForSearches(), song.getTitle());
}
}
/*
* @see com.quiltplayer.core.lyrics.LyricsListener#lyricsEvent(com.quiltplayer
* .core.lyrics.LyricsEvent)
*/
@Override
public final void lyricsEvent(final LyricsEvent e) {
if (e.getStatus() == Status.FOUND) {
frame.lyricsPlaylistPanel.setLyrics(e.getLyrics());
frame.lyricsPlaylistPanel.repaint();
}
else if (e.getStatus() == Status.NOT_FOUND || e.getStatus() == Status.ERROR) {
frame.lyricsPlaylistPanel.setLyrics("None found...");
frame.lyricsPlaylistPanel.repaint();
}
}
}