summaryrefslogtreecommitdiffstats
path: root/src/cppcheckplus/outlookpanel/MyOutlookListRenderer.java
blob: 1b29f68e834364dfb53a657a6e2b6edbf0fd87ce (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package cppcheckplus.outlookpanel;

import java.awt.Color;
import java.awt.Component;
import javax.swing.BorderFactory;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JList;
import javax.swing.SwingConstants;
import javax.swing.border.Border;

public class MyOutlookListRenderer extends DefaultListCellRenderer {
    private Color selectedColor;
    private Border normalBorder;
    private Border shrinkedBorder;

    public MyOutlookListRenderer() {
        super();
        selectedColor = new Color(253, 192, 47);
        normalBorder = BorderFactory.createEmptyBorder(3, 19, 3, 2);
        shrinkedBorder = BorderFactory.createEmptyBorder(2, 7, 1, 2);
    }

    @Override
    public Component getListCellRendererComponent(JList list, Object value,
                                                  int index, boolean isSelected,
                                                  boolean cellHasFocus) {
        super.getListCellRendererComponent(list, value, index, isSelected,
            cellHasFocus);

        MyOutlookPanelListItem listItem = (MyOutlookPanelListItem) value;
        MyOutlookList outlookList = (MyOutlookList) list;
        setToolTipText(listItem.getToolTip());
        setIcon(listItem.getIcon());
        //收缩样式
        if (outlookList.getOutlookBar().getOutlookPanel().isShrinked()) {
            setBorder(shrinkedBorder);
            setText(null);
        }
        //普通样式
        else {
            setBorder(normalBorder);
            setText(listItem.getText());
            setHorizontalAlignment(SwingConstants.LEADING);
            setIconTextGap(5);
        }
        if (isSelected) {
            setBackground(selectedColor);
        }
        return this;
    }
}