1 package org.catacomb.druid.swing;
2
3
4
5 import org.catacomb.interlish.content.NVPair;
6 import org.catacomb.report.E;
7
8 import java.awt.BorderLayout;
9 import java.awt.Color;
10 import java.awt.Component;
11 import java.awt.Font;
12
13 import javax.swing.JLabel;
14 import javax.swing.JList;
15 import javax.swing.JPanel;
16 import javax.swing.JTextField;
17
18
19 import java.awt.Dimension;
20
21 public class DListQuantityRenderer extends JPanel implements DListCellRenderer {
22
23 static final long serialVersionUID = 1001;
24
25 JTextField quantityTF;
26 JLabel quantityLabel;
27 JLabel nameLabel;
28 Color csel = new Color(0xb8, 0xcf, 0xe5);
29
30 public DListQuantityRenderer() {
31
32
33 setLayout(new BorderLayout(2, 2));
34
35 Font plainfont = new Font("sansserif", Font.PLAIN, 12);
36
37
38
39 quantityLabel = new JLabel();
40 quantityLabel.setPreferredSize(new Dimension(60, 18));
41 nameLabel = new JLabel();
42
43 nameLabel.setFont(plainfont);
44
45
46
47 add("West", quantityLabel);
48 add("Center", nameLabel);
49
50
51
52
53
54
55
56
57
58
59
60
61 }
62
63
64
65 public Component getListCellRendererComponent(JList list, Object value, int index,
66 boolean isSelected, boolean cellHasFocus) {
67
68 if (value instanceof NVPair) {
69 NVPair nvp = (NVPair)value;
70
71 quantityLabel.setText(nvp.getSValue());
72 nameLabel.setText(nvp.getName());
73
74 } else {
75 E.error("cant render " + value);
76 }
77
78 Color cbg = (isSelected ? csel : list.getBackground());
79
80
81 setBackground(cbg);
82 nameLabel.setBackground(cbg);
83 quantityLabel.setBackground(cbg);
84 return this;
85 }
86
87
88 }