View Javadoc

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   * Custom DisclistCellRenderer used to display disclist Discs in JList.
14   * <p>
15   * Copyright (c) 1999-2007 Melloware, Inc. <http://www.melloware.com>
16   * @author Emil A. Lefkof III <info@melloware.com>
17   * @version 4.0
18   * AZ Development 2009
19   */
20  public final class DisclistCellRenderer
21      extends JLabel
22      implements ListCellRenderer {
23  
24      public final Settings settings;
25  
26      /**
27       * Default Constructor
28       */
29      public DisclistCellRenderer() {
30          super();
31          this.settings = null;
32      }
33  
34      /**
35       * Default Constructor
36       */
37      public DisclistCellRenderer(Settings aSettings) {
38          super();
39          this.settings = aSettings;
40      }
41  
42      /* (non-Javadoc)
43       * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean,
44       * boolean)
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          // pad the display with two spaces for readability
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          // set the tooltip text
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  }