package com.quiltplayer.view.swing.labels; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import javax.swing.BorderFactory; import javax.swing.JLabel; import net.miginfocom.swing.MigLayout; import com.quiltplayer.controller.ArtistController; import com.quiltplayer.model.Artist; import com.quiltplayer.view.swing.FontFactory; import com.quiltplayer.view.swing.buttons.ScrollableAndHighlightableButton; import com.quiltplayer.view.swing.listeners.ArtistListener; import com.quiltplayer.view.swing.listeners.HighlightableMouseListener; /** * Represents a artist in lists. * * @author Vlado Palczynski */ public class ArtistNameButton extends ScrollableAndHighlightableButton { private static final long serialVersionUID = 1L; protected Artist artist; private ArtistListener artistListener; public ArtistNameButton(final Artist artist, final ArtistListener artistListener) { super(); this.artist = artist; this.artistListener = artistListener; setOpaque(false); setBackground(Color.PINK); setLayout(new MigLayout("fill, alignx left")); setBorder(BorderFactory.createEmptyBorder()); final JLabel nameLabel = new JLabel(artist.getArtistName().getName()); nameLabel.setForeground(new Color(220, 220, 200)); nameLabel.setFont(FontFactory.getFont(14f)); addMouseListener(new HighlightableMouseListener(background, this)); add(nameLabel, ""); } /* * (non-Javadoc) * * @see com.quiltplayer.view.swing.buttons.ScrollableButton#triggerAction() */ @Override protected void triggerAction() { artistListener.actionPerformed(new ActionEvent(artist, 0, ArtistController.ACTION_GET_ARTIST_ALBUMS)); } /* * (non-Javadoc) * * @see * com.quiltplayer.view.swing.buttons.ScrollableAndHighlightableButton#paintComponent(java.awt * .Graphics) */ @Override protected void paintComponent(Graphics g) { setMaximumSize(new Dimension(getWidth(), getHeight())); super.paintComponent(g); } }