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