summaryrefslogtreecommitdiffstats
path: root/src/cppcheckplus/text/MyTextPanel.java
blob: d2f29ee25049164dec7efbd76bd7fc6607dbff1f (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
package cppcheckplus.text;

import cppcheckplus.control.XChartletFullScreenListenter;
import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;


public class MyTextPanel extends JPanel
    implements XChartletFullScreenListenter {
    public static final int LINEHEIGHT = 16;
    private BorderLayout layout;
    private boolean isFullScreen;
    private JTextArea textArea;
    private JScrollPane scroll;
    private LineNumberHeaderView lineNumberHeader = null;

    public MyTextPanel() {
        layout = new BorderLayout();
        setLayout(layout);
        textArea = new JTextArea("");
        Font x = new Font("Serif", 0, LINEHEIGHT);
        textArea.setFont(x);
        scroll = new JScrollPane(textArea);
        //scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
        //scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
        //scroll.setPreferredSize(new Dimension(300, 200));

        if (lineNumberHeader == null) {
            lineNumberHeader = new LineNumberHeaderView();
            //设置行号的高度,如果和textarea的行高不匹配,可以修改此值
            lineNumberHeader.setLineHeight(LINEHEIGHT + 4);
        }
        scroll.setRowHeaderView(lineNumberHeader);
        add(scroll);
    }

    public JTextArea getTextArea() {
        return textArea;
    }

    public void initialize() {
        setLayout(layout);
        add(scroll);
    }


    @Override
    public void fullScreen(JPanel chartPanellet) {
        removeAll();
        isFullScreen = !isFullScreen;
        if (isFullScreen) {
            setLayout(new BorderLayout());
            add(chartPanellet, "Center");
        } else {
            initialize();
        }
        repaint();
        revalidate();
    }

}