1 | class MyListCellRenderer extends JPanel implements ListCellRenderer {↵ | | 1 | class MyListCellRenderer extends JPanel implements ListCellRenderer {↵
|
|
2 | private JLabel iconLabel = new JLabel();↵ | | 2 | private JLabel iconLabel = new JLabel();↵
|
|
3 | private JLabel titleLabel = new JLabel();↵ | | 3 | private JLabel titleLabel = new JLabel();↵
|
|
4 | private JXHyperlink descriptionLabel = new JXHyperlink();↵ | | 4 | private JXHyperlink descriptionLabel = new JXHyperlink();↵
|
|
5 | private JPanel centerPanel;↵ | | 5 | private JPanel centerPanel;↵
|
|
6 | private Border lineBorder = new HeaderSeparatorBorder(new Color(230,↵ | | 6 | private Border lineBorder = new HeaderSeparatorBorder(new Color(230,↵
|
7 | 230, 230));↵ | | 7 | 230, 230));↵
|
|
8 | MyListCellRenderer() {↵ | | 8 | MyListCellRenderer() {↵
|
9 | setLayout(new BorderLayout());↵ | | 9 | setLayout(new BorderLayout());↵
|
|
10 | centerPanel = new JPanel();↵ | | 10 | centerPanel = new JPanel();↵
|
11 | centerPanel.setLayout(new BorderLayout());↵ | | 11 | centerPanel.setLayout(new BorderLayout());↵
|
|
12 | centerPanel.add(titleLabel, BorderLayout.NORTH);↵ | | 12 | centerPanel.add(titleLabel, BorderLayout.NORTH);↵
|
13 | centerPanel.add(descriptionLabel, BorderLayout.CENTER);↵ | | 13 | centerPanel.add(descriptionLabel, BorderLayout.CENTER);↵
|
14 | add(iconLabel, BorderLayout.WEST);↵ | | 14 | add(iconLabel, BorderLayout.WEST);↵
|
15 | add(centerPanel, BorderLayout.CENTER);↵ | | 15 | add(centerPanel, BorderLayout.CENTER);↵
|
|
16 | setBorder(BorderFactory.createCompoundBorder(lineBorder,↵ | | 16 | setBorder(BorderFactory.createCompoundBorder(lineBorder,↵
|
17 | BorderFactory.createEmptyBorder(2, 2, 2, 2)));↵ | | 17 | BorderFactory.createEmptyBorder(2, 2, 2, 2)));↵
|
18 | iconLabel.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 8));↵ | | 18 | iconLabel.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 4));↵
|
|
19 | centerPanel.setOpaque(false);↵ | | 19 | centerPanel.setOpaque(false);↵
|
20 | setOpaque(true);↵ | | 20 | setOpaque(true);↵
|
|
21 | }↵ | | 21 | }↵
|
|
22 | public Component getListCellRendererComponent(JList list, Object value,↵ | | 22 | public Component getListCellRendererComponent(JList list, Object value,↵
|
23 | int index, boolean isSelected, boolean cellHasFocus) {↵ | | 23 | int index, boolean isSelected, boolean cellHasFocus) {↵
|
|
24 | if (isSelected) {↵ | | 24 | if (isSelected) {↵
|
25 | setBackground(list.getSelectionBackground());↵ | | 25 | setBackground(list.getSelectionBackground());↵
|
26 | setForeground(list.getSelectionForeground());↵ | | 26 | setForeground(list.getSelectionForeground());↵
|
|
27 | } else {↵ | | 27 | } else {↵
|
28 | setBackground(list.getBackground());↵ | | 28 | setBackground(list.getBackground());↵
|
29 | setForeground(list.getForeground());↵ | | 29 | setForeground(list.getForeground());↵
|
|
30 | }↵ | | 30 | }↵
|
|
31 | ISearchResult result = (ISearchResult) value;↵ | | 31 | IContactModelPartial result = (IContactModelPartial) value;↵
|
|
32 | titleLabel.setText(result.getTitle());↵ | | 32 | titleLabel.setText(result.getName());↵
|
33 | iconLabel.setIcon(ImageLoader.getSmallIcon(IconKeys.USER));↵ | | 33 | iconLabel.setIcon(ImageLoader.getSmallIcon(IconKeys.USER));↵
|
34 | descriptionLabel.setText(result.getDescription());↵ | | 34 | descriptionLabel.setText(result.getAddress());↵
|
|
35 | return this | | 35 | return this
|