package com.quiltplayer.view.swing.views.impl;
import java.util.List;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import net.miginfocom.swing.MigLayout;
import org.jdesktop.jxlayer.JXLayer;
import org.springframework.beans.factory.annotation.Autowired;
import com.quiltplayer.core.repo.ArtistRepository;
import com.quiltplayer.model.Artist;
import com.quiltplayer.properties.Configuration;
import com.quiltplayer.view.swing.layers.JScrollPaneLayerUI;
import com.quiltplayer.view.swing.listeners.ArtistListener;
import com.quiltplayer.view.swing.panels.AlfabeticArtistPane;
import com.quiltplayer.view.swing.panels.QScrollPane;
import com.quiltplayer.view.swing.panels.QScrollPane.ScrollDirection;
import com.quiltplayer.view.swing.views.ArtistView;
/**
* My implementation of the artist view.
*
* @author Vlado Palczynski
*/
@org.springframework.stereotype.Component
public class DefaultArtistView implements ArtistView {
private static final long serialVersionUID = 1L;
@Autowired
private ArtistListener artistListener;
@Autowired
private ArtistRepository artistRepository;
/*
* @see org.coverok.gui.components.AlbumView#close()
*/
@Override
public void close() {
}
/*
* @see org.coverok.gui.components.AlbumView#getUI()
*/
@Override
public JComponent getUI() {
return getAlfabeticArtistComponent();
}
private JComponent getAlfabeticArtistComponent() {
final JPanel panel = new JPanel();
/* Otherwise gray */
panel.setOpaque(true);
panel.setLayout(new MigLayout("ins 1cm 2cm 0cm 2cm, wrap "
+ Configuration.getInstance().getGridProperties().getArtistGrid()));
if (artistRepository.getArtistsByChars() != null) {
for (String character : artistRepository.getArtistsByChars().keySet()) {
List<Artist> albumSet = artistRepository.getArtistsByChars().get(character);
AlfabeticArtistPane p = new AlfabeticArtistPane();
p.addActionListener(artistListener);
p.setup(character, albumSet);
panel.add(p, "top, push, growx");
}
}
final JXLayer<JScrollPane> jx = new JXLayer<JScrollPane>(new QScrollPane(panel, ScrollDirection.VERTICAL),
new JScrollPaneLayerUI());
return jx;
}
}