1 package com.melloware.jukes.gui.view.component;
2
3 import java.awt.Component;
4
5 import javax.swing.JLabel;
6 import javax.swing.JList;
7 import javax.swing.ListCellRenderer;
8
9 import com.melloware.jukes.db.orm.Track;
10 import com.melloware.jukes.gui.tool.Settings;
11
12
13
14
15
16
17
18
19 public final class PlaylistCellRenderer
20 extends JLabel
21 implements ListCellRenderer {
22
23 public final Settings settings;
24
25
26
27
28 public PlaylistCellRenderer() {
29 super();
30 this.settings = null;
31 }
32
33
34
35
36 public PlaylistCellRenderer(Settings aSettings) {
37 super();
38 this.settings = aSettings;
39 }
40
41
42
43
44
45 public Component getListCellRendererComponent(final JList list,
46 final Object value,
47 final int index,
48 final boolean isSelected,
49 final boolean cellHasFocus) {
50
51 final Track track = (Track)value;
52
53
54 final StringBuffer sbText = new StringBuffer();
55 sbText.append(' ');
56 sbText.append(track.getDisc().getArtist().getName());
57 sbText.append(" - ");
58 sbText.append(track.getName());
59 sbText.append(" (");
60 sbText.append(track.getDurationTime());
61 sbText.append(") ");
62 this.setText(sbText.toString());
63
64
65 final StringBuffer sbTooltip = new StringBuffer();
66 sbTooltip.append(' ');
67 sbTooltip.append(track.getDisc().getArtist().getName());
68 sbTooltip.append(" - ");
69 sbTooltip.append(track.getDisc().getName());
70 sbTooltip.append(" - ");
71 sbTooltip.append(track.getName());
72 sbTooltip.append(" [");
73 sbTooltip.append(track.getDurationTime());
74 sbTooltip.append("] ");
75 this.setToolTipText(sbTooltip.toString());
76
77 if (isSelected) {
78 setBackground(list.getSelectionBackground());
79 setForeground(list.getSelectionForeground());
80 } else {
81 setBackground(list.getBackground());
82 setForeground(list.getForeground());
83 }
84 setEnabled(list.isEnabled());
85 setOpaque(true);
86 return this;
87 }
88
89 }