summaryrefslogtreecommitdiffstats
path: root/src/cppcheckplus/outlookpanel/MyOutlookHeader.java
blob: 9cd4026d26b5f8e135c0776af58c2a13d1596c29 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package cppcheckplus.outlookpanel;

import cppcheckplus.control.MyContorlUtil;
import cppcheckplus.control.MyHeader;
import cppcheckplus.control.MyListSplitListener;
import cppcheckplus.toolbar.MyToolBarButton;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;

public class MyOutlookHeader extends MyHeader {
    private LayoutManager toolbarLayout;
    private JPanel toolbar;
    private ImageIcon separatorIcon;

    public MyOutlookHeader(ActionListener listener) {
        toolbarLayout = new FlowLayout(FlowLayout.LEFT, 2, 1);
        toolbar = new JPanel(toolbarLayout);
        separatorIcon =
            MyContorlUtil.getImageIcon("control/images/toolbar_separator.png");
        init();
        //加载工具栏
        MyContorlUtil.loadOutlookToolBar("cppcheckplus/control/toolbar.xml",
            this, listener);
    }

    private void init() {
        toolbar.setOpaque(false);
        toolbar.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 5));
        add(toolbar, "Center");
    }

    //在Header上添加工具按钮
    public MyToolBarButton addButton(Icon icon, String tooltip,
                                     ActionListener action, String command) {
        MyToolBarButton button = new MyToolBarButton();
        button.setIcon(icon);
        button.setToolTipText(tooltip);
        if (action != null) {
            button.addActionListener(action);
        }
        button.setActionCommand(command);
        toolbar.add(button);
        return button;
    }

    public void addSeparator() {
        toolbar.add(new JLabel(separatorIcon));
    }

    protected Object getResizeHandlerLayoutConstraint() {
        return "East";
    }

    protected Object getShrinkHandlerLayoutConstraint() {
        return "West";
    }

    protected MyListSplitListener createSplitListener() {
        return new MyOutlookSplitListener(this);
    }

    protected Border createBorder() {
        return BorderFactory.createEmptyBorder(4, 0, 0, 7);
    }

    protected ImageIcon getShrinkIcon(boolean shrinked) {
        if (shrinked) {
            return RIGHT_ARROW_ICON;
        } else {
            return LEFT_ARROW_ICON;
        }
    }

    protected JComponent getCenterComponent() {
        return null;
    }

    public void setShrink(boolean shrinked) {
        super.setShrink(shrinked);
        toolbar.setVisible(!shrinked);
    }

    protected int getShrinkedWidth() {
        return 37;
    }

    public JPanel getToolBar() {
        return toolbar;
    }
}