1 package jp.sourceforge.stigmata.ui.swing;
3 import java.awt.BorderLayout;
5 import java.awt.Component;
6 import java.awt.Dimension;
8 import javax.swing.BorderFactory;
9 import javax.swing.JLabel;
10 import javax.swing.JList;
11 import javax.swing.JPanel;
12 import javax.swing.ListCellRenderer;
13 import javax.swing.UIManager;
14 import javax.swing.border.Border;
15 import javax.swing.border.EmptyBorder;
17 import jp.sourceforge.stigmata.spi.BirthmarkSpi;
21 * @author Haruaki TAMADA
23 public class BirthmarkServiceListCellRenderer extends JPanel implements ListCellRenderer{
24 private static final long serialVersionUID = 3254763527508235L;
25 private static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
27 private final JLabel leftLabel = new JLabel();
28 private final JLabel rightLabel = new JLabel();
30 public BirthmarkServiceListCellRenderer(Dimension dim, int rightw){
31 super(new BorderLayout());
32 leftLabel.setOpaque(true);
33 rightLabel.setOpaque(true);
35 leftLabel.setBorder(BorderFactory.createEmptyBorder(0,2,0,0));
36 rightLabel.setPreferredSize(new Dimension(rightw, 0));
37 rightLabel.setBorder(BorderFactory.createEmptyBorder(0,5,0,0));
38 this.add(leftLabel, BorderLayout.CENTER);
39 this.add(rightLabel, BorderLayout.EAST);
40 this.setPreferredSize(dim);
44 public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean hasFocus){
45 if(value instanceof BirthmarkSpi){
46 BirthmarkSpi service = (BirthmarkSpi)value;
47 leftLabel.setText(service.getDisplayType());
48 rightLabel.setText("(" + service.getType() + ")");
51 leftLabel.setText(String.valueOf(value));
52 rightLabel.setText("");
55 setBackground(list.getSelectionBackground());
56 setForeground(list.getSelectionForeground());
57 leftLabel.setBackground(list.getSelectionBackground());
58 leftLabel.setForeground(list.getSelectionForeground());
59 rightLabel.setBackground(list.getSelectionBackground());
60 rightLabel.setForeground(Color.gray.brighter());
63 setBackground(list.getBackground());
64 setForeground(list.getForeground());
65 leftLabel.setBackground(list.getBackground());
66 leftLabel.setForeground(list.getForeground());
67 rightLabel.setBackground(list.getBackground());
68 rightLabel.setForeground(Color.gray);
73 border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");
76 border = UIManager.getBorder("List.focusCellHighlightBorder");
79 border = noFocusBorder;