1 package jp.sourceforge.stigmata.ui.swing;
7 import java.awt.BorderLayout;
9 import java.awt.Component;
10 import java.awt.Dimension;
12 import javax.swing.BorderFactory;
13 import javax.swing.JLabel;
14 import javax.swing.JList;
15 import javax.swing.JPanel;
16 import javax.swing.ListCellRenderer;
17 import javax.swing.UIManager;
18 import javax.swing.border.Border;
19 import javax.swing.border.EmptyBorder;
21 import jp.sourceforge.stigmata.spi.BirthmarkSpi;
25 * @author Haruaki TAMADA
27 public class BirthmarkServiceListCellRenderer extends JPanel implements ListCellRenderer{
28 private static final long serialVersionUID = 3254763527508235L;
29 private static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);
31 private final JLabel leftLabel = new JLabel();
32 private final JLabel rightLabel = new JLabel();
34 public BirthmarkServiceListCellRenderer(Dimension dim, int rightw){
35 super(new BorderLayout());
36 leftLabel.setOpaque(true);
37 rightLabel.setOpaque(true);
39 leftLabel.setBorder(BorderFactory.createEmptyBorder(0,2,0,0));
40 rightLabel.setPreferredSize(new Dimension(rightw, 0));
41 rightLabel.setBorder(BorderFactory.createEmptyBorder(0,5,0,0));
42 this.add(leftLabel, BorderLayout.CENTER);
43 this.add(rightLabel, BorderLayout.EAST);
44 this.setPreferredSize(dim);
48 public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean hasFocus){
49 if(value instanceof BirthmarkSpi){
50 BirthmarkSpi service = (BirthmarkSpi)value;
51 leftLabel.setText(service.getDisplayType());
52 rightLabel.setText("(" + service.getType() + ")");
55 leftLabel.setText(String.valueOf(value));
56 rightLabel.setText("");
59 setBackground(list.getSelectionBackground());
60 setForeground(list.getSelectionForeground());
61 leftLabel.setBackground(list.getSelectionBackground());
62 leftLabel.setForeground(list.getSelectionForeground());
63 rightLabel.setBackground(list.getSelectionBackground());
64 rightLabel.setForeground(Color.gray.brighter());
67 setBackground(list.getBackground());
68 setForeground(list.getForeground());
69 leftLabel.setBackground(list.getBackground());
70 leftLabel.setForeground(list.getForeground());
71 rightLabel.setBackground(list.getBackground());
72 rightLabel.setForeground(Color.gray);
77 border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");
80 border = UIManager.getBorder("List.focusCellHighlightBorder");
83 border = noFocusBorder;